Commit d0ad2ba

mo <mo.khan@gmail.com>
2019-07-13 22:05:28
validate day/month boundaries
1 parent f434c97
Changed files (2)
src/Q6/WeekDay.java
@@ -34,7 +34,8 @@ public class WeekDay {
   }
 
   private void ensureValidDate(int year, int month, int day) {
-    if (day < 1 || day > MONTHS[month - 1]) throw new IllegalArgumentException();
+    if (month < 1 || month > 12 || day < 1 || day > MONTHS[month - 1])
+      throw new IllegalArgumentException();
   }
 
   public static void main(String[] args) {
src/Q6/WeekDayTest.java
@@ -67,7 +67,7 @@ public class WeekDayTest extends TestCase {
   public void test_getWeekDay_day_too_large() {
     boolean raised = false;
     try {
-      subject.getWeekDay(32, 1, 2100);
+      subject.getWeekDay(32, 1, 2019);
     } catch (IllegalArgumentException error) {
       raised = true;
     }
@@ -77,7 +77,27 @@ public class WeekDayTest extends TestCase {
   public void test_getWeekDay_day_too_small() {
     boolean raised = false;
     try {
-      subject.getWeekDay(0, 1, 2100);
+      subject.getWeekDay(0, 1, 2019);
+    } catch (IllegalArgumentException error) {
+      raised = true;
+    }
+    assertTrue(raised);
+  }
+
+  public void test_getWeekDay_month_too_large() {
+    boolean raised = false;
+    try {
+      subject.getWeekDay(1, 13, 2019);
+    } catch (IllegalArgumentException error) {
+      raised = true;
+    }
+    assertTrue(raised);
+  }
+
+  public void test_getWeekDay_month_too_small() {
+    boolean raised = false;
+    try {
+      subject.getWeekDay(1, 0, 2019);
     } catch (IllegalArgumentException error) {
       raised = true;
     }