John Kim 8 年之前
父節點
當前提交
eb64e0c058

+ 14
- 13
src/main/java/com/zipcoder/payment/PaymentPresenter.java 查看文件

5
 public class PaymentPresenter {
5
 public class PaymentPresenter {
6
 
6
 
7
     public String toString(Payment[] payments) {
7
     public String toString(Payment[] payments) {
8
-        if (payments == null || payments.length == 0) {
9
-            return "";
10
-        }
8
+        Arrays.sort(payments, new PaymentSortByShortDescription());
9
+        return createArrayString(payments);
10
+    }
11
 
11
 
12
-        StringBuilder paymentStringBuilder = new StringBuilder();
12
+    public String toStringByPayerName(Payment[] payments) {
13
         Arrays.sort(payments, new PaymentSortByPayer());
13
         Arrays.sort(payments, new PaymentSortByPayer());
14
-        for (Payment payment : payments) {
15
-            paymentStringBuilder.append(payment.getShortDescription() + "\n");
16
-        }
17
-        return paymentStringBuilder.toString();
14
+        return createArrayString(payments);
18
     }
15
     }
19
 
16
 
20
-    public String toStringByPayerName(Payment[] payments) {
21
-        if (payments == null || payments.length == 0) {
22
-            return "";
23
-        }
17
+    public String toStringById(Payment[] payments) {
18
+        Arrays.sort(payments, new PaymentSortById());
19
+        return createArrayString(payments);
20
+    }
24
 
21
 
22
+    private String createArrayString(Payment[] payments) {
25
         StringBuilder paymentStringBuilder = new StringBuilder();
23
         StringBuilder paymentStringBuilder = new StringBuilder();
26
-        return null;
24
+        for (Payment payment : payments) {
25
+            paymentStringBuilder.append(payment.getShortDescription() + "\n");
26
+        }
27
+        return paymentStringBuilder.toString();
27
     }
28
     }
28
 }
29
 }

+ 9
- 0
src/main/java/com/zipcoder/payment/PaymentSortById.java 查看文件

1
+package com.zipcoder.payment;
2
+
3
+import java.util.Comparator;
4
+
5
+public class PaymentSortById implements Comparator<Payment> {
6
+    public int compare(Payment o1, Payment o2) {
7
+        return o1.getId().compareTo(o2.getId());
8
+    }
9
+}

+ 9
- 0
src/main/java/com/zipcoder/payment/PaymentSortByShortDescription.java 查看文件

1
+package com.zipcoder.payment;
2
+
3
+import java.util.Comparator;
4
+
5
+public class PaymentSortByShortDescription implements Comparator<Payment> {
6
+    public int compare(Payment o1, Payment o2) {
7
+        return o1.getShortDescription().compareTo(o2.getShortDescription());
8
+    }
9
+}

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

47
         String actual = presenter.toStringByPayerName(payments);
47
         String actual = presenter.toStringByPayerName(payments);
48
         assertEquals(expected, actual);
48
         assertEquals(expected, actual);
49
     }
49
     }
50
+
51
+    @Test
52
+    public void toStringByIdTest() {
53
+        Payment[] payments = new Payment[2];
54
+        Payment paypal = new PayPal(120L, "Tamara Mowry", "tamara@mowry.com");
55
+        Payment check = new Check(81L, "Tia Mowry", "11432543", "134344551");
56
+
57
+        payments[0] = paypal;
58
+        payments[1] = check;
59
+
60
+        PaymentPresenter presenter = new PaymentPresenter();
61
+        String expected = "Check Tia Mowry ***4551\nPaypal Tamara Mowry tamara@mowry.com\n";
62
+
63
+        String actual = presenter.toStringById(payments);
64
+        assertEquals(expected, actual);
65
+    }
50
 }
66
 }