瀏覽代碼

last part to do still

Kate Moore 7 年之前
父節點
當前提交
3e9345e608

+ 8
- 0
pom.xml 查看文件

@@ -7,6 +7,14 @@
7 7
     <groupId>com.zipcoder</groupId>
8 8
     <artifactId>payment</artifactId>
9 9
     <version>1.0-SNAPSHOT</version>
10
+    <dependencies>
11
+        <dependency>
12
+            <groupId>junit</groupId>
13
+            <artifactId>junit</artifactId>
14
+            <version>RELEASE</version>
15
+            <scope>test</scope>
16
+        </dependency>
17
+    </dependencies>
10 18
     <properties>
11 19
         <maven.compiler.source>1.8</maven.compiler.source>
12 20
         <maven.compiler.target>1.8</maven.compiler.target>

+ 70
- 0
src/main/java/com/zipcoder/payment/Check.java 查看文件

@@ -0,0 +1,70 @@
1
+package com.zipcoder.payment;
2
+
3
+public class Check implements Payment {
4
+
5
+    long id;
6
+    String payerName;
7
+    String routingNumber;
8
+    String accountNumber;
9
+
10
+    public Check(long id, String payerName, String routingNumber, String accountNumber) {
11
+        this.id = id;
12
+        this.payerName = payerName;
13
+        this.routingNumber = routingNumber;
14
+        this.accountNumber = accountNumber;
15
+    }
16
+
17
+    public String getLastFourDigits(){
18
+        if(accountNumber.length() == 4) {
19
+            return accountNumber;
20
+        } else if(accountNumber.length() > 4) {
21
+            return accountNumber.substring(accountNumber.length() -4);
22
+        } else {
23
+            throw new IllegalArgumentException("Enter Account Number!");
24
+        }
25
+    }
26
+
27
+    public void setId(long id) {
28
+        this.id = id;
29
+    }
30
+
31
+    public void setPayerName(String payerName) {
32
+        this.payerName = payerName;
33
+    }
34
+
35
+    public String getRoutingNumber() {
36
+        return routingNumber;
37
+    }
38
+
39
+    public void setRoutingNumber(String routingNumber) {
40
+        this.routingNumber = routingNumber;
41
+    }
42
+
43
+    public String getAccountNumber() {
44
+        return accountNumber;
45
+    }
46
+
47
+    public void setAccountNumber(String accountNumber) {
48
+        this.accountNumber = accountNumber;
49
+    }
50
+
51
+    @Override
52
+    public Long getId() {
53
+        return id;
54
+    }
55
+
56
+    @Override
57
+    public String getPayerName() {
58
+        return payerName;
59
+    }
60
+
61
+    @Override
62
+    public String getShortDescription() {
63
+        return "Check " + payerName + "****" + this.getLastFourDigits();
64
+    }
65
+
66
+    @Override
67
+    public int compareTo(Payment o) {
68
+        return this.getShortDescription().compareTo(o.getShortDescription());
69
+    }
70
+}

+ 79
- 0
src/main/java/com/zipcoder/payment/CreditCard.java 查看文件

@@ -0,0 +1,79 @@
1
+package com.zipcoder.payment;
2
+
3
+public class CreditCard implements Payment {
4
+
5
+    Long id;
6
+    String payerName;
7
+    String number;
8
+    int expiredMonth;
9
+    int expiredYear;
10
+
11
+    public CreditCard(Long id, String payerName, String number, int expiredMonth, int expiredYear) {
12
+        this.id = id;
13
+        this.payerName = payerName;
14
+        this.number = number;
15
+        this.expiredMonth = expiredMonth;
16
+        this.expiredYear = expiredYear;
17
+    }
18
+
19
+    public String getLastFourDigits(){
20
+        if(number.length() == 4) {
21
+            return number;
22
+        } else if(number.length() > 4) {
23
+            return number.substring(number.length() -4);
24
+        } else {
25
+            throw new IllegalArgumentException("Enter Credit Card Number");
26
+        }
27
+    }
28
+
29
+    public void setPayerName(String payerName) {
30
+        this.payerName = payerName;
31
+    }
32
+
33
+    public String getNumber() {
34
+        return number;
35
+    }
36
+
37
+    public void setNumber(String number) {
38
+        this.number = number;
39
+    }
40
+
41
+    public int getExpiredMonth() {
42
+        return expiredMonth;
43
+    }
44
+
45
+    public void setExpiredMonth(int expiredMonth) {
46
+        this.expiredMonth = expiredMonth;
47
+    }
48
+
49
+    public int getExpiredYear() {
50
+        return expiredYear;
51
+    }
52
+
53
+    public void setExpiredYear(int expiredYear) {
54
+        this.expiredYear = expiredYear;
55
+    }
56
+
57
+    public void setId(Long id) {
58
+        this.id = id;
59
+    }
60
+
61
+    @Override
62
+    public Long getId() {
63
+        return id;
64
+    }
65
+
66
+    @Override
67
+    public String getPayerName() {
68
+        return payerName;
69
+    }
70
+    @Override
71
+    public String getShortDescription() {
72
+        return "CC " + payerName + this.getLastFourDigits() + expiredMonth + "/" + expiredYear;
73
+    }
74
+
75
+    @Override
76
+    public int compareTo(Payment o) {
77
+        return this.getShortDescription().compareTo(o.getShortDescription());
78
+    }
79
+}

+ 51
- 0
src/main/java/com/zipcoder/payment/PayPal.java 查看文件

@@ -0,0 +1,51 @@
1
+package com.zipcoder.payment;
2
+
3
+public class PayPal implements Payment {
4
+
5
+    long id;
6
+    String payerName;
7
+    String email;
8
+
9
+    public PayPal(long id, String payerName, String email) {
10
+        this.id = id;
11
+        this.payerName = payerName;
12
+        this.email = email;
13
+    }
14
+
15
+    public void setId(long id) {
16
+        this.id = id;
17
+    }
18
+
19
+    public void setPayerName(String payerName) {
20
+        this.payerName = payerName;
21
+    }
22
+
23
+    public String getEmail() {
24
+        return email;
25
+    }
26
+
27
+    public void setEmail(String email) {
28
+        this.email = email;
29
+    }
30
+
31
+    @Override
32
+    public Long getId() {
33
+        return id;
34
+    }
35
+
36
+    @Override
37
+    public String getPayerName() {
38
+        return payerName;
39
+    }
40
+
41
+    @Override
42
+    public String getShortDescription() {
43
+        return "Paypal" + payerName + email;
44
+    }
45
+
46
+
47
+    @Override
48
+    public int compareTo(Payment o) {
49
+        return this.getShortDescription().compareTo(o.getShortDescription());
50
+    }
51
+}

+ 11
- 0
src/main/java/com/zipcoder/payment/Payment.java 查看文件

@@ -0,0 +1,11 @@
1
+package com.zipcoder.payment;
2
+
3
+public interface Payment extends Comparable<Payment> {
4
+    // ^ this indicates that payment can be comparable, which means it can be sorted ^
5
+
6
+    Long getId();
7
+    String getPayerName();
8
+    String getShortDescription();
9
+
10
+
11
+}

+ 6
- 0
src/main/java/com/zipcoder/payment/PaymentPresenter.java 查看文件

@@ -2,5 +2,11 @@ package com.zipcoder.payment;
2 2
 
3 3
 public class PaymentPresenter {
4 4
 
5
+    Payment[] payments;
6
+
7
+    public String toString(Payment[] payments){
8
+        return  "";
9
+    }
10
+
5 11
 
6 12
 }

+ 14
- 0
src/main/java/com/zipcoder/payment/PaymentSortByPayer.java 查看文件

@@ -0,0 +1,14 @@
1
+package com.zipcoder.payment;
2
+
3
+import java.util.Comparator;
4
+
5
+public class PaymentSortByPayer implements Comparator<Payment> {
6
+
7
+
8
+
9
+
10
+    @Override
11
+    public int compare(Payment o1, Payment o2) {
12
+        return 0;
13
+    }
14
+}

+ 93
- 0
src/test/java/com/zipcoder/payment/CheckTest.java 查看文件

@@ -0,0 +1,93 @@
1
+package com.zipcoder.payment;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class CheckTest {
7
+
8
+    Check check = new Check((long)12345, "Kate", "56453637", "749379573");
9
+    PayPal paypal = new PayPal((long)1234, "Kate", "kate@gmail.com");
10
+
11
+
12
+    @Test
13
+    public void TestGetId(){
14
+        Long expected = (long)12345;
15
+        Long actual = check.getId();
16
+        Assert.assertEquals(expected, actual);
17
+    }
18
+
19
+    @Test
20
+    public void TestSetId(){
21
+        check.setId((long)345);
22
+        Long expected = (long)345;
23
+        Long actual = check.getId();
24
+        Assert.assertEquals(expected, actual);
25
+    }
26
+
27
+    @Test
28
+    public void TestGetPayerName(){
29
+        String expected = "Kate";
30
+        String actual = check.getPayerName();
31
+        Assert.assertEquals(expected, actual);
32
+    }
33
+
34
+    @Test
35
+    public void TestSetPayerName(){
36
+        check.setPayerName("Miles");
37
+        String expected = "Miles";
38
+        String actual = check.getPayerName();
39
+        Assert.assertEquals(expected, actual);
40
+    }
41
+
42
+    @Test
43
+    public void TestGetRoutingNumber(){
44
+        String expected = "56453637";
45
+        String actual = check.getRoutingNumber();
46
+        Assert.assertEquals(expected, actual);
47
+    }
48
+
49
+    @Test
50
+    public void TestSetRoutingNumber(){
51
+        check.setRoutingNumber("12345");
52
+        String expected = "12345";
53
+        String actual = check.getRoutingNumber();
54
+        Assert.assertEquals(expected, actual);
55
+
56
+    }
57
+
58
+    @Test
59
+    public void TestGetAccountNumber(){
60
+        String expected = "749379573";
61
+        String actual = check.getAccountNumber();
62
+        Assert.assertEquals(expected, actual);
63
+    }
64
+
65
+    @Test
66
+    public void TestSetAccountNumber(){
67
+        check.setAccountNumber("12345");
68
+        String expected = "12345";
69
+        String actual = check.getAccountNumber();
70
+        Assert.assertEquals(expected, actual);
71
+
72
+    }
73
+
74
+    @Test
75
+    public void TestLastFourDigits(){
76
+        String expected = "9573";
77
+        String actual = check.getLastFourDigits();
78
+        Assert.assertEquals(expected, actual);
79
+    }
80
+
81
+    @Test(expected = IllegalArgumentException.class)
82
+    public void TestLastFourDigits_LessThanFourDigits(){
83
+        check.setAccountNumber("12");
84
+        String actual = check.getLastFourDigits();
85
+    }
86
+
87
+    @Test
88
+    public void TestCompareTo(){
89
+        int expected = -13;
90
+        int actual = check.compareTo(paypal);
91
+        Assert.assertEquals(expected, actual);
92
+    }
93
+}

+ 112
- 0
src/test/java/com/zipcoder/payment/CreditCardTest.java 查看文件

@@ -0,0 +1,112 @@
1
+package com.zipcoder.payment;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class CreditCardTest {
7
+
8
+    CreditCard card = new CreditCard((long) 929384,"Kate", "987654321", 05, 1957);
9
+    PayPal paypal = new PayPal((long)1234, "Kate", "kate@gmail.com");
10
+    Check check = new Check((long)12345, "Kate", "56453637", "749379573");
11
+
12
+
13
+    @Test
14
+    public void TestGetId(){
15
+        Long expected = (long)929384;
16
+        Long actual = card.getId();
17
+        Assert.assertEquals(expected, actual);
18
+    }
19
+
20
+    @Test
21
+    public void TestSetId(){
22
+        card.setId((long)345);
23
+        Long expected = (long)345;
24
+        Long actual = card.getId();
25
+        Assert.assertEquals(expected, actual);
26
+    }
27
+
28
+    @Test
29
+    public void TestGetPayerName(){
30
+        String expected = "Kate";
31
+        String actual = card.getPayerName();
32
+        Assert.assertEquals(expected, actual);
33
+    }
34
+
35
+    @Test
36
+    public void TestSetPayerName(){
37
+        card.setPayerName("Miles");
38
+        String expected = "Miles";
39
+        String actual = card.getPayerName();
40
+        Assert.assertEquals(expected, actual);
41
+    }
42
+
43
+    @Test
44
+    public void TestGetNumber(){
45
+        String expected = "987654321";
46
+        String actual = card.getNumber();
47
+        Assert.assertEquals(expected, actual);
48
+    }
49
+
50
+    @Test
51
+    public void TestSetNumber(){
52
+        card.setNumber("12345");
53
+        String expected = "12345";
54
+        String actual = card.getNumber();
55
+        Assert.assertEquals(expected, actual);
56
+
57
+    }
58
+
59
+    @Test
60
+    public void TestGetExpiredMonth(){
61
+        int expected = 05;
62
+        int actual = card.getExpiredMonth();
63
+        Assert.assertEquals(expected, actual);
64
+
65
+    }
66
+
67
+    @Test
68
+    public void TestSetExpiredMonth(){
69
+        card.setExpiredMonth(07);
70
+        int expected = 07;
71
+        int actual = card.getExpiredMonth();
72
+        Assert.assertEquals(expected, actual);
73
+
74
+    }
75
+
76
+    @Test
77
+    public void TestGetExpiredYear(){
78
+        int expected = 1957;
79
+        int actual = card.getExpiredYear();
80
+        Assert.assertEquals(expected, actual);
81
+
82
+    }
83
+
84
+    @Test
85
+    public void TestSetExpiredYear(){
86
+        card.setExpiredYear(2020);
87
+        int expected = 2020;
88
+        int actual = card.getExpiredYear();
89
+        Assert.assertEquals(expected, actual);
90
+    }
91
+
92
+    @Test
93
+    public void TestLastFourDigits(){
94
+        String expected = "4321";
95
+        String actual = card.getLastFourDigits();
96
+        Assert.assertEquals(expected, actual);
97
+    }
98
+
99
+    @Test(expected = IllegalArgumentException.class)
100
+    public void TestLastFourDigits_LessThanFourDigits(){
101
+        card.setNumber("123");
102
+        String actual = card.getLastFourDigits();
103
+    }
104
+
105
+    @Test
106
+    public void TestCompareTo(){
107
+        int expected = 13;
108
+        int actual = paypal.compareTo(card);
109
+        Assert.assertEquals(expected, actual);
110
+    }
111
+
112
+}

+ 65
- 0
src/test/java/com/zipcoder/payment/PayPalTest.java 查看文件

@@ -0,0 +1,65 @@
1
+package com.zipcoder.payment;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class PayPalTest {
7
+
8
+    PayPal pal = new PayPal((long)1234, "Kate", "kate@gmail.com");
9
+    CreditCard card = new CreditCard((long) 929384,"Kate", "987654321", 05, 1957);
10
+    Check check = new Check((long)12345, "Kate", "56453637", "749379573");
11
+
12
+
13
+
14
+    @Test
15
+    public void TestGetId(){
16
+        Long expected = (long)1234;
17
+        Long actual = pal.getId();
18
+        Assert.assertEquals(expected, actual);
19
+    }
20
+
21
+    @Test
22
+    public void TestSetId(){
23
+        pal.setId((long)345);
24
+        Long expected = (long)345;
25
+        Long actual = pal.getId();
26
+        Assert.assertEquals(expected, actual);
27
+    }
28
+
29
+    @Test
30
+    public void TestGetPayerName(){
31
+        String expected = "Kate";
32
+        String actual = pal.getPayerName();
33
+        Assert.assertEquals(expected, actual);
34
+    }
35
+
36
+    @Test
37
+    public void TestSetPayerName(){
38
+        pal.setPayerName("Miles");
39
+        String expected = "Miles";
40
+        String actual = pal.getPayerName();
41
+        Assert.assertEquals(expected, actual);
42
+    }
43
+
44
+    @Test
45
+    public void TestGetEmail(){
46
+        String expected = "kate@gmail.com";
47
+        String actual = pal.getEmail();
48
+        Assert.assertEquals(expected, actual);
49
+    }
50
+
51
+    @Test
52
+    public void TestSetEmail(){
53
+        pal.setEmail("Miles");
54
+        String expected = "Miles";
55
+        String actual = pal.getEmail();
56
+        Assert.assertEquals(expected, actual);
57
+    }
58
+
59
+    @Test
60
+    public void TestCompareTo(){
61
+        int expected = 13;
62
+        int actual = pal.compareTo(check);
63
+        Assert.assertEquals(expected, actual);
64
+    }
65
+}

+ 29
- 0
src/test/java/com/zipcoder/payment/PaymentPresenterTest.java 查看文件

@@ -1,4 +1,33 @@
1 1
 package com.zipcoder.payment;
2 2
 
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
3 6
 public class PaymentPresenterTest {
7
+
8
+    PayPal pal = new PayPal((long)1234, "Kate", "kate@gmail.com");
9
+    CreditCard card = new CreditCard((long) 929384,"Kate", "987654321", 05, 1957);
10
+    Check check = new Check((long)12345, "Kate", "56453637", "749379573");
11
+
12
+    @Test
13
+    public void TestToString_0(){
14
+        Payment[] payments = new Payment[0];
15
+        PaymentPresenter presenter = new PaymentPresenter();
16
+        String expected = "";
17
+
18
+        String actual = presenter.toString(payments);
19
+
20
+        Assert.assertEquals(expected, actual);
21
+    }
22
+
23
+    @Test
24
+    public void TestToString_2(){
25
+        Payment[] payments = {pal, check};
26
+        PaymentPresenter presenter = new PaymentPresenter();
27
+
28
+        String expected = "Paypal Kate kate@gmail.com/nCheck Kate ****9573/n";
29
+        String actual = presenter.toString(payments);
30
+
31
+        Assert.assertEquals(expected, actual);
32
+    }
4 33
 }

+ 32
- 0
src/test/java/com/zipcoder/payment/PaymentSoertByPayerTest.java 查看文件

@@ -0,0 +1,32 @@
1
+package com.zipcoder.payment;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class PaymentSoertByPayerTest {
7
+
8
+    CreditCard card = new CreditCard((long) 929384,"Kate", "987654321", 05, 1957);
9
+    PayPal paypal = new PayPal((long)1234, "Kate", "kate@gmail.com");
10
+    Check check = new Check((long)1234, "Kate", "56453637", "749379573");
11
+
12
+    @Test
13
+    public void TestCompare(){
14
+        int expected = -1;
15
+        int actual = Long.compare(check.id, card.id);
16
+        Assert.assertEquals(expected, actual);
17
+    }
18
+
19
+    @Test
20
+    public void TestCompare2(){
21
+        int expected = 0;
22
+        int actual = Long.compare(paypal.id, check.id);
23
+        Assert.assertEquals(expected, actual);
24
+    }
25
+
26
+    @Test
27
+    public void TestCompare3(){
28
+        boolean expected = true;
29
+        boolean actual = check.payerName.equals(card.payerName);
30
+        Assert.assertEquals(expected, actual);
31
+    }
32
+}