diff --git a/scala/README.md b/scala/README.md index 6f36544e..d8f35317 100644 --- a/scala/README.md +++ b/scala/README.md @@ -1,3 +1,22 @@ -# Gilded Rose starting position in Scala +# Gilded Rose starting position in Scala 3 scalatest -TODO: explain how to run this code + +## Build the project + +``` cmd +sbt compile +``` + +## Run the Gilded Rose Command-Line program + +For e.g. 10 days: + +``` cmd +sbt "run 10" +``` + +## Run all the unit tests + +``` cmd +sbt test +``` diff --git a/scala/build.sbt b/scala/build.sbt index d628c9f4..51404b8c 100644 --- a/scala/build.sbt +++ b/scala/build.sbt @@ -1,8 +1,11 @@ -name := "GildedRose" +val scala3Version = "3.6.4" -version := "1.0" +lazy val root = project + .in(file(".")) + .settings( + name := "GildedRose", + version := "1.0", + scalaVersion := scala3Version, -scalaVersion := "2.13.1" - -resolvers += DefaultMavenRepository -libraryDependencies += "org.scalatest" %% "scalatest" % "3.1.1" % "test" + libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.19" % "test" + ) diff --git a/scala/project/build.properties b/scala/project/build.properties index 06703e34..e97b2722 100644 --- a/scala/project/build.properties +++ b/scala/project/build.properties @@ -1 +1 @@ -sbt.version=1.3.9 +sbt.version=1.10.10 diff --git a/scala/src/main/scala/com/gildedrose/GildedRose.scala b/scala/src/main/scala/com/gildedrose/GildedRose.scala index 9f9fdd2b..f6e45e7e 100644 --- a/scala/src/main/scala/com/gildedrose/GildedRose.scala +++ b/scala/src/main/scala/com/gildedrose/GildedRose.scala @@ -3,7 +3,7 @@ package com.gildedrose class GildedRose(val items: Array[Item]) { - def updateQuality() { + def updateQuality() : Unit = { for (i <- 0 until items.length) { if (!items(i).name.equals("Aged Brie") && !items(i).name.equals("Backstage passes to a TAFKAL80ETC concert")) { @@ -55,4 +55,4 @@ class GildedRose(val items: Array[Item]) { } } } -} \ No newline at end of file +} diff --git a/scala/src/test/scala/com/gildedrose/TexttestFixture.scala b/scala/src/main/scala/com/gildedrose/Main.scala similarity index 95% rename from scala/src/test/scala/com/gildedrose/TexttestFixture.scala rename to scala/src/main/scala/com/gildedrose/Main.scala index 1d00808c..fbd1cd9b 100644 --- a/scala/src/test/scala/com/gildedrose/TexttestFixture.scala +++ b/scala/src/main/scala/com/gildedrose/Main.scala @@ -1,6 +1,6 @@ package com.gildedrose -object TexttestFixture { +object Main { def main(args: Array[String]): Unit = { val items = Array[Item]( new Item("+5 Dexterity Vest", 10, 20), @@ -14,8 +14,13 @@ object TexttestFixture { // this conjured item does not work properly yet new Item("Conjured Mana Cake", 3, 6) ) + val app = new GildedRose(items) + val days = if (args.length > 0) args(0).toInt + 1 else 2 + + System.out.println("OMGHAI!") + for (i <- 0 until days) { System.out.println("-------- day " + i + " --------") System.out.println("name, sellIn, quality") diff --git a/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala b/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala index c0ce6b23..6d8c1732 100644 --- a/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala +++ b/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala @@ -3,11 +3,11 @@ package com.gildedrose import org.scalatest.flatspec.AnyFlatSpec import org.scalatest.matchers.should.Matchers -class GildedRoseTest extends AnyFlatSpec with Matchers { +class GildedRoseTest extends AnyFlatSpec with Matchers { it should "foo" in { val items = Array[Item](new Item("foo", 0, 0)) val app = new GildedRose(items) app.updateQuality() app.items(0).name should equal ("fixme") } -} \ No newline at end of file +}