Commit 98592c5

mo <mo.khan@gmail.com>
2019-06-10 01:30:24
validate length and number
1 parent 950afb4
src/Q3/CreditCard.java
@@ -35,7 +35,7 @@ public class CreditCard {
   }
 
   public boolean isValid() {
-    return false;
+    return this.validateCompany() && this.validateLength();
   }
 
   public boolean isDivisibleBy10() {
@@ -50,11 +50,13 @@ public class CreditCard {
   }
 
   public boolean validateLength() {
-    return false;
+    return this.ccNumber.length() >= 13 && this.ccNumber.length() <= 16;
   }
 
   public boolean validateNumber() {
-    return false;
+    for (int i = 0; i < this.ccNumber.length(); i++)
+      if (!Character.isDigit(this.ccNumber.charAt(i))) return false;
+    return true;
   }
 
   public boolean validateSums() {
src/Q3/CreditCardTest.java
@@ -28,10 +28,24 @@ public class CreditCardTest extends TestCase {
     assertEquals(CreateSUT("6011111111111117").getCompany(), "Discover");
   }
 
-  public void test_getEvenSum() {
-    assertEquals(CreateSUT("4388576018402626").getEvenSum(), 0);
+  public void test_validateLength() {
+    assertFalse(CreateSUT("411111111111").validateLength());
+    assertTrue(CreateSUT("4111111111111").validateLength());
+    assertTrue(CreateSUT("41111111111111").validateLength());
+    assertTrue(CreateSUT("411111111111111").validateLength());
+    assertTrue(CreateSUT("4111111111111111").validateLength());
+    assertFalse(CreateSUT("41111111111111111").validateLength());
   }
 
+  public void test_validateNumber() {
+    assertTrue(CreateSUT("4111111111111111").validateNumber());
+    assertFalse(CreateSUT("hello").validateNumber());
+  }
+
+  // public void test_getEvenSum() {
+  // assertEquals(CreateSUT("4388576018402626").getEvenSum(), 0);
+  // }
+
   // public void test_isValid() {
   // assertTrue(CreateSUT("49927398716").isValid());
   // assertFalse(CreateSUT("49927398717").isValid());