I have created a digitial clock and I am trying to test it. I am trying to make sure that it does not allow hours less than zero. I am running this test: public void testShouldNotAllowHourLessThanZero() { // // Arrange, Act, and Assert: create the AlarmClock object // // with a bad hour value assertThrows(IllegalArgumentException.class, () -> { new DigitalClock(-1, 45); }); } However, everytime I run this test it does not pass meaning that it is allowing zero to be entered as an hour. How can I fix this. This is my code: public class DigitalClock { private int currentHour; private int currentMinutes; public int getHour() { return currentHour; } public void setHour(int currentHour) { this.currentHour = currentHour; } public int getMinutes() { return currentMinutes; } public void setMinutes(int currentMinutes) { this.currentMinutes = currentMinutes; } /** * Creates a new digital clock with the time set at the given * hours and minutes. * * @precondition 0 <= hour <= 23 AND 0 <= minutes <= 59 * @postcondition getHour()==hour AND getMinutes()==minutes * * @param hour the hour to set for the time * @param minutes the minutes to set for the time */ public DigitalClock (int hour, int minutes) { // modified condition if (hour >= 0 && hour <= 23){ currentHour = hour; } else { currentHour = 0; } if (minutes >= 0 && minutes <=59){ currentMinutes = minutes; } else { currentMinutes = 0; } } }
I have created a digitial clock and I am trying to test it. I am trying to make sure that it does not allow hours less than zero. I am running this test:
public void testShouldNotAllowHourLessThanZero() {
// // Arrange, Act, and Assert: create the AlarmClock object
// // with a bad hour value
assertThrows(IllegalArgumentException.class, () -> {
new DigitalClock(-1, 45);
});
}
However, everytime I run this test it does not pass meaning that it is allowing zero to be entered as an hour. How can I fix this.
This is my code:
public class DigitalClock
{
private int currentHour;
private int currentMinutes;
public int getHour()
{
return currentHour;
}
public void setHour(int currentHour)
{
this.currentHour = currentHour;
}
public int getMinutes()
{
return currentMinutes;
}
public void setMinutes(int currentMinutes)
{
this.currentMinutes = currentMinutes;
}
/**
* Creates a new digital clock with the time set at the given
* hours and minutes.
*
* @precondition 0 <= hour <= 23 AND 0 <= minutes <= 59
* @postcondition getHour()==hour AND getMinutes()==minutes
*
* @param hour the hour to set for the time
* @param minutes the minutes to set for the time
*/
public DigitalClock (int hour, int minutes)
{
// modified condition
if (hour >= 0 && hour <= 23){
currentHour = hour;
}
else {
currentHour = 0;
}
if (minutes >= 0 && minutes <=59){
currentMinutes = minutes;
}
else {
currentMinutes = 0;
}
}
}
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 4 images