Commit ac9703f
Changed files (2)
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() {
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");
+ }
}