Commit 950afb4

mo <mo.khan@gmail.com>
2019-06-10 01:15:22
extract identifyCompany method
1 parent ac9703f
src/Q3/CreditCard.java
@@ -11,22 +11,7 @@ public class CreditCard {
 
   public CreditCard(String num) {
     this.ccNumber = num;
-    if (validateCompany()) {
-      switch (num.charAt(0)) {
-        case '3':
-          this.company = "American Express";
-          break;
-        case '4':
-          this.company = "Visa";
-          break;
-        case '5':
-          this.company = "MasterCard";
-          break;
-        case '6':
-          this.company = "Discover";
-          break;
-      }
-    }
+    this.company = this.identifyCompany(num);
   }
 
   public int getEvenSum() {
@@ -75,4 +60,20 @@ public class CreditCard {
   public boolean validateSums() {
     return false;
   }
+
+  private String identifyCompany(String number) {
+    if (validateCompany())
+      switch (number.charAt(0)) {
+        case '3':
+          return "American Express";
+        case '4':
+          return "Visa";
+        case '5':
+          return "MasterCard";
+        case '6':
+          return "Discover";
+      }
+
+    return "Unknown";
+  }
 }
src/Q3/CreditCardTest.java
@@ -21,10 +21,6 @@ public class CreditCardTest extends TestCase {
     assertTrue(true);
   }
 
-  // 4 for Visa cards
-  // 5 for Master cards,
-  // 37 for American Express cards,
-  // 6 for Discover cards.
   public void test_getCompany() {
     assertEquals(CreateSUT("4111111111111111").getCompany(), "Visa");
     assertEquals(CreateSUT("5555555555554444").getCompany(), "MasterCard");
@@ -32,6 +28,10 @@ public class CreditCardTest extends TestCase {
     assertEquals(CreateSUT("6011111111111117").getCompany(), "Discover");
   }
 
+  public void test_getEvenSum() {
+    assertEquals(CreateSUT("4388576018402626").getEvenSum(), 0);
+  }
+
   // public void test_isValid() {
   // assertTrue(CreateSUT("49927398716").isValid());
   // assertFalse(CreateSUT("49927398717").isValid());