mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
refactored + tests
This commit is contained in:
parent
58a991fe27
commit
7769b15a88
@ -12,14 +12,14 @@ repositories {
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(8)
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(kotlin("stdlib"))
|
||||
testImplementation(kotlin("test"))
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.12.2")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:3.8.0")
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
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
|
||||
validateDistributionUrl=true
|
||||
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>) {
|
||||
|
||||
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() {
|
||||
for (i in items.indices) {
|
||||
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()
|
||||
app.updateQuality()
|
||||
app.updateQualityClara()
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,14 +6,140 @@ import org.junit.jupiter.api.Test
|
||||
internal class GildedRoseTest {
|
||||
|
||||
@Test
|
||||
fun foo() {
|
||||
val items = listOf(Item("foo", 0, 0))
|
||||
fun dexterityVest() {
|
||||
val items = listOf(Item("+5 Dexterity Vest", 10, 20))
|
||||
val app = GildedRose(items)
|
||||
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