John Kim 8 лет назад
Родитель
Сommit
eb64e0c058

+ 14
- 13
src/main/java/com/zipcoder/payment/PaymentPresenter.java Просмотреть файл

@@ -5,24 +5,25 @@ import java.util.Arrays;
5 5
 public class PaymentPresenter {
6 6
 
7 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 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 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 Просмотреть файл

@@ -0,0 +1,9 @@
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 Просмотреть файл

@@ -0,0 +1,9 @@
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,4 +47,20 @@ public class PaymentPresenterTest {
47 47
         String actual = presenter.toStringByPayerName(payments);
48 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
 }