Merge pull request #6 from pcroch/feat/implementing_java_bean_convention_on_Item_class

Feat/implementing java bean convention on item class
This commit is contained in:
Pierre 2023-02-19 16:20:39 +01:00 committed by GitHub
commit bc25fddb88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 133 additions and 79 deletions

View File

@ -11,22 +11,22 @@ class GildedRose {
for (int i = 0; i < items.length; i++) { for (int i = 0; i < items.length; i++) {
// to avoid to have to check it later on // to avoid to have to check it later on
if (items[i].name.equals("Sulfuras, Hand of Ragnaros")) { if (items[i].getName().equals("Sulfuras, Hand of Ragnaros")) {
continue; continue;
} }
// first we define what should increase and what should decrease // first we define what should increase and what should decrease
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert") | if (items[i].getName().equals("Backstage passes to a TAFKAL80ETC concert") |
items[i].name.equals("Aged Brie")) { items[i].getName().equals("Aged Brie")) {
if (items[i].quality < 50) { if (items[i].getQuality() < 50) {
items[i].quality = items[i].quality + 1; items[i].setQuality(items[i].getQuality() + 1);
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { if (items[i].getName().equals("Backstage passes to a TAFKAL80ETC concert")) {
if (items[i].sellIn < 11 && items[i].quality < 50) { if (items[i].getSellIn() < 11 && items[i].getQuality() < 50) {
items[i].quality = items[i].quality + 1; items[i].setQuality(items[i].getQuality() + 1);
} }
if (items[i].sellIn < 6 && items[i].quality < 50) { if (items[i].getSellIn() < 6 && items[i].getQuality() < 50) {
items[i].quality = items[i].quality + 1; items[i].setQuality(items[i].getQuality() + 1);
} }
} }
} }
@ -34,29 +34,29 @@ class GildedRose {
updateNormalAndConjuredItems(items[i]); updateNormalAndConjuredItems(items[i]);
} }
if (items[i].sellIn <= 0) { if (items[i].getSellIn() <= 0) {
if (items[i].name.equals("Aged Brie") && items[i].quality < 50) { if (items[i].getName().equals("Aged Brie") && items[i].getQuality() < 50) {
items[i].quality = items[i].quality + 1; items[i].setQuality(items[i].getQuality() + 1);
} }
if (items[i].name.equals("+5 Dexterity Vest") || items[i].name.equals("Elixir of the Mongoose") || if (items[i].getName().equals("+5 Dexterity Vest") || items[i].getName().equals("Elixir of the Mongoose") ||
items[i].name.equals("Conjured Mana Cake")) { items[i].getName().equals("Conjured Mana Cake")) {
updateNormalAndConjuredItems(items[i]); updateNormalAndConjuredItems(items[i]);
} }
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) { if (items[i].getName().equals("Backstage passes to a TAFKAL80ETC concert")) {
items[i].quality = items[i].quality - items[i].quality; items[i].setQuality(0);
} }
} }
items[i].sellIn = items[i].sellIn - 1; items[i].setSellIn(items[i].getSellIn() - 1);
} }
} }
private void updateNormalAndConjuredItems(Item item) { private void updateNormalAndConjuredItems(Item item) {
if (item.quality > 0) { if (item.getQuality() > 0) {
item.quality = item.quality - 1; item.setQuality(item.getQuality() - 1);
if (item.name.equals("Conjured Mana Cake") && item.quality > 0) { if (item.getName().equals("Conjured Mana Cake") && item.getQuality() > 0) {
item.quality = item.quality - 1; item.setQuality(item.getQuality() - 1);
} }
} }
} }

View File

@ -2,11 +2,11 @@ package com.gildedrose;
public class Item { public class Item {
public String name; private String name;
public int sellIn; private int sellIn;
public int quality; private int quality;
public Item(String name, int sellIn, int quality) { public Item(String name, int sellIn, int quality) {
this.name = name; this.name = name;
@ -14,8 +14,30 @@ public class Item {
this.quality = quality; this.quality = quality;
} }
@Override public String getName() {
public String toString() { return this.name;
}
// No setter for Name because it is not necessary yet
public int getSellIn() {
return this.sellIn;
}
public void setSellIn(int sellIn) {
this.sellIn = sellIn;
}
public int getQuality() {
return this.quality;
}
public void setQuality(int quality) {
this.quality = quality;
}
@Override
public String toString() {
return this.name + ", " + this.sellIn + ", " + this.quality; return this.name + ", " + this.sellIn + ", " + this.quality;
} }
} }

View File

@ -14,11 +14,9 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)}; Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals("Elixir of the Mongoose", app.items[0].name); assertEquals(4, app.items[0].getSellIn());
System.out.println("Quality: " + app.items[0].sellIn);
assertEquals(4, app.items[0].sellIn);
app.updateQuality(); app.updateQuality();
assertEquals(3, app.items[0].sellIn); assertEquals(3, app.items[0].getSellIn());
} }
@Test @Test
@ -26,11 +24,9 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)}; Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals("Elixir of the Mongoose", app.items[0].name); assertEquals(6, app.items[0].getQuality());
System.out.println("Quality: " + app.items[0].quality);
assertEquals(6, app.items[0].quality);
app.updateQuality(); app.updateQuality();
assertEquals(5, app.items[0].quality); assertEquals(5, app.items[0].getQuality());
} }
@Test @Test
@ -39,8 +35,8 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("+5 Dexterity Vest", 0, 20)}; Item[] items = new Item[]{new Item("+5 Dexterity Vest", 0, 20)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(18, app.items[0].quality); assertEquals(18, app.items[0].getQuality());
assertEquals("+5 Dexterity Vest", app.items[0].name); assertEquals("+5 Dexterity Vest", app.items[0].getName());
} }
@Test @Test
@ -49,8 +45,8 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("+5 Dexterity Vest", -1, 18)}; Item[] items = new Item[]{new Item("+5 Dexterity Vest", -1, 18)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(16, app.items[0].quality); assertEquals(16, app.items[0].getQuality());
assertEquals("+5 Dexterity Vest", app.items[0].name); assertEquals("+5 Dexterity Vest", app.items[0].getName());
} }
@Test @Test
@ -63,9 +59,8 @@ class UpdateQualityTest {
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
app.updateQuality(); app.updateQuality();
System.out.println(app.items[0].quality); assertEquals(0, app.items[0].getQuality());
assertEquals(0, app.items[0].quality); assertEquals(0, app.items[1].getQuality());
assertEquals(0, app.items[1].quality);
} }
@Test @Test
@ -74,8 +69,8 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("+5 Dexterity Vest", 1, 30)}; Item[] items = new Item[]{new Item("+5 Dexterity Vest", 1, 30)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(29, app.items[0].quality); assertEquals(29, app.items[0].getQuality());
assertEquals(0, app.items[0].sellIn); assertEquals(0, app.items[0].getSellIn());
} }
@Test @Test
@ -84,8 +79,8 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Aged Brie", 1, 30)}; Item[] items = new Item[]{new Item("Aged Brie", 1, 30)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(31, app.items[0].quality); //new Item("Aged Brie", 2, 0), assertEquals(31, app.items[0].getQuality());
assertEquals(0, app.items[0].sellIn); assertEquals(0, app.items[0].getSellIn());
} }
@Test @Test
void sellInValueCanBeNegativeStartAtZero() { void sellInValueCanBeNegativeStartAtZero() {
@ -96,8 +91,8 @@ class UpdateQualityTest {
for (int i = 0; i < timeFrame; i++) { for (int i = 0; i < timeFrame; i++) {
app.updateQuality(); app.updateQuality();
} }
assertEquals(10, app.items[0].quality); assertEquals(10, app.items[0].getQuality());
assertEquals(-timeFrame, app.items[0].sellIn); assertEquals(-timeFrame, app.items[0].getSellIn());
} }
@Test @Test
@ -109,8 +104,8 @@ class UpdateQualityTest {
for (int i = 0; i < timeFrame; i++) { for (int i = 0; i < timeFrame; i++) {
app.updateQuality(); app.updateQuality();
} }
assertEquals(10, app.items[0].quality); assertEquals(10, app.items[0].getQuality());
assertEquals(-5 -timeFrame, app.items[0].sellIn); assertEquals(-5 -timeFrame, app.items[0].getSellIn());
} }
@Test @Test
@ -121,7 +116,7 @@ class UpdateQualityTest {
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
app.updateQuality(); app.updateQuality();
} }
assertEquals(-1, app.items[0].sellIn); assertEquals(-1, app.items[0].getSellIn());
} }
@ -132,11 +127,9 @@ class UpdateQualityTest {
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
app.updateQuality(); app.updateQuality();
assertEquals("Aged Brie", app.items[0].name); assertEquals(2, app.items[0].getQuality());
System.out.println("Quality: " + app.items[0].quality);
assertEquals(2, app.items[0].quality);
app.updateQuality(); app.updateQuality();
assertEquals(3, app.items[0].quality); assertEquals(3, app.items[0].getQuality());
} }
@Test @Test
@ -145,7 +138,7 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Aged Brie", -1, 20)}; Item[] items = new Item[]{new Item("Aged Brie", -1, 20)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(22, app.items[0].quality); assertEquals(22, app.items[0].getQuality());
} }
@ -155,9 +148,9 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Aged Brie", 10, 49)}; Item[] items = new Item[]{new Item("Aged Brie", 10, 49)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(50, app.items[0].quality); assertEquals(50, app.items[0].getQuality());
app.updateQuality(); app.updateQuality();
assertEquals(50, app.items[0].quality); assertEquals(50, app.items[0].getQuality());
} }
@Test @Test
@ -166,9 +159,9 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49)}; Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(50, app.items[0].quality); assertEquals(50, app.items[0].getQuality());
app.updateQuality(); app.updateQuality();
assertEquals(50, app.items[0].quality); assertEquals(50, app.items[0].getQuality());
} }
@Test @Test
@ -176,11 +169,11 @@ class UpdateQualityTest {
System.out.println("\"Sulfuras\", being a legendary item, never decreases in Quality and stays the same"); System.out.println("\"Sulfuras\", being a legendary item, never decreases in Quality and stays the same");
Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 5, 55)}; Item[] items = new Item[]{new Item("Sulfuras, Hand of Ragnaros", 5, 55)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name); assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].getName());
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
app.updateQuality(); app.updateQuality();
} }
assertEquals(55, app.items[0].quality); assertEquals(55, app.items[0].getQuality());
} }
@Test @Test
@ -193,9 +186,9 @@ class UpdateQualityTest {
}; };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(2, app.items[0].quality); assertEquals(2, app.items[0].getQuality());
assertEquals(2, app.items[1].quality); assertEquals(2, app.items[1].getQuality());
assertEquals(50, app.items[2].quality); assertEquals(50, app.items[2].getQuality());
} }
@ -209,9 +202,9 @@ class UpdateQualityTest {
}; };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(6, app.items[0].quality); assertEquals(6, app.items[0].getQuality());
assertEquals(6, app.items[1].quality); assertEquals(6, app.items[1].getQuality());
assertEquals(50, app.items[2].quality); assertEquals(50, app.items[2].getQuality());
} }
@ -225,9 +218,9 @@ class UpdateQualityTest {
}; };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(0, app.items[0].quality); assertEquals(0, app.items[0].getQuality());
assertEquals(0, app.items[1].quality); assertEquals(0, app.items[1].getQuality());
assertEquals(0, app.items[2].quality); assertEquals(0, app.items[2].getQuality());
} }
@ -239,7 +232,7 @@ class UpdateQualityTest {
}; };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(0, app.items[0].quality); assertEquals(0, app.items[0].getQuality());
} }
/** /**
@ -254,7 +247,7 @@ class UpdateQualityTest {
new Item("Conjured Mana Cake", 3, 6)}; new Item("Conjured Mana Cake", 3, 6)};
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(4, app.items[0].quality); assertEquals(4, app.items[0].getQuality());
} }
@Test @Test
@ -265,7 +258,7 @@ class UpdateQualityTest {
}; };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(6, app.items[0].quality); assertEquals(6, app.items[0].getQuality());
} }
@Test @Test
@ -276,7 +269,7 @@ class UpdateQualityTest {
}; };
GildedRose app = new GildedRose(items); GildedRose app = new GildedRose(items);
app.updateQuality(); app.updateQuality();
assertEquals(4, app.items[0].quality); assertEquals(4, app.items[0].getQuality());
} }
} }

View File

@ -4,12 +4,51 @@ import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
class ItemTest{ class ItemTest {
@Test @Test
void toImplement() { void contructorWithThreeArguments() {
//todo testing the class Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)};
assertEquals(true,true); assertEquals("Elixir of the Mongoose", items[0].getName());
assertEquals(7, items[0].getQuality());
assertEquals(5, items[0].getSellIn());
} }
@Test
void getterName() {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 0, 0)};
assertEquals("Elixir of the Mongoose", items[0].getName());
} }
@Test
void getterSellin() {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 7, 0)};
assertEquals(7, items[0].getSellIn());
assertEquals(0, items[0].getQuality());
}
@Test
void setterSellin() {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 7, 0)};
items[0].setSellIn(1);
assertEquals(1, items[0].getSellIn());
assertEquals(0, items[0].getQuality());
}
@Test
void getterQuality() {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 0, 5)};
assertEquals(5, items[0].getQuality());
assertEquals(0, items[0].getSellIn());
}
@Test
void setterQuality() {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 0, 5)};
items[0].setQuality(1);
assertEquals(1, items[0].getQuality());
assertEquals(0, items[0].getSellIn());
}
}