Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Provide a JUnit class with test cases for the attached Date class. You should have at least 12 test cases. Remember that a test should

Provide a JUnit class with test cases for the attached Date class. You should have at least 12 test cases. Remember that a test should be small, and cover a single scenario.

Your tests should test both "good" and "bad" paths. For example, a some dates (like December 25) in your tests should be "good." Your tests should ensure that the correct season is returned for these dates. Some dates (like February 30) reflect an "unhappy path." Your tests should ensure that invalid dates are correctly flagged as "invalid."

Date Class:

public class Date

{

private static final Month year[] = {

new Month("January", 1, 31),

new Month("February", 2, 29),

new Month("March", 3, 31),

new Month("April", 4, 30),

new Month("May", 5, 31),

new Month("June", 6, 30),

new Month("July", 7, 31),

new Month("August", 8, 31),

new Month("September", 9, 30),

new Month("October", 10, 31),

new Month("November", 11, 30),

new Month("December", 12, 31),

};

private int month;

private int day;

public Date(int theMonth, int theDay)

{

month = theMonth;

day = theDay;

}

public String getMonth()

{

String result = "UNKNOWN";

if (isValidDay()) {

result = year[month - 1].getMonthName();

}

return result;

}

public String getSeason()

{

String result = "UNKNOWN";

if (!isValidDay()) {

return result;

}

if (((month == 12) && day >= 21) || (month == 1 ) || (month == 2) || (month == 3 && day <= 20)) {

result = "Winter";

} else if (((month == 3) && day >= 21) || (month == 4 ) || (month == 5) || (month == 6 && day <= 20)) {

result = "Spring";

} else if (((month == 6) && day >= 21) || (month == 7 ) || (month == 8) || (month == 9 && day <= 22)) {

result = "Summer";

} else {

result = "Fall";

}

return result;

}

public boolean isValidDay()

{

boolean rc = false;

if (isValidMonth() && day > 0 && day <= year[month - 1].getMonthDays()) {

rc = true;

}

return rc;

}

public boolean isValidMonth()

{

return month > 0 && month <= year.length;

}

}

Month Class:

public class Month {

private int monthNumber;

private String monthName;

private int monthDays;

public Month(String name, int number, int days) {

setMonthName(name);

setMonthDays(days);

setMonthNumber(number);

}

public boolean isDayValid(int d) {

return d <= monthDays;

}

public String getMonthName() {

return monthName;

}

public void setMonthName(String monthName) {

this.monthName = monthName;

}

public int getMonthDays() {

return monthDays;

}

public void setMonthDays(int monthDays) {

this.monthDays = monthDays;

}

public int getMonthNumber() {

return monthNumber;

}

public void setMonthNumber(int monthNumber) {

this.monthNumber = monthNumber;

}

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Object Oriented Databases Prentice Hall International Series In Computer Science

Authors: John G. Hughes

1st Edition

0136298745, 978-0136298748

More Books

Students also viewed these Databases questions

Question

3. Outline the four major approaches to informative speeches

Answered: 1 week ago

Question

4. Employ strategies to make your audience hungry for information

Answered: 1 week ago