diff --git a/socha-sdk/src/test/sc/shared/GameResultTest.kt b/socha-sdk/src/test/sc/shared/GameResultTest.kt new file mode 100644 index 000000000..e2fb34a62 --- /dev/null +++ b/socha-sdk/src/test/sc/shared/GameResultTest.kt @@ -0,0 +1,105 @@ +package sc.shared + +import com.thoughtworks.xstream.XStream +import io.kotlintest.shouldBe +import io.kotlintest.specs.StringSpec +import sc.framework.plugins.Player + +class GameResultTest: StringSpec({ + "convert XML" { + val xstream = XStream().apply { + setMode(XStream.NO_REFERENCES) + } + val definition = ScoreDefinition().apply { add("winner") } + val scores: List = listOf( + PlayerScore(ScoreCause.REGULAR, "test", 1), + PlayerScore(ScoreCause.LEFT, "second test", 0) + ) + val winners: List? = listOf(Player(PlayerColor.BLUE, "bluez")) + + val gameResultWithWinner = Pair( + GameResult(definition, scores, winners), """ + + + + + winner + SUM + true + + + + + + + REGULAR + test + + 1 + + + + LEFT + second test + + 0 + + + + + + + + false + false + false + false + false + false + BLUE + bluez + + + """.trimIndent() + ) + val gameResultWithoutWinner = Pair( + GameResult(definition, scores, emptyList()), """ + + + + + winner + SUM + true + + + + + + + REGULAR + test + + 1 + + + + LEFT + second test + + 0 + + + + + + """.trimIndent() + ) + + val gameResults = listOf(gameResultWithWinner, gameResultWithoutWinner) + gameResults.forEach { + xstream.toXML(it.first) shouldBe it.second + xstream.fromXML(it.second) shouldBe it.first + } + } +}) diff --git a/socha-sdk/src/test/sc/shared/PlayerScoreTest.kt b/socha-sdk/src/test/sc/shared/PlayerScoreTest.kt index 3adfff148..e2fd0a390 100644 --- a/socha-sdk/src/test/sc/shared/PlayerScoreTest.kt +++ b/socha-sdk/src/test/sc/shared/PlayerScoreTest.kt @@ -1,6 +1,5 @@ package sc.shared - import com.thoughtworks.xstream.XStream import io.kotlintest.shouldBe import io.kotlintest.shouldNotBe @@ -20,11 +19,10 @@ class PlayerScoreTest: StringSpec({ } "convert XML" { val playerScore = PlayerScore(ScoreCause.REGULAR, "Reason", 0, 1, 2) - var xstream = XStream() - xstream.setMode(XStream.NO_REFERENCES) - xstream.classLoader = PlayerScore::class.java.classLoader - val ISplayerScoreXML = xstream.toXML(playerScore) - val SHOULDplayerScoreXML = """ + val xstream = XStream().apply { + setMode(XStream.NO_REFERENCES) + } + val playerScoreXML = """ REGULAR Reason @@ -34,8 +32,7 @@ class PlayerScoreTest: StringSpec({ 2 """.trimIndent() - playerScore shouldBe xstream.fromXML(SHOULDplayerScoreXML) - playerScore shouldBe xstream.fromXML(ISplayerScoreXML) - ISplayerScoreXML shouldBe SHOULDplayerScoreXML + xstream.fromXML(playerScoreXML) shouldBe playerScore + xstream.toXML(playerScore) shouldBe playerScoreXML } }) \ No newline at end of file