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}