diff options
| -rw-r--r-- | src/Q3/CreditCard.java | 29 | ||||
| -rw-r--r-- | src/Q3/CreditCardTest.java | 28 |
2 files changed, 53 insertions, 4 deletions
diff --git a/src/Q3/CreditCard.java b/src/Q3/CreditCard.java index a71b0fa..e82eb6c 100644 --- a/src/Q3/CreditCard.java +++ b/src/Q3/CreditCard.java @@ -9,7 +9,25 @@ public class CreditCard { private String ccNumber; private String company; - public CreditCard(String num) {} + 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; + } + } + } public int getEvenSum() { return evenSum; @@ -31,16 +49,19 @@ public class CreditCard { return this.company; } - public boolean isDivisibleBy10() { + public boolean isValid() { return false; } - public boolean isValid() { + public boolean isDivisibleBy10() { return false; } public boolean validateCompany() { - return false; + return this.ccNumber.startsWith("4") + || this.ccNumber.startsWith("5") + || this.ccNumber.startsWith("37") + || this.ccNumber.startsWith("6"); } public boolean validateLength() { diff --git a/src/Q3/CreditCardTest.java b/src/Q3/CreditCardTest.java index 3b8744b..373e79e 100644 --- a/src/Q3/CreditCardTest.java +++ b/src/Q3/CreditCardTest.java @@ -6,6 +6,8 @@ import junit.framework.TestCase; import junit.framework.TestSuite; public class CreditCardTest extends TestCase { + private CreditCard subject; + public CreditCardTest(String testName) { super(testName); } @@ -18,4 +20,30 @@ public class CreditCardTest extends TestCase { assertEquals(true, true); 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"); + assertEquals(CreateSUT("378282246310005").getCompany(), "American Express"); + assertEquals(CreateSUT("6011111111111117").getCompany(), "Discover"); + } + + // public void test_isValid() { + // assertTrue(CreateSUT("49927398716").isValid()); + // assertFalse(CreateSUT("49927398717").isValid()); + // assertFalse(CreateSUT("1234567812345678").isValid()); + // assertTrue(CreateSUT("1234567812345670").isValid()); + // } + + private CreditCard CreateSUT(String number) { + return new CreditCard(number); + } + + private CreditCard CreateSUT() { + return new CreditCard("1234567812345670"); + } } |
