From 16d04a78c9660935094f5522c9f69a39d96404a6 Mon Sep 17 00:00:00 2001 From: jon bilbao Date: Tue, 18 Oct 2016 16:55:34 +0300 Subject: [PATCH] finished --- bin/.gitignore | 1 + bin/fi/oulu/tol/sqat/GildedRose.class | Bin 2380 -> 3519 bytes .../oulu/tol/sqat/tests/GildedRoseTest.class | Bin 504 -> 6256 bytes src/fi/oulu/tol/sqat/GildedRose.java | 219 ++++++++------- .../oulu/tol/sqat/tests/GildedRoseTest.java | 251 +++++++++++++++++- 5 files changed, 376 insertions(+), 95 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..867e60e3f922c90fa68a48425bc7b25340888614 100644 GIT binary patch literal 3519 zcmaJ?ZF3vd6@J!ldhyzk729bYXcd}(YzIUDQ&Kr8j`JoWJ1=rgR%xZYnQx&Z?Aj>55a+5p)?yEUQ(OsVKXgxp;k9 z7d->rmZz&Vn)1G_?pc*g-l}<71F?ctwv|_RwSmzc=E?l7yK)4|o}^!NvRJWf%R6bH zGd((QpljMG=@<<3ndnB3fqi+)*0c5Mb?wfn>lNZB^G;D!=9O#7cevRz>BGd)iKK}H z;)L>+EJpkA?(3VWGK8+GvTOsx>1#pUe#!;Uwd`_sbUub}U?hTXZX=|yUSk3#4&ouk z?bON5P~dDinM?Ha=&w~Z8^yN_L@v&pJ3o~>6h{h=L~zK!exJYXXH9$uhk1BK+$#)d zDBUie2p(XpU1t7=D6=apTOGglO)QGC9}Vc6oiB`CeGpZ-QAW1(wqk;U>9i^aNqEy%nC zam~b!B#46yV%G7lXjNR&r5UwmRqNFdPR_k#;wN(1fMxHvOsvYpbwN2ml)SFhB$YE2 zy{heku2gcioGF>ma%QmQOu<@f9w?hwk}F1<`2@yhI)bxo;)dW1wcrSCO&~S^TY&m` zqJ>Z?{fdd3pgJNn&H7blcUxe|DV!?f{~E$6$bv_G&!`o@t;ys3sfjhL6RNDeKmpqY z6LzXNevV&6aBF*?^1GOcU&<@((Kjh`ma5yPkfx-M`qFIecXHvYCSJpD48(cimPQzU zPK>Xccmr?JSZgtMrP(CJ`j&~`iEE6m4W80?+r&HK6QfVC%WT*(M5BC5JS)E#ShDdF zS|`i+uFbvXNxb0H-J(8g$)MQR?DJ1ZsyM{Dc5(l>IM?7hO zv}-e)*w+U0L{Fk;>*$yGelwXdW(%LHB$7-c%|s?Kgv(515eIOKv+_NR-~$du;V4M> z4o+d(Pnaz?NZ42(f6j+eGb9mXBh;PLJ{|3(pc zK(0F|<{a>V-yIR8{f{F9V?7VZdT66|IZ;BLz~nIk8%WuKfFkxhJCk z6<*;gzvO1VW|;~h)J5_k;vY;NCvPlV-`LnDe%)2t#BZBy_4{v6)3Z$REN^8)zm{x> zw4X=VqW1*9E#SZ330|eAL-3n>gLA}$;K#$rdxL;q4g(Ho5Z=IK<5+FM>kWgA$wUib zp65v+pik0HJoOp6yFTv}J_DTujbp6^q;Gr1y^Nc)Bt)AGgX;H#637OTt#RE#9~*n~ zo%L_U#c>}Zo#ZNU^$N%*ZKHan1)`CfsET!nF)Gf$HdwbmYK!&S-dLR7AyzA2w-deX z`Ff)TtqotC@@>(2+M~U-7n*^0x7feTT1wrAwl!hCerdeTW*DgXZHnU^>i1nAJ$Nfa vVTUJ#UlMsMe_&&jM<_4seSgLr_6q}au?7Cc-*1kX_k1)7!oVMW+Xw##3nk9L delta 1083 zcmaKr&r4KM6vsd3&N!mJY8a@*s1V5%g3-)GC88*Dbaa|V^GE)Aqt9tp<=oO?=CTt zydR&68C>U_;IXD3n2DKO)(wLQ-D$t)sOP3ZFMa8tr#w7haEorCME8tXi9}#3#~m^l zrca|Y|Ijk(7&S0+T=z_T))FMHS3o!rNt$DKI?a3CW;9`?zj<23y>_zruB2Q++z6-z zSL?ER=4)KVs95KU;v+Q~+A;(eneeq1fU{a(+Wh4!ygP!{&< z-=C9ZFt7h>z7#g-Wg#IJ`OhGh@?Mhq>+qbtlReHUy<^aAJ8X|NCGWVCu!rOhrBb$k zZO78*NQEx9&WP~#*P|6ZbS@6+eU=k?ucU}7J%*>a%4r6vd)+TDT+ww8=E>GEb+xBP8z$%jaPt@|7O>L9eP{KpkgDbugm3h^i>#>M50K so;ZheYeUb8QZI-yrcdK~9iikWMUv%lmW3?W&S#mcYfzeJ>08CbA34ATumAu6 diff --git a/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class b/bin/fi/oulu/tol/sqat/tests/GildedRoseTest.class index e44e81ce2b232358b6069c215dc740c0984c2b8c..1338642af4d65df2586e8f47190adde10c71af1f 100644 GIT binary patch literal 6256 zcmbW4TWlQF8OOilOLo29#9L!>CFzg`-)h)hI|dh+VTKGKwm0E+lQ(u@BsYJ+;;3eyBe_N zwP((p`F`L3{J-xUzy0MaZxB%*JrJWhM(50`X``f-(zcZecAN9GGjApv~0sv7;PS{cun~QgN#-Usk&R8P%Gicvg9s~K&o@rDE?skw=OkfcUh#i(Ue)s_9F#c9Qyl&3Wiw2m4xvNk1~ zD!=w_HrR8j#i*l_PLw1#JNW(5;eu={mzQKswU6b8i%MaqsVaH@MsGfwVYFeqq}%GE zGNoE70uJlCVav8^=!lmZHOyjqzJ!$1T)n{S7cxDmI^h1X?@0+|VUk)zYIXQfQ{{)44I~VYJ493PzH29;LCcn2j7ebKcC5 zO$K>V*(CK+AEN}G^OSVlkc(44qb=So$(WS_EhJT+F%{WTtVS4?e>ErQ2Lv@QgvMow zhb>Dn?IaD+MU0ZNb2V}V%ZE%v8t&W2Js9IpV1XI29HZu0S=GiA%aV(ZnJR>5)EU7W z*-XAa6Q@fU^-RtwQYb4~msE%=sg|TGONuEiqHrX84)^;retx~t9GHOv;{@uF6+r~j zN%m27Mv>%M8!;yoP0Q&Lx3@GWThd`JR>6;+j2fM%xS!FX>d{3>mX|XE69kMP_n4}e ztZcqF5O6J{_8Rlt{PVnmxhE%+bOrZh6Flh-#pz0zI4n~^@jQqoW;yaj3Xyf1L=E9(VbJmYdvmrcWplgy|)=M+@0jGuBDXEP|QV}X)qMn%pz$mmsjA~N)@ zWI$xYgz%Q-5C~gUkW`@60OCe`)K&E;qumh^`y52HH(#dyWrTjmSr;*WpCi%r-!y(` znU=?o7}i~xn;2zotk9dkAWnBNTI=5DjRd(!V}@QdZ~~0e zJs9&f@WWWk;^0swh~u$)Q_*-4=RQVlxX4 zkMGDh^We~cg8;)14ubexi@$M%#Ag$(c4Cx|rMgd1qWe`!9y~>BUZj?1aj%ZPgU>b2 z{8iL|SuJ=&EAA!TIdlfK;R+i7-dBe=6UK3bz;FKUJ8;Eg_jSKOEw9r0gRL7IQ;Ab_ z)=Tu=)AYU5)L#EGb=T2vY5hx-8EV}=*3(AkZ@S|&4V1%gbfA+6wFUuF)DEaFK=k4c zN0HnR9!fi{rX6%KAi5|)Kcrz`F(fI%yVJwlUdBr$QoYsrc5%KDA>TR(u>py1q7FKX zx@j~1UDy)h+wSpo1bp2gzCA)dfqeC~f_6hN}BK$VU*N*QFNYe@VxQNl@8;y=v zL%p%;>YWR`H1M*(<6wRG+#VV4vZ#1!^1?sNMkZE(G2X@Gb)04&YrJ8E;&O zcbjLvY}tI(Yhz-lb!x09A%xonxDmkZ0o-1|w~8)4)6h%vXT<8Zci6<{Q9#Gcx84Ld<(BcD{xBT9`ME z^{gy$*P3qu@^^rI3y{ADgl9vS^Br*h z8PfcqR){2~MwwxX|H*@{2IzEDT^ Fe+}bW7+C-S delta 275 zcmZXNOAY}+7=){5hM|r3`v!<)BrHWD;s#=2BN82t1<6cXJA+s`h83}J0H?9E5;aIH zY^wV2s{i}%jfW|3&&w4+6Xl)kmBa1DYN0y(); - items.add(new Item("+5 Dexterity Vest", 10, 20)); - items.add(new Item("Aged Brie", 2, 0)); - items.add(new Item("Elixir of the Mongoose", 5, 7)); - items.add(new Item("Sulfuras, Hand of Ragnaros", 0, 80)); - items.add(new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); - items.add(new Item("Conjured Mana Cake", 3, 6)); - - updateQuality(); -} + System.out.println("OMGHAI!"); + + items = new ArrayList(); + items.add(new Item("+5 Dexterity Vest", 10, 20)); + items.add(new Item("Aged Brie", 2, 0)); + items.add(new Item("Elixir of the Mongoose", 5, 7)); + items.add(new Item("Sulfuras, Hand of Ragnaros", 0, 80)); + items.add(new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20)); + items.add(new Item("Conjured Mana Cake", 3, 6)); + + updateQuality(); + } + + + + public static void updateQuality() + { + for(Item item:items) { + if (!compareName("Aged Brie", item) && !compareName("Backstage passes to a TAFKAL80ETC concert", item)) + { + if (hasMoreThanZeroQuality(item)) + { + decrement1QualityIfSultaras(item); + } + } + else + { + if (hasNotReachedMaximumQuality(item)) + { + increment1Quality(item); + + if (compareName("Backstage passes to a TAFKAL80ETC concert", item)) + { + if (hasLessThanElevenSellIn(item)) + { + if (hasNotReachedMaximumQuality(item)) + { + increment1Quality(item); + } + } + + if (hasLessThanSixSellIn(item)) + { + if (hasNotReachedMaximumQuality(item)) + { + increment1Quality(item); + } + } + } + } + } + + decrement1SellInIfSultaras(item); + + + if (hasLessThanZeroSellIn(item)) + { + if (!compareName("Aged Brie", item)) + { + if (!compareName("Backstage passes to a TAFKAL80ETC concert", item)) { + if (hasMoreThanZeroQuality(item)) + { + decrement1QualityIfSultaras(item); + + } + } + else + { + hasZeroQuality(item); + } + } + else + { + if (hasNotReachedMaximumQuality(item)) + increment1Quality(item); + } + } + } + } + + public static boolean compareName(String nameA,Item item){ + return nameA.equals(item.getName()); + } + public static void decrement1QualityIfSultaras(Item item){ + + if (!compareName("Sulfuras, Hand of Ragnaros", item)) + { + item.setQuality(item.getQuality() - 1); + + } + } + public static void decrement1SellInIfSultaras(Item item){ + + if (!compareName("Sulfuras, Hand of Ragnaros", item)) + { + item.setSellIn(item.getSellIn() - 1); + } + } + public static void increment1Quality(Item item){ + + item.setQuality(item.getQuality() + 1); + + } + public static boolean hasNotReachedMaximumQuality(Item item){ + return item.getQuality() < 50; + + } + public static void hasZeroQuality(Item item){ + item.setQuality(item.getQuality() - item.getQuality()); + + } + public static boolean hasMoreThanZeroQuality(Item item){ + return item.getQuality() > 0; + } + public static boolean hasLessThanZeroSellIn(Item item){ + return item.getSellIn() < 0; + } - - public static void updateQuality() - { - 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 boolean hasLessThanElevenSellIn(Item item){ + return item.getSellIn() < 11; + } + public static boolean hasLessThanSixSellIn(Item item){ + return item.getSellIn() < 6; + } + public void addItem(Item item){ + items = new ArrayList(); + items.add(item); + } + public static List getItems() { + return items; + } } diff --git a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java index 04a5d2d..3af2fbe 100644 --- a/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java +++ b/src/fi/oulu/tol/sqat/tests/GildedRoseTest.java @@ -1,12 +1,251 @@ package fi.oulu.tol.sqat.tests; - import static org.junit.Assert.*; 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 testTheTruth() { - assertTrue(true); + public void testupdateQuality_AgedBrie_Quality_2_10() { + // Arrange + store.addItem(new Item("Aged Brie", 2, 10) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.getItems().get(0).getQuality(); + String failMessage = "Quality of Aged Brie increases"; + assertEquals(failMessage, 11,quality); } -} + @Test + public void testupdateQuality_AgedBrie_Quality_10_50() { + // Arrange + store.addItem(new Item("Aged Brie", 10, 50) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.getItems().get(0).getQuality(); + String failMessage = "The Quality of an item is never more than 50"; + assertEquals(failMessage, 50, quality); + } + @Test + public void testupdateQuality_AgedBrie_Quality_0_10() { + // Arrange + store.addItem(new Item("Aged Brie", 0, 10) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.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 testupdateQuality_AgedBrie_Quality_0_50() { + // Arrange + store.addItem(new Item("Aged Brie", 0, 50) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.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 testupdateQuality_AgedBrie_Quality_Minus1_20() { + // Arrange + store.addItem(new Item("Aged Brie", -1, 20) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.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 testupdateQuality_AgedBrie_SellIn_2_10() { + // Arrange + store.addItem(new Item("Aged Brie", 2, 10) ); + // Act + GildedRose.updateQuality(); + // Assert + int sellIn = GildedRose.getItems().get(0).getSellIn(); + String failMessage = "SellIn date decreases"; + assertEquals(failMessage, 1, sellIn); + } + @Test + public void testupdateQuality_AgedBrie_SellIn_1_10() { + // Arrange + store.addItem(new Item("Aged Brie", 1, 10) ); + // Act + GildedRose.updateQuality(); + // Assert + int sellIn = GildedRose.getItems().get(0).getSellIn(); + String failMessage = "SellIn date decreases"; + assertEquals(failMessage, 0, sellIn); + } + @Test + public void testupdateQuality_AgedBrie_SellIn_0_10() { + // Arrange + store.addItem(new Item("Aged Brie", 0, 10) ); + // Act + GildedRose.updateQuality(); + // Assert + int sellIn = GildedRose.getItems().get(0).getSellIn(); + String failMessage = "SellIn date decreases"; + assertEquals(failMessage, -1, sellIn); + } + // Test Sulfuras + @Test + public void testupdateQuality_Sulfuras_Quality_0_80() { + // Arrange + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 0, 80) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.getItems().get(0).getQuality(); + String failMessage = "Quality of Sulfuras is 80 and never alters"; + assertEquals(failMessage, 80, quality); + } + @Test + public void testupdateQuality_Sulfuras_SellIn_5_80() { + // Arrange + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 5, 80) ); + // Act + GildedRose.updateQuality(); + // Assert + int sellIn = GildedRose.getItems().get(0).getSellIn(); + String failMessage = "Sulfuras, being a legendary item, never has to be sold"; + assertEquals(failMessage, 5, sellIn); + } + @Test + public void testupdateQuality_Sulfuras_SellIn_0_80() { + // Arrange + store.addItem(new Item("Sulfuras, Hand of Ragnaros", 0, 80) ); + // Act + GildedRose.updateQuality(); + // Assert + int sellIn = GildedRose.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 testupdateQuality_Backstage_Quality_15_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", + 15, 20) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.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 testupdateQuality_Backstage_Quality_10_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", + 10, 20) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.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 testupdateQuality_Backstage_Quality_8_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", + 8, 20) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.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 testupdateQuality_Backstage_Quality_5_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", + 5, 20) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.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 testupdateQuality_Backstage_Quality_3_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", + 3, 20) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.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 testupdateQuality_Backstage_Quality_0_20() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", + 0, 20) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.getItems().get(0).getQuality(); + String failMessage = "Quality of Backstage drops to 0 after the concert"; + assertEquals(failMessage, 0, quality); + } + @Test + public void testupdateQuality_Backstage_Quality_15_50() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", + 15, 50) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.getItems().get(0).getQuality(); + String failMessage = "The Quality of an item is never more than 50"; + assertEquals(failMessage, 50, quality); + } + @Test + public void testupdateQuality_Backstage_SellIn_5_10() { + // Arrange + store.addItem(new Item("Backstage passes to a TAFKAL80ETC concert", + 5, 10) ); + // Act + GildedRose.updateQuality(); + // Assert + int sellIn = GildedRose.getItems().get(0).getSellIn(); + String failMessage = "The SellIn value should decrease by 1"; + assertEquals(failMessage, 4, sellIn); + } + // Test Elixir + @Test + public void testupdateQuality_Elixir_Quality_2_7() { + // Arrange + store.addItem(new Item("Elixir of the Mongoose", 2, 7) ); + // Act + GildedRose.updateQuality(); + // Assert + int quality = GildedRose.getItems().get(0).getQuality(); + String failMessage = "Quality decreases by 1"; + assertEquals(failMessage, 6,quality); + } + @Test + public void testupdateQuality_SellIn_Quality_2_7() { + // Arrange + store.addItem(new Item("Elixir of the Mongoose", 2, 7) ); + // Act + GildedRose.updateQuality(); + // Assert + int sellIn = GildedRose.getItems().get(0).getSellIn(); + String failMessage = "SelIn decreases by 1"; + assertEquals(failMessage, 1, sellIn); + } +} \ No newline at end of file