master
 1package ca.mokhan.test;
 2
 3import Q3.*;
 4import junit.framework.Test;
 5import junit.framework.TestCase;
 6import junit.framework.TestSuite;
 7
 8public class CreditCardTest extends TestCase {
 9  private CreditCard subject;
10
11  public CreditCardTest(String testName) {
12    super(testName);
13  }
14
15  public static Test suite() {
16    return new TestSuite(CreditCardTest.class);
17  }
18
19  public void test_getCompany() {
20    assertEquals(CreateSUT("4111111111111111").getCompany(), "Visa");
21    assertEquals(CreateSUT("5555555555554444").getCompany(), "MasterCard");
22    assertEquals(CreateSUT("378282246310005").getCompany(), "American Express");
23    assertEquals(CreateSUT("6011111111111117").getCompany(), "Discover");
24  }
25
26  public void test_validateLength() {
27    assertFalse(CreateSUT("411111111111").validateLength());
28    assertTrue(CreateSUT("4111111111111").validateLength());
29    assertTrue(CreateSUT("41111111111111").validateLength());
30    assertTrue(CreateSUT("411111111111111").validateLength());
31    assertTrue(CreateSUT("4111111111111111").validateLength());
32    assertFalse(CreateSUT("41111111111111111").validateLength());
33  }
34
35  public void test_validateNumber() {
36    assertTrue(CreateSUT("4111111111111111").validateNumber());
37    assertFalse(CreateSUT("hello").validateNumber());
38  }
39
40  public void test_isValid() {
41    assertFalse(CreateSUT("49927398717").isValid());
42    assertFalse(CreateSUT("1234567812345678").isValid());
43    assertTrue(CreateSUT("4111111111111111").isValid());
44    assertTrue(CreateSUT("5555555555554444").isValid());
45    assertTrue(CreateSUT("378282246310005").isValid());
46    assertTrue(CreateSUT("6011111111111117").isValid());
47  }
48
49  public void test_getOddSum() {
50    assertEquals(42, CreateSUT("49927398716").getOddSum());
51    assertEquals(38, CreateSUT("4388576018402626").getOddSum());
52  }
53
54  public void test_getEvenSum() {
55    assertEquals(28, CreateSUT("49927398716").getEvenSum());
56    assertEquals(37, CreateSUT("4388576018402626").getEvenSum());
57  }
58
59  private CreditCard CreateSUT(String number) {
60    return new CreditCard(number);
61  }
62
63  private CreditCard CreateSUT() {
64    return new CreditCard("1234567812345670");
65  }
66}