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++) {
// 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;
}
// first we define what should increase and what should decrease
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert") |
items[i].name.equals("Aged Brie")) {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
if (items[i].getName().equals("Backstage passes to a TAFKAL80ETC concert") |
items[i].getName().equals("Aged Brie")) {
if (items[i].getQuality() < 50) {
items[i].setQuality(items[i].getQuality() + 1);
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (items[i].sellIn < 11 && items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
if (items[i].getName().equals("Backstage passes to a TAFKAL80ETC concert")) {
if (items[i].getSellIn() < 11 && items[i].getQuality() < 50) {
items[i].setQuality(items[i].getQuality() + 1);
}
if (items[i].sellIn < 6 && items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
if (items[i].getSellIn() < 6 && items[i].getQuality() < 50) {
items[i].setQuality(items[i].getQuality() + 1);
}
}
}
@ -34,29 +34,29 @@ class GildedRose {
updateNormalAndConjuredItems(items[i]);
}
if (items[i].sellIn <= 0) {
if (items[i].getSellIn() <= 0) {
if (items[i].name.equals("Aged Brie") && items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
if (items[i].getName().equals("Aged Brie") && items[i].getQuality() < 50) {
items[i].setQuality(items[i].getQuality() + 1);
}
if (items[i].name.equals("+5 Dexterity Vest") || items[i].name.equals("Elixir of the Mongoose") ||
items[i].name.equals("Conjured Mana Cake")) {
if (items[i].getName().equals("+5 Dexterity Vest") || items[i].getName().equals("Elixir of the Mongoose") ||
items[i].getName().equals("Conjured Mana Cake")) {
updateNormalAndConjuredItems(items[i]);
}
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
items[i].quality = items[i].quality - items[i].quality;
if (items[i].getName().equals("Backstage passes to a TAFKAL80ETC concert")) {
items[i].setQuality(0);
}
}
items[i].sellIn = items[i].sellIn - 1;
items[i].setSellIn(items[i].getSellIn() - 1);
}
}
private void updateNormalAndConjuredItems(Item item) {
if (item.quality > 0) {
item.quality = item.quality - 1;
if (item.name.equals("Conjured Mana Cake") && item.quality > 0) {
item.quality = item.quality - 1;
if (item.getQuality() > 0) {
item.setQuality(item.getQuality() - 1);
if (item.getName().equals("Conjured Mana Cake") && item.getQuality() > 0) {
item.setQuality(item.getQuality() - 1);
}
}
}

View File

@ -2,11 +2,11 @@ package com.gildedrose;
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) {
this.name = name;
@ -14,8 +14,30 @@ public class Item {
this.quality = quality;
}
@Override
public String toString() {
public String getName() {
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;
}
}

View File

@ -14,11 +14,9 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals("Elixir of the Mongoose", app.items[0].name);
System.out.println("Quality: " + app.items[0].sellIn);
assertEquals(4, app.items[0].sellIn);
assertEquals(4, app.items[0].getSellIn());
app.updateQuality();
assertEquals(3, app.items[0].sellIn);
assertEquals(3, app.items[0].getSellIn());
}
@Test
@ -26,11 +24,9 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals("Elixir of the Mongoose", app.items[0].name);
System.out.println("Quality: " + app.items[0].quality);
assertEquals(6, app.items[0].quality);
assertEquals(6, app.items[0].getQuality());
app.updateQuality();
assertEquals(5, app.items[0].quality);
assertEquals(5, app.items[0].getQuality());
}
@Test
@ -39,8 +35,8 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("+5 Dexterity Vest", 0, 20)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(18, app.items[0].quality);
assertEquals("+5 Dexterity Vest", app.items[0].name);
assertEquals(18, app.items[0].getQuality());
assertEquals("+5 Dexterity Vest", app.items[0].getName());
}
@Test
@ -49,8 +45,8 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("+5 Dexterity Vest", -1, 18)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(16, app.items[0].quality);
assertEquals("+5 Dexterity Vest", app.items[0].name);
assertEquals(16, app.items[0].getQuality());
assertEquals("+5 Dexterity Vest", app.items[0].getName());
}
@Test
@ -63,9 +59,8 @@ class UpdateQualityTest {
GildedRose app = new GildedRose(items);
app.updateQuality();
app.updateQuality();
System.out.println(app.items[0].quality);
assertEquals(0, app.items[0].quality);
assertEquals(0, app.items[1].quality);
assertEquals(0, app.items[0].getQuality());
assertEquals(0, app.items[1].getQuality());
}
@Test
@ -74,8 +69,8 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("+5 Dexterity Vest", 1, 30)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(29, app.items[0].quality);
assertEquals(0, app.items[0].sellIn);
assertEquals(29, app.items[0].getQuality());
assertEquals(0, app.items[0].getSellIn());
}
@Test
@ -84,8 +79,8 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Aged Brie", 1, 30)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(31, app.items[0].quality); //new Item("Aged Brie", 2, 0),
assertEquals(0, app.items[0].sellIn);
assertEquals(31, app.items[0].getQuality());
assertEquals(0, app.items[0].getSellIn());
}
@Test
void sellInValueCanBeNegativeStartAtZero() {
@ -96,8 +91,8 @@ class UpdateQualityTest {
for (int i = 0; i < timeFrame; i++) {
app.updateQuality();
}
assertEquals(10, app.items[0].quality);
assertEquals(-timeFrame, app.items[0].sellIn);
assertEquals(10, app.items[0].getQuality());
assertEquals(-timeFrame, app.items[0].getSellIn());
}
@Test
@ -109,8 +104,8 @@ class UpdateQualityTest {
for (int i = 0; i < timeFrame; i++) {
app.updateQuality();
}
assertEquals(10, app.items[0].quality);
assertEquals(-5 -timeFrame, app.items[0].sellIn);
assertEquals(10, app.items[0].getQuality());
assertEquals(-5 -timeFrame, app.items[0].getSellIn());
}
@Test
@ -121,7 +116,7 @@ class UpdateQualityTest {
for (int i = 0; i < 10; i++) {
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);
app.updateQuality();
app.updateQuality();
assertEquals("Aged Brie", app.items[0].name);
System.out.println("Quality: " + app.items[0].quality);
assertEquals(2, app.items[0].quality);
assertEquals(2, app.items[0].getQuality());
app.updateQuality();
assertEquals(3, app.items[0].quality);
assertEquals(3, app.items[0].getQuality());
}
@Test
@ -145,7 +138,7 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Aged Brie", -1, 20)};
GildedRose app = new GildedRose(items);
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)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(50, app.items[0].quality);
assertEquals(50, app.items[0].getQuality());
app.updateQuality();
assertEquals(50, app.items[0].quality);
assertEquals(50, app.items[0].getQuality());
}
@Test
@ -166,9 +159,9 @@ class UpdateQualityTest {
Item[] items = new Item[]{new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(50, app.items[0].quality);
assertEquals(50, app.items[0].getQuality());
app.updateQuality();
assertEquals(50, app.items[0].quality);
assertEquals(50, app.items[0].getQuality());
}
@Test
@ -176,11 +169,11 @@ class UpdateQualityTest {
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)};
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++) {
app.updateQuality();
}
assertEquals(55, app.items[0].quality);
assertEquals(55, app.items[0].getQuality());
}
@Test
@ -193,9 +186,9 @@ class UpdateQualityTest {
};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(2, app.items[0].quality);
assertEquals(2, app.items[1].quality);
assertEquals(50, app.items[2].quality);
assertEquals(2, app.items[0].getQuality());
assertEquals(2, app.items[1].getQuality());
assertEquals(50, app.items[2].getQuality());
}
@ -209,9 +202,9 @@ class UpdateQualityTest {
};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(6, app.items[0].quality);
assertEquals(6, app.items[1].quality);
assertEquals(50, app.items[2].quality);
assertEquals(6, app.items[0].getQuality());
assertEquals(6, app.items[1].getQuality());
assertEquals(50, app.items[2].getQuality());
}
@ -225,9 +218,9 @@ class UpdateQualityTest {
};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(0, app.items[0].quality);
assertEquals(0, app.items[1].quality);
assertEquals(0, app.items[2].quality);
assertEquals(0, app.items[0].getQuality());
assertEquals(0, app.items[1].getQuality());
assertEquals(0, app.items[2].getQuality());
}
@ -239,7 +232,7 @@ class UpdateQualityTest {
};
GildedRose app = new GildedRose(items);
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)};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(4, app.items[0].quality);
assertEquals(4, app.items[0].getQuality());
}
@Test
@ -265,7 +258,7 @@ class UpdateQualityTest {
};
GildedRose app = new GildedRose(items);
app.updateQuality();
assertEquals(6, app.items[0].quality);
assertEquals(6, app.items[0].getQuality());
}
@Test
@ -276,7 +269,7 @@ class UpdateQualityTest {
};
GildedRose app = new GildedRose(items);
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;
class ItemTest{
class ItemTest {
@Test
void toImplement() {
//todo testing the class
assertEquals(true,true);
void contructorWithThreeArguments() {
Item[] items = new Item[]{new Item("Elixir of the Mongoose", 5, 7)};
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());
}
}