Added Java-Cucumber

This commit is contained in:
Dipanjan Bhowmik committed 2021-10-10 11:02:16 +05:30
1 parent c260410064
commit 6891e5f993
14 files changed
+506

No files matched your search

@@ -0,0 +1,62 @@
package com.gildedrose;
class GildedRose {
Item[] items;
public GildedRose(Item[] items) {
this.items = items;
}
public void updateQuality() {
for (int i = 0; i < items.length; i++) {
if (!items[i].name.equals("Aged Brie")
&& !items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (items[i].quality > 0) {
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
items[i].quality = items[i].quality - 1;
}
}
} else {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
if (items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (items[i].sellIn < 11) {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
}
}
if (items[i].sellIn < 6) {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
}
}
}
}
}
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
items[i].sellIn = items[i].sellIn - 1;
}
if (items[i].sellIn < 0) {
if (!items[i].name.equals("Aged Brie")) {
if (!items[i].name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (items[i].quality > 0) {
if (!items[i].name.equals("Sulfuras, Hand of Ragnaros")) {
items[i].quality = items[i].quality - 1;
}
}
} else {
items[i].quality = items[i].quality - items[i].quality;
}
} else {
if (items[i].quality < 50) {
items[i].quality = items[i].quality + 1;
}
}
}
}
}
}
@@ -0,0 +1,21 @@
package com.gildedrose;
public class Item {
public String name;
public int sellIn;
public int quality;
public Item(String name, int sellIn, int quality) {
this.name = name;
this.sellIn = sellIn;
this.quality = quality;
}
@Override
public String toString() {
return this.name + ", " + this.sellIn + ", " + this.quality;
}
}
@@ -0,0 +1,37 @@
package com.gildedrose;
public class TexttestFixture {
public static void main(String[] args) {
System.out.println("OMGHAI!");
Item[] items = new Item[] {
new Item("+5 Dexterity Vest", 10, 20), //
new Item("Aged Brie", 2, 0), //
new Item("Elixir of the Mongoose", 5, 7), //
new Item("Sulfuras, Hand of Ragnaros", 0, 80), //
new Item("Sulfuras, Hand of Ragnaros", -1, 80),
new Item("Backstage passes to a TAFKAL80ETC concert", 15, 20),
new Item("Backstage passes to a TAFKAL80ETC concert", 10, 49),
new Item("Backstage passes to a TAFKAL80ETC concert", 5, 49),
// this conjured item does not work properly yet
new Item("Conjured Mana Cake", 3, 6) };
GildedRose app = new GildedRose(items);
int days = 2;
if (args.length > 0) {
days = Integer.parseInt(args[0]) + 1;
}
for (int i = 0; i < days; i++) {
System.out.println("-------- day " + i + " --------");
System.out.println("name, sellIn, quality");
for (Item item : items) {
System.out.println(item);
}
System.out.println();
app.updateQuality();
}
}
}
@@ -0,0 +1,2 @@
cucumber.publish.quiet=true
@@ -0,0 +1,33 @@
package com.gildedrose;
import static org.junit.Assert.*;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
public class StepDefinitions {
private String savedName;
private Item[] items = new Item[1];
private GildedRose app;
@Given("for {string} initial sellin is {int} and quality is {int}")
public void initial_sellin_is_and_quality_is(String name, int sellin, int quality) {
savedName = name;
items[0] = new Item(name, sellin, quality);
app = new GildedRose(items);
}
@When("I update the quality")
public void i_update_the_quality() {
app.updateQuality();
}
@Then("I should get sellin as {int} and quality as {int}")
public void i_should_get_sellin_as_and_quality_as(int sellin, int quality) {
assertEquals(savedName, app.items[0].name);
assertEquals(sellin, app.items[0].sellIn);
assertEquals(quality, app.items[0].quality);
}
}
@@ -0,0 +1,7 @@
Feature: Gilded Rose quality
I want to know if the quality is updated properly
Scenario: Sellin and Quality decreasing
Given for "+5 Dexterity Vest" initial sellin is 20 and quality is 30
When I update the quality
Then I should get sellin as 19 and quality as -1
@@ -0,0 +1 @@
cucumber.publish.quiet=true