mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-11 04:31:21 +00:00
refactored + tests
This commit is contained in:
parent
58a991fe27
commit
7769b15a88
@ -12,14 +12,14 @@ repositories {
|
|||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain {
|
toolchain {
|
||||||
languageVersion = JavaLanguageVersion.of(8)
|
languageVersion = JavaLanguageVersion.of(21)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(kotlin("stdlib"))
|
implementation(kotlin("stdlib"))
|
||||||
testImplementation(kotlin("test"))
|
testImplementation(kotlin("test"))
|
||||||
testImplementation("org.junit.jupiter:junit-jupiter:5.12.2")
|
testImplementation("org.junit.jupiter:junit-jupiter:3.8.0")
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.test {
|
tasks.test {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
8
Kotlin/local.properties
Normal file
8
Kotlin/local.properties
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
## This file must *NOT* be checked into Version Control Systems,
|
||||||
|
# as it contains information specific to your local configuration.
|
||||||
|
#
|
||||||
|
# Location of the SDK. This is only used by Gradle.
|
||||||
|
# For customization when using a Version Control System, please read the
|
||||||
|
# header note.
|
||||||
|
#Thu Jul 03 13:43:21 BST 2025
|
||||||
|
sdk.dir=/Users/clabol/Library/Android/sdk
|
||||||
@ -2,6 +2,61 @@ package com.gildedrose
|
|||||||
|
|
||||||
class GildedRose(val items: List<Item>) {
|
class GildedRose(val items: List<Item>) {
|
||||||
|
|
||||||
|
fun updateQualityClara() {
|
||||||
|
for (i in items.indices) {
|
||||||
|
items[i].sellIn -= 1
|
||||||
|
|
||||||
|
if (items[i].name == "Sulfuras, Hand of Ragnaros") { //might not be necessary
|
||||||
|
items[i].quality = items[i].quality
|
||||||
|
}
|
||||||
|
|
||||||
|
if (items[i].name == "Aged Brie") {
|
||||||
|
items[i].quality += 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if (items[i].name == "Backstage passes to a TAFKAL80ETC concert" && items[i].sellIn < 0) {
|
||||||
|
if (items[i].sellIn < 0) {
|
||||||
|
items[i].quality = 0
|
||||||
|
} else if (items[i].sellIn in 6..10) {
|
||||||
|
items[i].quality += 2
|
||||||
|
} else if (items[i].sellIn in 0..5) {
|
||||||
|
items[i].quality += 3
|
||||||
|
} else {
|
||||||
|
items[i].quality += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (items[i].name == "+5 Dexterity Vest" || items[i].name == "Elixir og the Mongoose") {
|
||||||
|
|
||||||
|
if (items[i].sellIn < 0) {
|
||||||
|
items[i].quality -= 2
|
||||||
|
} else {
|
||||||
|
items[i].quality -= 1
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (items[i].name == "Conjured Mana Cake" || items[i].name == "Elixir og the Mongoose") {
|
||||||
|
|
||||||
|
if (items[i].sellIn < 0) {
|
||||||
|
items[i].quality -= 4
|
||||||
|
} else {
|
||||||
|
items[i].quality -= 2
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (items[i].quality >= 50 && items[i].name != "Sulfuras, Hand of Ragnaros") {
|
||||||
|
items[i].quality = 50
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fun updateQuality() {
|
fun updateQuality() {
|
||||||
for (i in items.indices) {
|
for (i in items.indices) {
|
||||||
if (items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert") {
|
if (items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert") {
|
||||||
@ -55,4 +110,3 @@ class GildedRose(val items: List<Item>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,6 @@ fun main(args: Array<String>) {
|
|||||||
println(item)
|
println(item)
|
||||||
}
|
}
|
||||||
println()
|
println()
|
||||||
app.updateQuality()
|
app.updateQualityClara()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,14 +6,140 @@ import org.junit.jupiter.api.Test
|
|||||||
internal class GildedRoseTest {
|
internal class GildedRoseTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun foo() {
|
fun dexterityVest() {
|
||||||
val items = listOf(Item("foo", 0, 0))
|
val items = listOf(Item("+5 Dexterity Vest", 10, 20))
|
||||||
val app = GildedRose(items)
|
val app = GildedRose(items)
|
||||||
app.updateQuality()
|
app.updateQuality()
|
||||||
assertEquals("fixme", app.items[0].name)
|
assertEquals("+5 Dexterity Vest", app.items[0].name)
|
||||||
|
assertEquals(9, app.items[0].sellIn)
|
||||||
|
assertEquals(19, app.items[0].quality)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun agedBrie() {
|
||||||
|
val items = listOf(Item("Aged Brie", 2, 0))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Aged Brie", app.items[0].name)
|
||||||
|
assertEquals(1, app.items[0].sellIn)
|
||||||
|
assertEquals(1, app.items[0].quality)
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
fun elixirOfTheMongoose() {
|
||||||
|
val items = listOf(Item("Elixir of the Mongoose", 5, 7))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Elixir of the Mongoose", app.items[0].name)
|
||||||
|
assertEquals(4, app.items[0].sellIn)
|
||||||
|
assertEquals(6, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun elixirOfTheMongooseAt0() {
|
||||||
|
val items = listOf(Item("Elixir of the Mongoose", 0, 7))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Elixir of the Mongoose", app.items[0].name)
|
||||||
|
assertEquals(-1, app.items[0].sellIn)
|
||||||
|
assertEquals(5, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun sulfuras0() {
|
||||||
|
val items = listOf(Item("Sulfuras, Hand of Ragnaros", 0, 80))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name)
|
||||||
|
assertEquals(0, app.items[0].sellIn)
|
||||||
|
assertEquals(80, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun sulfurasMinus1() {
|
||||||
|
val items = listOf(Item("Sulfuras, Hand of Ragnaros", -1, 80))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Sulfuras, Hand of Ragnaros", app.items[0].name)
|
||||||
|
assertEquals(-1, app.items[0].sellIn)
|
||||||
|
assertEquals(80, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun backstagePassesMoreThan10() {
|
||||||
|
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 15, 20))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
|
||||||
|
assertEquals(14, app.items[0].sellIn)
|
||||||
|
assertEquals(21, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun backstagePassesReached50at10() {
|
||||||
|
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 10, 49))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
|
||||||
|
assertEquals(9, app.items[0].sellIn)
|
||||||
|
assertEquals(50, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun backstagePassesReached50at5() {
|
||||||
|
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 5, 49))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
|
||||||
|
assertEquals(4, app.items[0].sellIn)
|
||||||
|
assertEquals(50, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun backstagePassesAt10() {
|
||||||
|
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 10, 30))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
|
||||||
|
assertEquals(9, app.items[0].sellIn)
|
||||||
|
assertEquals(32, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun backstagePassesAt5() {
|
||||||
|
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 5, 30))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
|
||||||
|
assertEquals(4, app.items[0].sellIn)
|
||||||
|
assertEquals(33, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun backstagePassesAt0() {
|
||||||
|
val items = listOf(Item("Backstage passes to a TAFKAL80ETC concert", 0, 30))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Backstage passes to a TAFKAL80ETC concert", app.items[0].name)
|
||||||
|
assertEquals(-1, app.items[0].sellIn)
|
||||||
|
assertEquals(0, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
@Test
|
||||||
|
fun conjuredBasic() {
|
||||||
|
val items = listOf(Item("Conjured Mana Cake", 3, 6))
|
||||||
|
val app = GildedRose(items)
|
||||||
|
app.updateQuality()
|
||||||
|
assertEquals("Conjured Mana Cake", app.items[0].name)
|
||||||
|
assertEquals(2, app.items[0].sellIn)
|
||||||
|
assertEquals(4, app.items[0].quality)
|
||||||
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user