瀏覽代碼

added conjured item

Rachelle 8 年之前
父節點
當前提交
40fda21ee3
共有 2 個文件被更改,包括 41 次插入1 次删除
  1. 14
    0
      Inventory.java
  2. 27
    1
      InventoryTest.java

+ 14
- 0
Inventory.java 查看文件

15
                 updateQualityForBrie(i);
15
                 updateQualityForBrie(i);
16
             }else if(items[i].getName().equals("Sulfuras, Hand of Ragnaros")){
16
             }else if(items[i].getName().equals("Sulfuras, Hand of Ragnaros")){
17
                 continue;
17
                 continue;
18
+            }else if(items[i].getName().equals("Conjured Item: Thori'dal, the Stars' Fury")){
19
+                updateQualityConjuredItems(i);
18
             }else if((items[i].getQuality() > 0)){              
20
             }else if((items[i].getQuality() > 0)){              
19
                 updateQualityForOtherItems(i);               
21
                 updateQualityForOtherItems(i);               
20
             }
22
             }
66
         if ((items[i].getSellIn() < 0) && (items[i].getQuality() > 0)) {
68
         if ((items[i].getSellIn() < 0) && (items[i].getQuality() > 0)) {
67
             decreaseQualityByOne(i);
69
             decreaseQualityByOne(i);
68
         }
70
         }
71
+        
72
+    }
73
+    
74
+    public void updateQualityConjuredItems(int i){
75
+        decreaseQualityByOne(i);
76
+        decreaseQualityByOne(i); 
77
+        decreaseSellInByOne(i);
78
+        if ((items[i].getSellIn() < 0) && (items[i].getQuality() > 0)) {
79
+            decreaseQualityByOne(i);
80
+            decreaseQualityByOne(i); 
81
+        }
82
+        
69
     }
83
     }
70
 }
84
 }

+ 27
- 1
InventoryTest.java 查看文件

8
     private static final String AGED_BRIE_NAME = "Aged Brie";
8
     private static final String AGED_BRIE_NAME = "Aged Brie";
9
     private static final String BACKSTAGE_PASS_NAME = "Backstage passes to a TAFKAL80ETC concert";
9
     private static final String BACKSTAGE_PASS_NAME = "Backstage passes to a TAFKAL80ETC concert";
10
     private static final String NORMAL_ITEM_NAME = "+5 Dexterity Vest";
10
     private static final String NORMAL_ITEM_NAME = "+5 Dexterity Vest";
11
+    private static final String CONJURED_ITEM_NAME = "Conjured Item: Thori'dal, the Stars' Fury";
11
 
12
 
12
     private Item sulfuras;
13
     private Item sulfuras;
13
     private Item normalItem;
14
     private Item normalItem;
15
+    private Item conjuredItem;
14
 
16
 
15
     @Before
17
     @Before
16
     public void setup(){
18
     public void setup(){
17
         sulfuras = new Item("Sulfuras, Hand of Ragnaros", 0, 80);
19
         sulfuras = new Item("Sulfuras, Hand of Ragnaros", 0, 80);
18
         normalItem = new Item(NORMAL_ITEM_NAME, 10, 20);
20
         normalItem = new Item(NORMAL_ITEM_NAME, 10, 20);
21
+        conjuredItem = new Item(CONJURED_ITEM_NAME, 10, 20);
19
     }
22
     }
20
 
23
 
21
     @Test
24
     @Test
49
 
52
 
50
         assertEquals(expectedSellIn, normalItem.getSellIn());
53
         assertEquals(expectedSellIn, normalItem.getSellIn());
51
     }
54
     }
52
-
55
+    
53
     @Test
56
     @Test
54
     public void testUpdate_ForNormalItemQuantity() throws Exception {
57
     public void testUpdate_ForNormalItemQuantity() throws Exception {
55
         int expectedQuality = normalItem.getQuality() - 1;
58
         int expectedQuality = normalItem.getQuality() - 1;
60
 
63
 
61
         assertEquals(expectedQuality, normalItem.getQuality());
64
         assertEquals(expectedQuality, normalItem.getQuality());
62
     }
65
     }
66
+    
67
+    @Test
68
+    public void testUpdate_ForConjuredItemQuantity() throws Exception {
69
+        int expectedQuality = conjuredItem.getQuality() - 2;
70
+        Item[] items = {conjuredItem};
71
+        Inventory sut = new Inventory(items);
72
+
73
+        sut.updateQuality();
74
+
75
+        assertEquals(expectedQuality, conjuredItem.getQuality());
76
+    }
63
 
77
 
64
     @Test
78
     @Test
65
     public void testUpdate_ForSoldOutItem() throws Exception {
79
     public void testUpdate_ForSoldOutItem() throws Exception {
84
 
98
 
85
         assertEquals(expectedQuality, normalItemWithPassedSellDate.getQuality());
99
         assertEquals(expectedQuality, normalItemWithPassedSellDate.getQuality());
86
     }
100
     }
101
+    
102
+    @Test
103
+    public void testUpdate_ForConjuredItemOnceTheSellInDatePassed() throws Exception {
104
+        Item conjuredItemWithPassedSellDate = new Item(CONJURED_ITEM_NAME, -1, 25);
105
+        int expectedQuality = conjuredItemWithPassedSellDate.getQuality() - 4;
106
+        Item[] items = {conjuredItemWithPassedSellDate};
107
+        Inventory sut = new Inventory(items);
108
+
109
+        sut.updateQuality();
110
+
111
+        assertEquals(expectedQuality, conjuredItemWithPassedSellDate.getQuality());
112
+    }
87
 
113
 
88
     @Test
114
     @Test
89
     public void testUpdate_AgedBrie() throws Exception {
115
     public void testUpdate_AgedBrie() throws Exception {