From ec261df5b870578c2430eb01ec67910299f9db5d Mon Sep 17 00:00:00 2001 From: Ana Brime Date: Thu, 8 Sep 2016 16:15:36 +0300 Subject: [PATCH 1/4] Gilded Rose test --- 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 -> 2899 bytes .../oulu/tol/sqat/tests/GildedRoseTest.java | 114 ++++++++++++++++-- 5 files changed, 103 insertions(+), 12 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..f750c4e631502f55d73efeb4628a301b4dd6332b 100644 GIT binary patch literal 2899 zcmb7`>r)zM6vm%b5kyk)9yQT5mj=ZMST7{lBuF%3@NUf5v?Z&oWEFSKvUIf5nYPpE zztWlZTfb=9%yjy>e^jT>%N=D+!-rjV&w0;#e&;;rg@6A2^Dh9OVb_TU33vCkfRW4O z0+x{pWZx=Qz*4hTHt_n3U?}74-638feI!pnsu5C1(TtWguacOZfQsAwwBen zWmMM{DrBzF;AZLefq_B6+(lUXBM$%T?!-x|;hRA1CwsF_Nr2^l%EmSIvWH!oM9(g>=+p%v)77um=zOrilS`{gM4I!frN)#B-KNskwcHER>% z5t9hkk>Z@PcbK)5w7Mn$vt>n21d|gX7v?D7vWtA2_mM3_R^+Yd!t-b%9Gu^Z$$N&r z$5NGQO~rNQp=x7G$Pes=S%?|>LC#cD%ZjeVl*7tQOed#YSfn6I9ZCN3nXs zAYr@?-c$9&QcaH7Hb#!+&M*affpC(LFpv!64S zNs;ZA@NN^px0TLrLq3X=F<~tQE5_d2+)|BWLcZ3z|3>J1f%OVo}D$ zP;$gMO8HT9@f(j+UY&dn@GkN07(IvUcYbMrn^$25uA!AzPr-rrYkcCA)7pTxqL-I< z5$IRGZQ_0AJ=%B9(V6hSN7qhAkHhOe$MrJ|yu*fD_t17e}?g& z-(f;*-I(8cFdwcTE)3v026-KZj9c*IHfQ}#KBdvZR>hQDqzK~yQ6?W)RuvfP8QqKt;nT^xl`j@4#O z{smh>Mq73Bw~^5cm)B_v(1n+F2x%f{l+ht&q*F!)Wpqp#nN{M items = store.getItems(); Item itemBrie = items.get(0); assertEquals(11, itemBrie.getQuality()); } - + + @Test + public void testUpdateEndOfDay_BackstagePasses_Quality_20_21() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); + + store.updateEndOfDay(); + + + List items = store.getItems(); + Item itemBackstagePasses = items.get(0); + assertEquals(21, itemBackstagePasses.getQuality()); + + } + @Test + public void testUpdateEndOfDay_ConjuredManaCake_Quality_6_5() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("Conjured Mana Cake", 3, 6)); + + store.updateEndOfDay(); + + + List items = store.getItems(); + Item itemMana = items.get(0); + assertEquals(5, itemMana.getQuality()); + + } + + @Test + public void testUpdateEndOfDay_DexterityVest_Quality_20_19() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("+5 Dexterity Vest", 10, 20)); + + store.updateEndOfDay(); + + + List items = store.getItems(); + Item itemDexterityVest = items.get(0); + assertEquals(19, itemDexterityVest.getQuality()); + + } + @Test + public void testUpdateEndOfDay_AgedBrie_Quality_0_1() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("Aged Brie", 2, 0)); + + store.updateEndOfDay(); + + + List items = store.getItems(); + Item itemAgedBrie = items.get(0); + assertEquals(1, itemAgedBrie.getQuality()); + + } + + @Test + public void testUpdateEndOfDay_Elixir_Quality_7_6() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("Elixir of the Mongoose", 5, 7)); + + store.updateEndOfDay(); + + + List items = store.getItems(); + Item itemElixir = items.get(0); + assertEquals(6, itemElixir.getQuality()); + + } + + @Test - public void testUpdateEndOfDay() { - fail("Test not implemented"); + public void testUpdateEndOfDay_Sulfuras_Quality_80_80() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 0, 80)); + + store.updateEndOfDay(); + + + List items = store.getItems(); + Item itemSulfuras = items.get(0); + assertEquals(80, itemSulfuras.getQuality()); + } } From 6d501c35e23cde54ff087707a58349a7fdf6c343 Mon Sep 17 00:00:00 2001 From: Ana Brime Date: Thu, 8 Sep 2016 16:18:08 +0300 Subject: [PATCH 2/4] No errors --- src/fi/oulu/tol/sqat/tests/GildedRoseTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java index be87ff1..b7445d4 100644 --- a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java +++ b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java @@ -16,7 +16,7 @@ public class GildedRoseTest { // Item("+5 Dexterity Vest", 10, 20)); x // Item("Aged Brie", 2, 0)); x // Item("Elixir of the Mongoose", 5, 7)); x - // Item("Sulfuras, Hand of Ragnaros", 0, 80)); + // Item("Sulfuras, Hand of Ragnaros", 0, 80)); x // Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); x // Item("Conjured Mana Cake", 3, 6)); x From 5ba204e849cd5ff2d9af3555b869f8501a9b0889 Mon Sep 17 00:00:00 2001 From: Ana Brime Date: Thu, 8 Sep 2016 16:18:57 +0300 Subject: [PATCH 3/4] No errors --- src/fi/oulu/tol/sqat/tests/GildedRoseTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java index b7445d4..27a4360 100644 --- a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java +++ b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java @@ -17,7 +17,7 @@ public class GildedRoseTest { // Item("Aged Brie", 2, 0)); x // Item("Elixir of the Mongoose", 5, 7)); x // Item("Sulfuras, Hand of Ragnaros", 0, 80)); x - // Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); x + // Item("Backstage passes to a TAFKAL80ETC concert", 15, 20));x // Item("Conjured Mana Cake", 3, 6)); x @Test From 9bde881ac29593fd919e4291db2c371579452e95 Mon Sep 17 00:00:00 2001 From: ana_b Date: Tue, 18 Oct 2016 17:49:57 +0300 Subject: [PATCH 4/4] Finished. --- bin/fi/oulu/tol/sqat/GildedRose.class | Bin 2131 -> 3076 bytes .../oulu/tol/sqat/tests/GildedRoseTest.class | Bin 2899 -> 6286 bytes src/fi/oulu/tol/sqat/GildedRose.java | 210 ++++++---- .../oulu/tol/sqat/tests/GildedRoseTest.java | 367 ++++++++++++------ 4 files changed, 378 insertions(+), 199 deletions(-) diff --git a/bin/fi/oulu/tol/sqat/GildedRose.class b/bin/fi/oulu/tol/sqat/GildedRose.class index b904cd2a2f60ff47b023e9e0b84ddbe56eddc526..23e716cd27c4daff1d9c56877bd627187f4dc870 100644 GIT binary patch literal 3076 zcma)8-A_|z9DWWIO4~yVsOa!xMMX+cs^WJUvmgkgf>OkZoAaeTz`@euIj2rES(as4 zmMmGaWV^s@yI7WZ;}YE#)R`^IE_Sh-?JpX8-g8c&g-S+p`kwdq@%+Ajhrj;)Oo-_$@tczQw8%~hLzj1#SU0O#5|!>XMK*dsL!Fz5 zTe;=2=5!+M-R${#mI&$C{?1pxE2!w9F-OPhTi3ti>24Yf3ZnYlKD;q-jYkdgRy5(Y!TqhpAL>xU_~T z%g}SP@mJKXV@gKeui^p**hh?fR4lN!w-?*g?gJOYkBb=gVyJ8=9iED}WDnJ9(gSv^ zCuhSnl{AwJLMyuIIvOl2W`v~;n;8^(HHFRb0c{(hcn%7e;wB&Kil=ftB$kX0=SX&(JkLXZ;-&=aHzxO)if< zR?M`-tQKArrm2}>D<2l&iNxSYB6;TMz(jvIozJB;gYB%~mWp1StHU%KAyvrE6bxY= z4iAZ3CY+xMj|=W3BX3H{jEXii%eNU7Z{VDKn^SSjq0OtfgoLDJRh)IWITbz5+oFo& zj+~+5O^0U5&Tp2vxU1rQ++%v#9;0^H+++;VpUM}Ev^J>AofTT&8(lJMXr--c?qkZy zJ;&3_TNUciz{f|bf&eLPJmp`F@)Ojje5pc^zfu7d3)vJ2(||_u9FQhkwTo0K<@pin z6I*UwQ?)f!hmUR8PCgd^n)xfu_7kg$XMnn$FR-%;*Vc{uZB_$)Y_wsT9Z?sCO4y5i z1XAQWasd;Rk#J008Lp)WytA|rGB3%S5PSwR=>ETtt}AR1l4 zAx~xnhd27SleTx2zyxrVUdg1f=#^n^Re)(B%>c^gq@tc7I(lr*UHTP^ouoOztQbbApwU;}ME>uApxPgY>mRtrCpA5A|H~vYVYT31I|D z-l%L>O@ZrmJssc@dXKwgya}inxZj+UoJ^YaBYf4 zi?gkK>t^F0E{hi!Q;>XwU%53>3VuiXNYnM`bKF?Qfu?tzmlhuHEn}ofIQKpt=|_n3 z(3Ww6$E+=?FQc88+sg<#EU#qoStzFzaU?s>=gu;Ei$OUUv69~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 diff --git a/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class b/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class index f750c4e631502f55d73efeb4628a301b4dd6332b..52d8bd039c525a976e76dc6ba647b61892b2eb12 100644 GIT binary patch literal 6286 zcmbuCTWlQF8OOilOLn|o;;k_u7ZL_az;>MMuFWPcHVIB}!iF^owqr;mx{ST!^~B?u zWM3fp%xyf+5!my#N~miqU{4!)s_cP)yqp&_3}_vy{PT~%w>1t zJ>DJEmAv*`&iQ`lfBxThK7aI|x85b90eT`vO^i0rYALg))M`7Xr83%>ubHMg!4RWW!dX+Q1huyj5E9f%s~C0UHAB6ryfCd=lghLXg3i1- zqv%tLrSWV3W{WeY*^I8Lr4ua@oZbBXp<_kGQAds9f!XVorNT%_E$+57wQzG;(KTnO z&|k=;8Lb;H8;-W1PHDD=h$Dt!I*Oy21_CDYrd3KEEo03oF5gg$)-k%MW`#LNU65!4 zqc$Ey=27CbmNs%#HZi)mJ71N2!m%`?G?dHrOmR8n1YJg#Gm0t2BAywF5kuCD8B0}c)oz7l z`KLWjUn0nP4MeVLJYw6bp1C=s|vmqihXCp#y!8C6zh9R!_FbvY94L5H|8+h9!Zkwmw^$zi36s&7Qp zGTT)!T8xZaE27Zw4Q>6e{}J!PL|LCLTZ&z&MCrmHcAoz*WJT81l4=wc zYsvL}pC5*s&N1j`^;(cXxV1Ir<^=P?G==i;aU z1D^xdQ}j+o86j-ZGLN}_Kq|Ne65AQLA@Z(eQS-$)TNS#JFuZWzgU*XrPQS)1Dta0D zFo#a8CWfP3$l1kmvzMYrOls4)EoSnMTP(D<{!IcoxVI z#Ier{gzicd$fx(mqIM$CV~o0RpPwc{d32}389!l`tr>N%##^%stF7Q9nxSp{WJU9W z!ygAa!w*_Ie6PXZXa@1!hO6Cp%AX~B&r-biZAu(IORL|Yj_>1M6MX^StKIPuwcz~@ zjO)a`gg1sRq%K^chU0z{W+p^HD}dj8?o+tpv3K;oP91O4+QXgeTa)p#bjcaI^iBFA zzk7zRY(7W5P4qskJwxf?&a21zx@h}```@I&D#Cgfd^N%)5u}rP@z+*_-j2W=NA|+_ zIK6ZM?WA1**-CM`jz)mSuuu`=!#?6*6)_o4_Sa|J!x=|~jO#$P0Rn796SoQd+NHDu zbXCSdpK(itaa)LSpO8@?V{;=JZ{Udgg@{)G;Y!HZ4HfN5<=WjSH^sF#0Dyk zt*l}S2pJ#_0PboaW`VdpGU9=#h)v0^`Wx-4cu=U~H9#B&;!Ys$0^)T59EprLE<}9L zH)FPH#`^g(G2A&d))yB7jskEW0CND`55OCtWIhC#t!#5U-RftHRLPdZQ2|@(I?)4c z69OItz&HRW0eA?2QvkdrGT@hmfS)^6JisnGB1Aj_#M^*a0OIXHRItg@A;fU11R7Q= z&TSD9ztWsMSl@@Y^HiA@B9?%t0dXFPIuI9tXsm!(TNH~?5v96_P*LTGB_W~(L!-?5A>dOr2g`i2 zqfxzC;3AsKM7$jH^RqNg592&Og#+eM959cgW}n6Z^8^lugZEzY{U zHhQd2gY}zWeHyIKfc06hehaM6f%W;wtWIQB>HlDT0jw{A^#!oL1lDhZ^*dmF8LY2F zW-SX@pY%OY?SJMQqAqe-PYNyYDp0?R4(L_b^?R`E4`A2VVAt1?Pj7@!!&Rv^Leh?Y;t3uS%HK*i!b0gHRjrA>0eb1^N0`!Lf z{Scr(0_aBo{V_m)f)eo45NNmr1e#V)%e#c2;u6rHD-!mW9_zMvo{U%{%MgjnmBfV+jPLaWwm)lpBs&aHZ{(5jyT^)tx&DP;XMWc>|f{Vinu9rpkC zA=I!{YfJxqLe$zb{{Gfvto{M|AV)p54AuLu;txRlBM|=t#6JV^FF^e33W&kZSI_uI vgow4LQv*b(`RGcG+}{BBcL4qafd2&GzhKROhXBLY3^c4-^KqOVO?3Ky*xwUt literal 2899 zcmb7`>r)zM6vm%b5kyk)9yQT5mj=ZMST7{lBuF%3@NUf5v?Z&oWEFSKvUIf5nYPpE zztWlZTfb=9%yjy>e^jT>%N=D+!-rjV&w0;#e&;;rg@6A2^Dh9OVb_TU33vCkfRW4O z0+x{pWZx=Qz*4hTHt_n3U?}74-638feI!pnsu5C1(TtWguacOZfQsAwwBen zWmMM{DrBzF;AZLefq_B6+(lUXBM$%T?!-x|;hRA1CwsF_Nr2^l%EmSIvWH!oM9(g>=+p%v)77um=zOrilS`{gM4I!frN)#B-KNskwcHER>% z5t9hkk>Z@PcbK)5w7Mn$vt>n21d|gX7v?D7vWtA2_mM3_R^+Yd!t-b%9Gu^Z$$N&r z$5NGQO~rNQp=x7G$Pes=S%?|>LC#cD%ZjeVl*7tQOed#YSfn6I9ZCN3nXs zAYr@?-c$9&QcaH7Hb#!+&M*affpC(LFpv!64S zNs;ZA@NN^px0TLrLq3X=F<~tQE5_d2+)|BWLcZ3z|3>J1f%OVo}D$ zP;$gMO8HT9@f(j+UY&dn@GkN07(IvUcYbMrn^$25uA!AzPr-rrYkcCA)7pTxqL-I< z5$IRGZQ_0AJ=%B9(V6hSN7qhAkHhOe$MrJ|yu*fD_t17e}?g& z-(f;*-I(8cFdwcTE)3v026-KZj9c*IHfQ}#KBdvZR>hQDqzK~yQ6?W)RuvfP8QqKt;nT^xl`j@4#O z{smh>Mq73Bw~^5cm)B_v(1n+F2x%f{l+ht&q*F!)Wpqp#nN getItems() { return items; } - + public void addItem(Item item) { items.add(item); } @@ -19,80 +19,138 @@ public void addItem(Item item) { public GildedRose() { items = new ArrayList(); } - public static void updateEndOfDay() - { - for (int i = 0; i < items.size(); i++) - { - if ((!"Aged Brie".equals(items.get(i).getName())) && !"Backstage passes to a TAFKAL80ETC concert".equals(items.get(i).getName())) - { - if (items.get(i).getQuality() > 0) - { - if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) - { - items.get(i).setQuality(items.get(i).getQuality() - 1); - } - } - } - else - { - if (items.get(i).getQuality() < 50) - { - items.get(i).setQuality(items.get(i).getQuality() + 1); - - if ("Backstage passes to a TAFKAL80ETC concert".equals(items.get(i).getName())) - { - if (items.get(i).getSellIn() < 11) - { - if (items.get(i).getQuality() < 50) - { - items.get(i).setQuality(items.get(i).getQuality() + 1); - } - } - - if (items.get(i).getSellIn() < 6) - { - if (items.get(i).getQuality() < 50) - { - items.get(i).setQuality(items.get(i).getQuality() + 1); - } - } - } - } - } - - if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) - { - items.get(i).setSellIn(items.get(i).getSellIn() - 1); - } - - if (items.get(i).getSellIn() < 0) - { - if (!"Aged Brie".equals(items.get(i).getName())) - { - if (!"Backstage passes to a TAFKAL80ETC concert".equals(items.get(i).getName())) - { - if (items.get(i).getQuality() > 0) - { - if (!"Sulfuras, Hand of Ragnaros".equals(items.get(i).getName())) - { - items.get(i).setQuality(items.get(i).getQuality() - 1); - } - } - } - else - { - items.get(i).setQuality(items.get(i).getQuality() - items.get(i).getQuality()); - } - } - else - { - if (items.get(i).getQuality() < 50) - { - items.get(i).setQuality(items.get(i).getQuality() + 1); - } - } - } - } - } + public static void decreaseQuality(Item i){ + i.setQuality(i.getQuality()-1); + } + public static void increaseQuality(Item i){ + i.setQuality(i.getQuality()+1); + } + public static void decreaseSellIn(Item i){ + i.setSellIn(i.getSellIn()-1); + } + public static boolean sellInLessThan11(Item i){ + + if(i.getSellIn() < 11){ + return true; + } + return false; + } + public static boolean sellInLessThan6(Item i){ + if(i.getSellIn() < 6){ + return true; + } + return false; + } + public static boolean hasReachedMaximumQuality(Item i){ + if(i.getQuality() < 50){ + return true; + } + return false; + } + public static boolean hasZeroQuality(Item i){ + + if(i.getQuality() == 0){ + return false; + } + return true; + } + public static boolean hasLessZeroSellIn(Item i){ + + if(i.getSellIn() < 0){ + return true; + } + return false; + } + public static boolean isNotEqual(String name, Item i){ + if(!name.equals(i.getName())){ + return true; + } + return false; + + } + public static boolean isEqual(String name, Item i){ + if(name.equals(i.getName())){ + return true; + } + return false; + + } + public static void setQuality(Item i){ + i.setQuality(i.getQuality() - i.getQuality()); + } + public static void updateEndOfDay() + { + for (Item item:items) + { + if (isNotEqual("Aged Brie", item) && isNotEqual("Backstage passes to a TAFKAL80ETC concert", item)) + { + if (hasZeroQuality(item)) + { + if (isNotEqual("Sulfuras, Hand of Ragnaros", item)) + { + decreaseQuality(item); + } + } + } + else + { + if (hasReachedMaximumQuality(item)) + { + increaseQuality(item); + if (isEqual("Backstage passes to a TAFKAL80ETC concert", item)) + { + if (sellInLessThan11(item)) + { + if (hasReachedMaximumQuality(item)) + { + increaseQuality(item); + } + } + + if (sellInLessThan6(item)) + { + if (hasReachedMaximumQuality(item)) + { + increaseQuality(item); + } + } + } + } + } + + if (isNotEqual("Sulfuras, Hand of Ragnaros", item)) + { + decreaseSellIn(item); + } + + if (hasLessZeroSellIn(item)) + { + if (isNotEqual("Aged Brie", item)) + { + if (isNotEqual("Backstage passes to a TAFKAL80ETC concert", item)) + { + if (hasZeroQuality(item)) + { + if (isNotEqual("Sulfuras, Hand of Ragnaros", item)) + { + decreaseQuality(item); + } + } + } + else + { + setQuality(item); + + } + } + else + { + if (hasReachedMaximumQuality(item)){ + increaseQuality(item); + } + } + } + } + } } diff --git a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java index 27a4360..0d6e822 100644 --- a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java +++ b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java @@ -1,132 +1,253 @@ 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)); x - // Item("Aged Brie", 2, 0)); x - // Item("Elixir of the Mongoose", 5, 7)); x - // Item("Sulfuras, Hand of Ragnaros", 0, 80)); x - // Item("Backstage passes to a TAFKAL80ETC concert", 15, 20));x - // Item("Conjured Mana Cake", 3, 6)); x - - @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_BackstagePasses_Quality_20_21() { - // Arrange - GildedRose store = new GildedRose(); - - store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); - - store.updateEndOfDay(); - - - List items = store.getItems(); - Item itemBackstagePasses = items.get(0); - assertEquals(21, itemBackstagePasses.getQuality()); - - } - @Test - public void testUpdateEndOfDay_ConjuredManaCake_Quality_6_5() { - // Arrange - GildedRose store = new GildedRose(); - - store.addItem(new Item("Conjured Mana Cake", 3, 6)); - - store.updateEndOfDay(); - - - List items = store.getItems(); - Item itemMana = items.get(0); - assertEquals(5, itemMana.getQuality()); - - } - - @Test - public void testUpdateEndOfDay_DexterityVest_Quality_20_19() { - // Arrange - GildedRose store = new GildedRose(); - - store.addItem(new Item("+5 Dexterity Vest", 10, 20)); - - store.updateEndOfDay(); - - - List items = store.getItems(); - Item itemDexterityVest = items.get(0); - assertEquals(19, itemDexterityVest.getQuality()); - - } - @Test - public void testUpdateEndOfDay_AgedBrie_Quality_0_1() { - // Arrange - GildedRose store = new GildedRose(); - - store.addItem(new Item("Aged Brie", 2, 0)); - - store.updateEndOfDay(); - - - List items = store.getItems(); - Item itemAgedBrie = items.get(0); - assertEquals(1, itemAgedBrie.getQuality()); - - } - - @Test - public void testUpdateEndOfDay_Elixir_Quality_7_6() { - // Arrange - GildedRose store = new GildedRose(); - - store.addItem(new Item("Elixir of the Mongoose", 5, 7)); - - store.updateEndOfDay(); - - - List items = store.getItems(); - Item itemElixir = items.get(0); - assertEquals(6, itemElixir.getQuality()); - - } - - - @Test - public void testUpdateEndOfDay_Sulfuras_Quality_80_80() { - // Arrange - GildedRose store = new GildedRose(); - - store.addItem(new Item("Sulfuras, Hand of Ragnaros", 0, 80)); - - store.updateEndOfDay(); - - - List items = store.getItems(); - Item itemSulfuras = items.get(0); - assertEquals(80, itemSulfuras.getQuality()); - - } +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); +} +} \ No newline at end of file