소스 검색

oops forgot part 2

Allison Ziegler 8 년 전
부모
커밋
2c6aba8333
3개의 변경된 파일65개의 추가작업 그리고 19개의 파일을 삭제
  1. 34
    15
      Inventory.java
  2. 25
    1
      InventoryTest.java
  3. 6
    3
      package.bluej

+ 34
- 15
Inventory.java 파일 보기

@@ -1,7 +1,13 @@
1 1
 
2 2
 public class Inventory {
3 3
     private Item[] items;
4
-
4
+    private final int MAX_QUALITY = 50;
5
+    private final String AGED_BRIE_NAME = "Aged Brie";
6
+    private final String BACKSTAGE_PASS_NAME = "Backstage passes to a TAFKAL80ETC concert";
7
+    private final String NORMAL_ITEM_NAME = "+5 Dexterity Vest";
8
+    private final String CONJURED_ITEM_NAME = "Conjured Flower Bouquet";
9
+    private final String SULFURAS = "Sulfuras, Hand of Ragnaros";
10
+    
5 11
     public Inventory(Item[] items) {
6 12
         super();
7 13
         this.items = items;
@@ -10,20 +16,24 @@ public class Inventory {
10 16
 
11 17
     public void updateQuality() {
12 18
         for (int i = 0; i < items.length; i++) {
13
-            if (!items[i].getName().equals("Sulfuras, Hand of Ragnaros")) {
14
-                switch (items[i].getName()) {
15
-                    case "Backstage passes to a TAFKAL80ETC concert" :
16
-                        updateTickets(items[i]);
17
-                        break;
18
-                    case "Aged Brie" :
19
-                        updateBrie(items[i]);
20
-                        break;
21
-                    default : 
22
-                        updateNormalItem(items[i]);
23
-                        break;
24
-                }
25
-                items[i].setSellIn(items[i].getSellIn() - 1);
19
+            if (items[i].getName().equals(SULFURAS)) {
20
+                continue;
26 21
             }
22
+            switch (items[i].getName()) {
23
+                case BACKSTAGE_PASS_NAME :
24
+                    updateTickets(items[i]);
25
+                    break;
26
+                case AGED_BRIE_NAME :
27
+                    updateBrie(items[i]);
28
+                    break;
29
+                case CONJURED_ITEM_NAME :
30
+                    updateConjuredItem(items[i]);
31
+                    break;
32
+                default : 
33
+                    updateNormalItem(items[i]);
34
+                    break;
35
+            }
36
+            items[i].setSellIn(items[i].getSellIn() - 1);
27 37
         }
28 38
     }
29 39
     
@@ -38,7 +48,7 @@ public class Inventory {
38 48
             if (ticket.getSellIn() >= 11) {
39 49
                 ticket.setQuality(ticket.getQuality() + 1);
40 50
             }
41
-            if (ticket.getSellIn() >= 6 && ticket.getSellIn() < 11) {
51
+            else if (ticket.getSellIn() >= 6 && ticket.getSellIn() < 11) {
42 52
                 ticket.setQuality(ticket.getQuality() + 2);
43 53
             }
44 54
             else if (ticket.getSellIn() < 6) {
@@ -64,4 +74,13 @@ public class Inventory {
64 74
             item.setQuality(item.getQuality() - 1);
65 75
         }
66 76
     }
77
+    
78
+    public void updateConjuredItem(Item item) {
79
+         if (item.getQuality() > 0) {
80
+            item.setQuality(item.getQuality() - 2);
81
+        }
82
+        if (item.getSellIn() < 0) {
83
+            item.setQuality(item.getQuality() - 2);
84
+        }
85
+    }
67 86
 }

+ 25
- 1
InventoryTest.java 파일 보기

@@ -8,7 +8,7 @@ public class InventoryTest {
8 8
     private static final String AGED_BRIE_NAME = "Aged Brie";
9 9
     private static final String BACKSTAGE_PASS_NAME = "Backstage passes to a TAFKAL80ETC concert";
10 10
     private static final String NORMAL_ITEM_NAME = "+5 Dexterity Vest";
11
-
11
+    private static final String CONJURED_ITEM_NAME = "Conjured Flower Bouquet";
12 12
     private Item sulfuras;
13 13
     private Item normalItem;
14 14
 
@@ -84,6 +84,30 @@ public class InventoryTest {
84 84
 
85 85
         assertEquals(expectedQuality, normalItemWithPassedSellDate.getQuality());
86 86
     }
87
+    
88
+    @Test
89
+    public void testUpdate_ForConjuredItem() throws Exception {
90
+        Item conjuredItem = new Item(CONJURED_ITEM_NAME, 5, 25);
91
+        int expectedQuality = conjuredItem.getQuality() - 2;
92
+        Item[] items = {conjuredItem};
93
+        Inventory sut = new Inventory(items);
94
+
95
+        sut.updateQuality();
96
+
97
+        assertEquals(expectedQuality, conjuredItem.getQuality());
98
+    }
99
+    
100
+    @Test
101
+    public void testUpdate_ForPassedSellDateConjuredItem() throws Exception {
102
+        Item conjuredPassedDateItem = new Item(CONJURED_ITEM_NAME, -1, 25);
103
+        int expectedQuality = conjuredPassedDateItem.getQuality() - 4;
104
+        Item[] items = {conjuredPassedDateItem};
105
+        Inventory sut = new Inventory(items);
106
+
107
+        sut.updateQuality();
108
+
109
+        assertEquals(expectedQuality, conjuredPassedDateItem.getQuality());
110
+    }
87 111
 
88 112
     @Test
89 113
     public void testUpdate_AgedBrie() throws Exception {

+ 6
- 3
package.bluej 파일 보기

@@ -5,13 +5,16 @@ dependency1.type=UsesDependency
5 5
 dependency2.from=InventoryTest
6 6
 dependency2.to=Inventory
7 7
 dependency2.type=UsesDependency
8
+dependency3.from=Inventory
9
+dependency3.to=Item
10
+dependency3.type=UsesDependency
8 11
 editor.fx.0.height=717
9 12
 editor.fx.0.width=1280
10 13
 editor.fx.0.x=0
11 14
 editor.fx.0.y=23
12 15
 objectbench.height=164
13
-objectbench.width=461
14
-package.divider.horizontal=0.6
16
+objectbench.width=385
17
+package.divider.horizontal=0.5025641025641026
15 18
 package.divider.vertical=0.6845018450184502
16 19
 package.editor.height=364
17 20
 package.editor.width=674
@@ -19,7 +22,7 @@ package.editor.x=79
19 22
 package.editor.y=50
20 23
 package.frame.height=600
21 24
 package.frame.width=800
22
-package.numDependencies=2
25
+package.numDependencies=3
23 26
 package.numTargets=3
24 27
 package.showExtends=true
25 28
 package.showUses=true