From 14a845f53eec4f8e24ac4875cc7dcd11b5bfa924 Mon Sep 17 00:00:00 2001 From: akairala Date: Fri, 9 Sep 2016 16:58:39 +0300 Subject: [PATCH 1/2] Project Finished --- bin/.gitignore | 1 + bin/fi/oulu/tol/sqat/GildedRose.class | Bin 2380 -> 2131 bytes bin/fi/oulu/tol/sqat/Item.class | Bin 1034 -> 1034 bytes .../oulu/tol/sqat/tests/GildedRoseTest.class | Bin 504 -> 1833 bytes .../oulu/tol/sqat/tests/GildedRoseTest.java | 28 ++++++++++++++++-- 5 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 bin/.gitignore diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..76b3e7b --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/fi/ diff --git a/bin/fi/oulu/tol/sqat/GildedRose.class b/bin/fi/oulu/tol/sqat/GildedRose.class index f244eba73874c91f18244a292b7f88cc3b4b5f80..b904cd2a2f60ff47b023e9e0b84ddbe56eddc526 100644 GIT binary patch literal 2131 zcmbVMOK%%h6#nkmi60qa*C}amn|9Jbu$vHv7D7{p7RPxuu0!g`sD(vu?6Es#Vkh$e zr9wgic3q&h3q*w~5fUv69~hLv6^Zw z!ISZ;q=)9k*i~4gBU|X#spp`g$N?cH>hie zpEkfj$ytV0DJO$8k8k?$M$@>}d@?45I^F7)&2`g{vou&UyzrrE@v^FHa??~z#i}Y? zSxe0?r!r?J=GM|mp;{@Z25of==VT-?%@8CCtAwFh+s=?J`9aeb&Dna%Hn=&aEb>ZG zsg{(>oJQEFnj-lf87a(Avgu0pk`j60os}^spaTS*Q+0i*BCHEC7DY~ga%xr~=0zFH zBGzkaH%SJj(X&M3owH~&m-uFVeuKHHZ4}gbO-y*GF=gYTkr<)_;i1z@gv6}1L{Kl*T({M3E))4wR2CM=2GJ(N4Tha(c+YZMPUt}t;tLkNGv~>qNor&CX7jmx~-MQ{IyVn%b@>y%=bLssBSd`HAKzG2me}62FiN`sk zH|Y?7?u#x&=~6sK7tC>d00p057@uMUcM-!wx|jFqrg?&K{DBD;p__9Alk6Pbj#qJk zZ6U>OW0rk~dG;8K>{nc5zazu`L{^GoRT{*aw2Zuz#T98C?@OOyK)Q`<|D7I5`Vtvj iA|6?K`VshxZju9RAK=ab7A6mHYvPPJm@DL!@b16uzSTPb literal 2380 zcmbVNOK%fb6#nkm@r!{N=K&3cPD%qdq?kuT00*cO@-R3F!NF+)6mIMrGhyNhGvk(^ zN|oB~SX6qLxWS8s_~`Vk$TZGOB}Lr7-9rUq2(z}r-}St4#) zD#5xLKTnYk#S1={2w)e3e{^_oD4A*xLBqR#v@;NyMfCI7;eB7DQg_wR91{F`~NP&~NFMX3l8N zb)gNL#ezw)3*ZDpTc%{plq_y{YD2u3mp&IbNy{?r0D4GVy*zirc6dQ(^W3(DtvRN~ zwejS@xn%m-!T#|+EoT;U!g2y2QAPU9;w-5$uMP7e*ZTMk5h8JYs3IvPvbi*$=Z+XF zaf1jUEpV$ql4+_V1xZ4`iUAB#!v!IaJesOX-8Cf%NoY#NS)8N8B)<_pN1APpx?QX4 z3Sk(devH&=tE@Z~=Owc~ag$23WzGvKG8ktFQO?zRX=YN=m{l=>kH~1dj9#iQE3H#1 zF3Hd!g=U0dq>2)~qT*v26Qr05DqFm!f=geot>31)nNClNh{`y``!Jucj$0^WmaLo@ z(B(ijuFcZ{DG;<1#U8qBs31AS^!C%2f&jeq1PNu>L`Vm{-zGY%X7r#1W7NnDw&63nlNQm2Z|DM&990^=k6!eZ8zyO28up}#aAHfj z>q$IRzKnEHKW$HOM!|20E@NmJ=?9pJB>7pDE9*Plt96|WZ(2fkEjA|8?{;JE_3QMt*ksuEhI#6e@_*Y; zN>VPb+x~m}QU7$ltw+NHY&ab()i30Zdn5OH?R2iYVfUI`)_qov^Nsla3apK?J;haq zAOHDOs@+qb_S@J+>vp;*cGJI;4)kL$E+a-N@5JYb;~oy-F3&89eH|M5&WC(q!lcz;O+_rkFMa(!6OPyk|3*sng0M*izc}M diff --git a/bin/fi/oulu/tol/sqat/Item.class b/bin/fi/oulu/tol/sqat/Item.class index 478a73984862181a0a6b22a57fca5a1788d6a3f6..86c608e1a130d3506ba1bc783f500e2d34d0181d 100644 GIT binary patch delta 30 gcmeC;=;GLLiBXV&ft7)c0R-3?I6&0q$BgPs08#Y>lK=n! delta 30 jcmeC;=;GLLiBXV|ft7)cfq{XMft`T^L~nk~sLlicQXd4C diff --git a/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class b/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class index e44e81ce2b232358b6069c215dc740c0984c2b8c..6cc9f57fabef3ff697f836bdd4823a75318d4d0d 100644 GIT binary patch literal 1833 zcmb7EZBx@o9RF=;Z3$6psUn~l#fO%vp?W@GIkX6Bv4T=$##c;ewspCXV6t(B4{#sm z=3d*Y}}r?!QS(g{q@{k6?7!7%hDlx_wMhf+wf(_{l zw_T~#itDQ7IUVOQ!H~9WTeV>rEA*?ODwTMHq2r=b_(XU}1=VX($7Nh$$h5gsJBVkl zP>jzGrEtu;Af`jOhGH58Y7wD2sOXqNi5#WfM6yup?EJ#_N{RxcenX0$sbd_ z(nooyX%wGO`;8WJ1R~cT#SG?&^SsskEs$258#{_- zkii1O^ePWRM;czsIBcBJ@_eJg9jE3RA~1y8^n9Q0m{RzOj;BiDK~gwgqNJ@U5tqIm zt60b3NQ5qomk|nvNd>rL)Jm%nI<3&Rf@S`m`wP73b1TBSOd57;8N6h;+MOB7ExKQZ z-Cf;7>+E);p-~_jUg$UZ6QS9!}ZcfN!W96@|F=kZKH%euhHzdlYhyHKMRc z6rLTWP$UXdMBxTen5N^)1nL%1xcw6po_~`<{i_uI?6@#<*o7D0rLdC6tBwzSB<>T5 r86q)DB<6_3Ln85r)UJL(V&=ey@_`Sd2R@v@Q4*>a`_Le75?K2m8+(&u delta 167 zcmZ3<_k)@1)W2Q(7#J9g86+oi?dIhvNi8l3$w&<;DlN&F_+H items = store.getItems(); + Item itemBackstagePasses = items.get(0); + assertEquals("Result of updateEndOfDay for SellIn is incorrect", 1, itemBackstagePasses.getSellIn()); + } + + @Test + public void testQualityOfSulfurasNeverDecreases() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Sulfuras", 2, 10) ); + + // Act + store.updateEndOfDay(); + + List items = store.getItems(); + Item itemBackstagePasses = items.get(0); + assertEquals("Sulfuras quality decreases incorrectly", 10, itemBackstagePasses.getQuality()); } } From 40b3d3ab57a30195ffb9f46a01cde6ec549e7a78 Mon Sep 17 00:00:00 2001 From: akairala Date: Wed, 19 Oct 2016 23:40:59 +0300 Subject: [PATCH 2/2] Assignment 5 finished --- bin/fi/oulu/tol/sqat/GildedRose.class | Bin 2131 -> 2217 bytes bin/fi/oulu/tol/sqat/Item.class | Bin 1034 -> 1587 bytes .../oulu/tol/sqat/tests/GildedRoseTest.class | Bin 1833 -> 6218 bytes src/fi/oulu/tol/sqat/GildedRose.java | 14 +- src/fi/oulu/tol/sqat/Item.java | 21 ++ .../oulu/tol/sqat/tests/GildedRoseTest.java | 354 ++++++++++++++---- 6 files changed, 316 insertions(+), 73 deletions(-) diff --git a/bin/fi/oulu/tol/sqat/GildedRose.class b/bin/fi/oulu/tol/sqat/GildedRose.class index b904cd2a2f60ff47b023e9e0b84ddbe56eddc526..44f686a3c940018e372856b5ffb179c8a9145b9d 100644 GIT binary patch delta 740 zcmaKq-Aj{U7{-6kvoAJZ^wn&PRiFhjOT=nL(#LXXZA;Cmt<0iEzQtfHYLiF^i45tW zB3=rF5b|Vn)RzqGAUcSGPCKa%`V*qlSVhmXxr0e{@E$z(^}Fxuy1Czv=96aMhu^PW z13NkM+}Gxq_0q*bgFd1H&*kZKHdDAJ5OJTX_ZtjwSkN?OoxftG^H#E^J45l#lty9( z@d}d3)gf9tYB0z?f%l?S7_+k3cut!Q8ywSS?z}F=a+*vUjOr(=gSYrUK>-T!H+x#@tF8Np?SN{pdM zZ>+<zI6t9bG4; z_&{fw{ukmp1C6z=GTqNay!S!(kS6?B%M7lv*$DMVx=U0HlQ7JzW}Lo8#P~eLYb*{& z!X=u(npd0gir2lGMZ5kZvg#sdz+6#kPSG;MX7bS{r{{dGpP;N6MD~!l1MrDIB`N+6@Atm2Qt0)*>0jaWBrC24=TV*-kqck|F+luqQ0k~(QbN~PV diff --git a/bin/fi/oulu/tol/sqat/Item.class b/bin/fi/oulu/tol/sqat/Item.class index 86c608e1a130d3506ba1bc783f500e2d34d0181d..20d1f843cd16c3ecd5912b351d1269dd17b19133 100644 GIT binary patch delta 591 zcmeC;*v!Lq>ff$?3=9m$3}zd-mNC}zXXYgrr6v}q29_q~WR_HNF)%Xd@Gz(|s4z0{ zr=+6DF*5MMM1oUuay;`uiVb)eltGF)GmBj-3NnjQQy3W}G7^h}QWKLiQd4{rD>8FS zbD^dKO#n(or55Ew1tza!v|;4k{F+gUsa_mt8V}HE&J4^9OhB4jOKTg0HcP@b28oS8 zE)#<^kmLeOsRC&=1{ok<45E}lmO&2418QR6WZ(cA#K@q_fWyEPECy;YaMd$t5-?E@ zyNUWNKodpKov00Tq7DuN*`ZD}WZ;MTS(|~O9>`>1U__Y11{Tlff$?3=9m$3_2URmN8B?WU^vp-<-oF#l*_Mz{H>p0MUyG)Bpeg diff --git a/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class b/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class index 6cc9f57fabef3ff697f836bdd4823a75318d4d0d..5dc55bfda58598129378164361fe204ecd9b4644 100644 GIT binary patch literal 6218 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 diff --git a/src/fi/oulu/tol/sqat/GildedRose.java b/src/fi/oulu/tol/sqat/GildedRose.java index 24741c6..a2ac400 100644 --- a/src/fi/oulu/tol/sqat/GildedRose.java +++ b/src/fi/oulu/tol/sqat/GildedRose.java @@ -29,7 +29,7 @@ public static void updateEndOfDay() { if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) { - items.get(i).setQuality(items.get(i).getQuality() - 1); + items.get(i).decreaseQuality(items.get(i).quality); } } } @@ -37,7 +37,7 @@ public static void updateEndOfDay() { if (items.get(i).getQuality() < 50) { - items.get(i).setQuality(items.get(i).getQuality() + 1); + items.get(i).increaseQuality(items.get(i).quality); if ("Backstage passes to a TAFKAL80ETC concert".equals(items.get(i).getName())) { @@ -45,7 +45,7 @@ public static void updateEndOfDay() { if (items.get(i).getQuality() < 50) { - items.get(i).setQuality(items.get(i).getQuality() + 1); + items.get(i).increaseQuality(items.get(i).quality); } } @@ -53,7 +53,7 @@ public static void updateEndOfDay() { if (items.get(i).getQuality() < 50) { - items.get(i).setQuality(items.get(i).getQuality() + 1); + items.get(i).increaseQuality(items.get(i).quality); } } } @@ -62,7 +62,7 @@ public static void updateEndOfDay() if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) { - items.get(i).setSellIn(items.get(i).getSellIn() - 1); + items.get(i).decreaseSellIn(items.get(i).sellIn); } if (items.get(i).getSellIn() < 0) @@ -75,7 +75,7 @@ public static void updateEndOfDay() { if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) { - items.get(i).setQuality(items.get(i).getQuality() - 1); + items.get(i).decreaseQuality(items.get(i).quality); } } } @@ -88,7 +88,7 @@ public static void updateEndOfDay() { if (items.get(i).getQuality() < 50) { - items.get(i).setQuality(items.get(i).getQuality() + 1); + items.get(i).increaseQuality(items.get(i).quality); } } } diff --git a/src/fi/oulu/tol/sqat/Item.java b/src/fi/oulu/tol/sqat/Item.java index 447b7fe..0ce0908 100644 --- a/src/fi/oulu/tol/sqat/Item.java +++ b/src/fi/oulu/tol/sqat/Item.java @@ -31,5 +31,26 @@ public int getQuality() { public void setQuality(int quality) { this.quality = quality; } + + /* Ari's implementations */ + public void increaseQuality(int quality) { + this.setQuality(getQuality() + 1); + } + public void decreaseQuality(int quality) { + this.setQuality(getQuality() - 1); + } + public void decreaseSellIn(int sellIn) { + this.setSellIn(getSellIn() - 1); + } + public void isExpired() { + // Not implemented yet + } + public void hasReachedMaximumQuality() { + // Not implemented yet + } + public void hasZeroQuality(int quality) { + // Not implemented yet + } + } diff --git a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java index ecd4b51..dc12454 100644 --- a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java +++ b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java @@ -1,66 +1,288 @@ -package fi.oulu.tol.sqat.tests; - -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Test; - -import fi.oulu.tol.sqat.GildedRose; -import fi.oulu.tol.sqat.Item; - -public class GildedRoseTest { - -// Example scenarios for testing -// Item("+5 Dexterity Vest", 10, 20)); -// Item("Aged Brie", 2, 0)); -// Item("Elixir of the Mongoose", 5, 7)); -// Item("Sulfuras, Hand of Ragnaros", 0, 80)); -// Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); -// Item("Conjured Mana Cake", 3, 6)); - - @Test - public void testUpdateEndOfDay_AgedBrie_Quality_10_11() { - // Arrange - GildedRose store = new GildedRose(); - store.addItem(new Item("Aged Brie", 2, 10) ); - - // Act - store.updateEndOfDay(); - - // Assert - List items = store.getItems(); - Item itemBrie = items.get(0); - assertEquals(11, itemBrie.getQuality()); - } - - @Test - public void testUpdateEndOfDay() { - // Arrange - GildedRose store = new GildedRose(); - store.addItem(new Item("Backstage passes", 2, 10) ); - - // Act - store.updateEndOfDay(); - - // Assert - List items = store.getItems(); - Item itemBackstagePasses = items.get(0); - assertEquals("Result of updateEndOfDay for SellIn is incorrect", 1, itemBackstagePasses.getSellIn()); - } - - @Test - public void testQualityOfSulfurasNeverDecreases() { - // Arrange - GildedRose store = new GildedRose(); - store.addItem(new Item("Sulfuras", 2, 10) ); - - // Act - store.updateEndOfDay(); - - List items = store.getItems(); - Item itemBackstagePasses = items.get(0); - assertEquals("Sulfuras quality decreases incorrectly", 10, itemBackstagePasses.getQuality()); - } -} +package fi.oulu.tol.sqat.tests; + +import static org.junit.Assert.*; +import java.util.ArrayList; +import java.util.List; +import org.junit.Test; + +import fi.oulu.tol.sqat.GildedRose; +import fi.oulu.tol.sqat.Item; + +public class GildedRoseTest { + + GildedRose store = new GildedRose(); + + // Test Aged Brie + @Test + public void testUpdateEndOfDay_AgedBrie_Quality_2_10() { + // Arrange + store.addItem(new Item("Aged Brie", 2, 10) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality of Aged Brie increases"; + assertEquals(failMessage, 11,quality); + } + + @Test + public void testUpdateEndOfDay_AgedBrie_Quality_10_50() { + // Arrange + store.addItem(new Item("Aged Brie", 10, 50) ); + // Act + store.updateEndOfDay(); + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "The Quality of an item is never more than 50"; + assertEquals(failMessage, 50, quality); + } + + @Test + public void testUpdateEndOfDay_AgedBrie_Quality_0_10() { + // Arrange + store.addItem(new Item("Aged Brie", 0, 10) ); + // Act + store.updateEndOfDay(); + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "The Quality of Aged Brie increases twice after SellIn date has passed"; + assertEquals(failMessage, 12, quality); + } + + @Test + public void testUpdateEndOfDay_AgedBrie_Quality_0_50() { + // Arrange + store.addItem(new Item("Aged Brie", 0, 50) ); + // Act + store.updateEndOfDay(); + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "The Quality of Aged Brie is never more than 50 increases twice after SellIn date has passed"; + assertEquals(failMessage, 50, quality); + } + + @Test + public void testUpdateEndOfDay_AgedBrie_Quality_Minus1_20() { + // Arrange + store.addItem(new Item("Aged Brie", -1, 20) ); + // Act + store.updateEndOfDay(); + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "The Quality of Aged Brie increases twice after SellIn date has passed"; + assertEquals(failMessage, 22, quality); + } + + @Test + public void testUpdateEndOfDay_AgedBrie_SellIn_2_10() { + // Arrange + store.addItem(new Item("Aged Brie", 2, 10) ); + // Act + store.updateEndOfDay(); + + // Assert + int sellIn = store.getItems().get(0).getSellIn(); + String failMessage = "SellIn date decreases"; + assertEquals(failMessage, 1, sellIn); + } + + @Test + public void testUpdateEndOfDay_AgedBrie_SellIn_1_10() { + // Arrange + store.addItem(new Item("Aged Brie", 1, 10) ); + // Act + store.updateEndOfDay(); + + // Assert + int sellIn = store.getItems().get(0).getSellIn(); + String failMessage = "SellIn date decreases"; + assertEquals(failMessage, 0, sellIn); + } + + @Test + public void testUpdateEndOfDay_AgedBrie_SellIn_0_10() { + // Arrange + store.addItem(new Item("Aged Brie", 0, 10) ); + // Act + store.updateEndOfDay(); + + // Assert + int sellIn = store.getItems().get(0).getSellIn(); + String failMessage = "SellIn date decreases"; + assertEquals(failMessage, -1, sellIn); + } + + // Test Sulfuras + @Test + public void testUpdateEndOfDay_Sulfuras_Quality_0_80() { + // Arrange + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 0, 80) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality of Sulfuras is 80 and never alters"; + + assertEquals(failMessage, 80, quality); + } + + @Test + public void testUpdateEndOfDay_Sulfuras_SellIn_5_80() { + // Arrange + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 5, 80) ); + // Act + store.updateEndOfDay(); + + // Assert + int sellIn = store.getItems().get(0).getSellIn(); + String failMessage = "Sulfuras, being a legendary item, never has to be sold"; + assertEquals(failMessage, 5, sellIn); + } + + @Test + public void testUpdateEndOfDay_Sulfuras_SellIn_0_80() { + // Arrange + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 0, 80) ); + // Act + store.updateEndOfDay(); + + // Assert + int sellIn = store.getItems().get(0).getSellIn(); + String failMessage = "Sulfuras, being a legendary item, never has to be sold"; assertEquals(failMessage, 0, sellIn); + } + + // Test Backstage pass + @Test + public void testUpdateEndOfDay_Backstage_Quality_15_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality of Backstage pass increases by 1 when there are more than 10 days"; + assertEquals(failMessage, 21, quality); + } + + @Test + public void testUpdateEndOfDay_Backstage_Quality_10_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 10, 20) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality of Backstage pass increases by 2 when there are 10 or less days"; + assertEquals(failMessage, 22, quality); + } + + @Test + public void testUpdateEndOfDay_Backstage_Quality_8_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 8, 20) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality of Backstage pass increases by 2 when there are 10 or less days"; + assertEquals(failMessage, 22, quality); + } + + @Test + public void testUpdateEndOfDay_Backstage_Quality_5_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 5, 20) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality of Backstage pass increases by 3 when there are 5 or less days"; + assertEquals(failMessage, 23, quality); + } + + @Test + public void testUpdateEndOfDay_Backstage_Quality_3_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 3, 20) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality of Backstage pass increases by 3 when there are 5 or less days"; + assertEquals(failMessage, 23, quality); + } + + @Test + public void testUpdateEndOfDay_Backstage_Quality_0_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 0, 20) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality of Backstage drops to 0 after the concert"; + assertEquals(failMessage, 0, quality); + } + + @Test + public void testUpdateEndOfDay_Backstage_Quality_15_50() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 15, 50) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "The Quality of an item is never more than 50"; + + assertEquals(failMessage, 50, quality); + } + + @Test + public void testUpdateEndOfDay_Backstage_SellIn_5_10() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 5, 10) ); + // Act + store.updateEndOfDay(); + + // Assert + int sellIn = store.getItems().get(0).getSellIn(); + String failMessage = "The SellIn value should decrease by 1"; + assertEquals(failMessage, 4, sellIn); + } + + // Test Elixir + @Test + public void testUpdateEndOfDay_Elixir_Quality_2_7() { + // Arrange + store.addItem(new Item("Elixir of the Mongoose", 2, 7) ); + // Act + store.updateEndOfDay(); + + // Assert + int quality = store.getItems().get(0).getQuality(); + String failMessage = "Quality decreases by 1"; + assertEquals(failMessage, 6,quality); + } + + @Test + public void testUpdateEndOfDay_SellIn_Quality_2_7() { + // Arrange + store.addItem(new Item("Elixir of the Mongoose", 2, 7) ); + // Act + store.updateEndOfDay(); + + // Assert + int sellIn = store.getItems().get(0).getSellIn(); + String failMessage = "SelIn decreases by 1"; + assertEquals(failMessage, 1, sellIn); + } +}