InventoryTest.java 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import static org.junit.Assert.*;
  2. import java.util.Arrays;
  3. import org.junit.Test;
  4. import org.junit.Before;
  5. public class InventoryTest {
  6. private static final int MAX_QUALITY = 50;
  7. private static final String AGED_BRIE_NAME = "Aged Brie";
  8. private static final String BACKSTAGE_PASS_NAME = "Backstage passes to a TAFKAL80ETC concert";
  9. private static final String NORMAL_ITEM_NAME = "+5 Dexterity Vest";
  10. private Item sulfuras;
  11. private Item normalItem;
  12. private Item conjuredItem;
  13. @Before
  14. public void setup(){
  15. sulfuras = new Item("Sulfuras, Hand of Ragnaros", 0, 80);
  16. normalItem = new Item(NORMAL_ITEM_NAME, 10, 20);
  17. conjuredItem = new Item("Conjured", 10, 20);
  18. }
  19. @Test
  20. public void testUpdate_ForSulfurasQuality() throws Exception {
  21. int expectedQuality = sulfuras.getQuality();
  22. Item[] items = {sulfuras};
  23. Inventory sut = new Inventory(items);
  24. sut.updateQuality();
  25. assertEquals(expectedQuality, sulfuras.getQuality());
  26. }
  27. @Test
  28. public void testUpdate_ForSulfurasSellIn() throws Exception {
  29. int expectedSellIn = sulfuras.getSellIn();
  30. Item[] items = {sulfuras};
  31. Inventory sut = new Inventory(items);
  32. sut.updateQuality();
  33. assertEquals(expectedSellIn, sulfuras.getSellIn());
  34. }
  35. @Test
  36. public void testUpdate_ForNormalItemSellIn() throws Exception {
  37. int expectedSellIn = normalItem.getSellIn() - 1;
  38. Item[] items = {normalItem};
  39. Inventory sut = new Inventory(items);
  40. sut.updateQuality();
  41. assertEquals(expectedSellIn, normalItem.getSellIn());
  42. }
  43. @Test
  44. public void testUpdate_ForConjuredItemQuantity() throws Exception {
  45. int expectedQuality = conjuredItem.getQuality() - 2;
  46. Item[] items = {conjuredItem};
  47. Inventory sut = new Inventory(items);
  48. sut.updateQuality();
  49. assertEquals(expectedQuality, conjuredItem.getQuality());
  50. }
  51. @Test
  52. public void testUpdate_ForNormalItemQuantity() throws Exception {
  53. int expectedQuality = normalItem.getQuality() - 1;
  54. Item[] items = {normalItem};
  55. Inventory sut = new Inventory(items);
  56. sut.updateQuality();
  57. assertEquals(expectedQuality, normalItem.getQuality());
  58. }
  59. @Test
  60. public void testUpdate_ForSoldOutItem() throws Exception {
  61. int minimumQuality = 0;
  62. Item normalItemWithMinimumQuality = new Item(NORMAL_ITEM_NAME, 10, minimumQuality);
  63. Item[] items = {normalItemWithMinimumQuality};
  64. Inventory sut = new Inventory(items);
  65. sut.updateQuality();
  66. assertEquals(minimumQuality, normalItemWithMinimumQuality.getQuality());
  67. }
  68. @Test
  69. public void testUpdate_ForNormalItemOnceTheSellInDatePassed() throws Exception {
  70. Item normalItemWithPassedSellDate = new Item(NORMAL_ITEM_NAME, -1, 25);
  71. int expectedQuality = normalItemWithPassedSellDate.getQuality() - 2;
  72. Item[] items = {normalItemWithPassedSellDate};
  73. Inventory sut = new Inventory(items);
  74. sut.updateQuality();
  75. assertEquals(expectedQuality, normalItemWithPassedSellDate.getQuality());
  76. }
  77. @Test
  78. public void testUpdate_AgedBrie() throws Exception {
  79. Item agedBrie = new Item(AGED_BRIE_NAME, 10, 25);
  80. int expectedQuality = agedBrie.getQuality() + 1;
  81. Item[] items = {agedBrie};
  82. Inventory sut = new Inventory(items);
  83. sut.updateQuality();
  84. assertEquals(expectedQuality, agedBrie.getQuality());
  85. }
  86. @Test
  87. public void testUpdate_WhenAgedBrieIsAtMaxQuality() throws Exception {
  88. Item agedBrie = new Item(AGED_BRIE_NAME, 10, MAX_QUALITY);
  89. Item[] items = {agedBrie};
  90. Inventory sut = new Inventory(items);
  91. sut.updateQuality();
  92. assertEquals(MAX_QUALITY, agedBrie.getQuality());
  93. }
  94. @Test
  95. public void testUpdate_WhenAgedBrieOnceTheSellInDatePassed() throws Exception {
  96. Item agedBrie = new Item(AGED_BRIE_NAME, -1, 20);
  97. int expectedQuality = agedBrie.getQuality() + 2;
  98. Item[] items = {agedBrie};
  99. Inventory sut = new Inventory(items);
  100. sut.updateQuality();
  101. assertEquals(expectedQuality, agedBrie.getQuality());
  102. }
  103. }