From 9b73b1f948b4031ffb4c84545629bf5d06af8534 Mon Sep 17 00:00:00 2001 From: nmarkuks18 <43221549+nmarkuks18@users.noreply.github.com> Date: Thu, 20 Sep 2018 22:45:34 +0300 Subject: [PATCH] Assignment finished --- 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 -> 3955 bytes .../oulu/tol/sqat/tests/GildedRoseTest.java | 180 +++++++++++++++++- 4 files changed, 174 insertions(+), 6 deletions(-) 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..cdcfcd6a9930d202c98eb40c4cca4025a93d5a60 100644 GIT binary patch literal 3955 zcmb`J>rWh27{=cN3%e}acA=D((#sTzg)U`*mR^9O+}dut1qu{ zqvNylJZUki>{m3!8eml3+BU<;H>{_4kjkklL={xYXj5F#_*mxpEH|d*S(P)Yjq6ES zoskViygNVotZRzNXkYxPlIdgACXzhAn363%s-?!~M&#whV4A0f4237oWn@*cmJ?l_ ziLNe24U-woQm*qE#Z<86pr+}TY$>{i9m8?mNJr;0fQSmtK0nnmYAi})wHiUHp(;OZ zVYH=aR?Onp1GJSXB$pop68bmR+Guql3U#;MjWhh#@FBWT?5g~VkXeaGrW|bca(SC|RQLF}JYs^_$pnG2h3?%-l1zt2norF3EvA`*P)(^2DOxEM4Ln!lV zl?P3e8&-%8(-B4?Ir}zx1BxNbiq_Mog^emqOE=(^oy8Sc6#_1(P;9#JS~jqYAt3_v76UvQ; zXhJAg1?B7+jP`nja7adY+K^M+ywDw>DMmGs9%+Q%w77w0lV(7W3tr>YU;KuyE*)`< zFL7gxr_qi}sKiAWby(NtGX}cntgOk>u)F{TvtrthE$ajuN5G!WTq50!B2Tp-A!Y&V zDvp*RIk{k3a+*tv!k(sN>5?o>51u$P7(d!MIz22Ubu9@KGwSpRK9y1DGKOqAMav?N z@T9?I#0pRnot>M~E}fFKlyJnPoYrJRH*<+kpf`lDxtWaGJ+_+2=I3k_)0{nqmb-Id z>d}=Vj6Lz$f*i~RY4A3MYx7Io(6QH)o-vaA1Z>P`^J=S3qqrU7kin6Kqak~Agz$t< z1g?I(M{#GkSM0w}fp76pMnPP~Fwq98##Jo91l%{^j#CSxWwZ&;VpbS;5$F!ye7GNZ zOf?tp)8=^OG1XnHt*;0N@6)ywYJ5PuBP-N&w!Qozy--F!Q{7k{wI5iaj$03?TWnpP z-FjCxTq6Z&2W_L>)JRPvQ8PtwwjQRIY)bp>t(=qspg2m$kc>oIsh9eYUIb(PbR01U z5LqDDV=rQi(Mz5PUpWZJ+z5k#u)ici?Qk89IuIwHjDcgEcF`m}HANjX4Z8CMEd6;wgjB*+&6E?Q z1LmJ`31W}gg1qd>@{Pl?##I-5z9*wpl>)g8kSj2Hg0|CD{PU7TgQVyHailv}08;F% zrhI!G0OTbXh&^V5T=oR{&H*{@7NtHM40k;lrH-zYf>{8Jiu&s4_C<8Ni7vO$Fd203 zQUT2Iyed78Dtq&)M4^hi*X=PI<`qwv5)MoF{|C!!V0j%5djk%86ApU|&UqUSy9I~c zE?`;DVQ!W}hsn>vGFu*=SWlN!DP7(H%e!EC4=nG4xvA-mrfaFtn$0hef?ztMQ`3+-HyBV z@nM23!W4uS|t&#ETAZHfT_hG_5pSmAoq~g_W)Tzt2{)jJVLAd0Q3J? z0JC1JxM2!gMe~HYTSAg`595+2*e@XY73TU4=K3Ax`V;2*3+DP8viws(QY=ez{silQ RWNs3B%$7yRfnP?8{{d2(`t<++ delta 167 zcmew?_k)@1)W2Q(7#J9g86+oi?dIhvNi8l3$w&<;DlN&F_+H items = store.getItems(); Item itemBrie = items.get(0); assertEquals(11, itemBrie.getQuality()); + } + + //At the end of each day our system lowers both values for every item + @Test + public void testUpdateEndOfDay_LowerQualityBy1() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Elixir of the Mongoose", 5, 7)); + + // Act + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemElixir = items.get(0); + assertEquals("Test failed", 6, itemElixir.getQuality()); } - + @Test - public void testUpdateEndOfDay() { - fail("Test not implemented"); + public void testUpdateEndOfDay_LowerSellInBy1() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Elixir of the Mongoose", 5, 7)); + + // Act + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemElixir = items.get(0); + assertEquals("Test failed", 4, itemElixir.getSellIn()); } + + //Once the sell by date has passed, Quality degrades twice as fast + @Test + public void testUpdateEndOfDay_QualityDegradesX2() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("+5 Dexterity Vest", 1, 20) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemVest = items.get(0); + assertEquals("Test failed",17, itemVest.getQuality()); + } + + //The Quality of an item is never negative + @Test + public void testUpdateEndOfDay_QualityNeverNegative() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Conjured Mana Cake", 1, 1) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemCake = items.get(0); + assertEquals("Test failed",0, itemCake.getQuality()); + } + // The Quality of an item is never more than 50 + @Test + public void testUpdateEndOfDay_QualityNeverOver50() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Aged Brie", 10, 49) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemBrie = items.get(0); + assertEquals("Test failed",50, itemBrie.getQuality()); + } + + @Test + public void testUpdateEndOfDay_QualityNeverOver50_test2() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 4, 49) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemBrie = items.get(0); + assertEquals("Test failed",50, itemBrie.getQuality()); + } + + //"Sulfuras", being a legendary item, never has to be sold or decreases in Quality + @Test + public void testUpdateEndOfDay_SulfurasQualityNeverDecreases() { + // Arrange + GildedRose store = new GildedRose(); + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 0, 80) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemSulfuras = items.get(0); + assertEquals("Test failed",80, itemSulfuras.getQuality()); + } + + // "Backstage passes", like aged brie, increases in Quality as it's SellIn value approaches; + //Quality increases by 2 when there are 10 days or less + @Test + public void testUpdateEndOfDay_PassesQualityIncreasesBy2() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 10, 20) ); + + // Act + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemPasses = items.get(0); + + assertEquals("Test failed",22, itemPasses.getQuality()); + } + + //Backstage passes Quality increases by 3 when there are 5 days or less + @Test + public void testUpdateEndOfDay_PassesQualityIncreasesBy3() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 6, 20) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemPasses = items.get(0); + + assertEquals("Test failed",25, itemPasses.getQuality()); + } + + //Backstage passes Quality drops to 0 after the concert. + @Test + public void testUpdateEndOfDay_PassesQualityZero() { + // Arrange + GildedRose store = new GildedRose(); + + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", 1, 20) ); + + // Act + store.updateEndOfDay(); + store.updateEndOfDay(); + + // Assert + List items = store.getItems(); + Item itemPasses = items.get(0); + + assertEquals("Test failed",0, itemPasses.getQuality()); + } + }