Skip to content

Commit 2eb4897

Browse files
committed
fix(plugin): FieldConverter for Teams
1 parent c589118 commit 2eb4897

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

plugin/src/main/kotlin/sc/plugin2023/util/FieldConverter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ class FieldConverter: Converter {
1616
writer.setValue(obj.penguin?.name ?: obj.fish.toString())
1717
}
1818

19-
override fun unmarshal(reader: HierarchicalStreamReader, context: UnmarshallingContext): Any? =
19+
override fun unmarshal(reader: HierarchicalStreamReader, context: UnmarshallingContext): Field =
2020
reader.value?.let { value ->
21-
value.toIntOrNull()?.let { Field(it) } ?: Team.valueOf(value)
21+
value.toIntOrNull()?.let { Field(it) } ?: Field(penguin = Team.valueOf(value))
2222
} ?: Field()
2323
}

plugin/src/test/kotlin/sc/plugin2023/BoardTest.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class BoardTest: FunSpec({
2626

2727
generatedBoard.getPenguins() shouldHaveSize 0
2828
generatedBoard[1 y 1] = Team.ONE
29+
generatedBoard[1 y 1] shouldBe Field(penguin = Team.ONE)
2930
generatedBoard.getPenguins() shouldHaveSize 1
3031

3132
arrayOf(-1 y 1, -2 y 0, -1 y 3, -1 y 0).forAll {
@@ -93,7 +94,10 @@ class BoardTest: FunSpec({
9394
testXStream.toXML(Board()) shouldHaveLineCount 82
9495
}
9596
test("Board with content") {
96-
testXStream.toXML(makeBoard(0 y 0 to 1)) shouldContainOnlyOnce "<field>TWO</field>"
97+
val fieldTwo = "<field>TWO</field>"
98+
testXStream.fromXML(fieldTwo) shouldBe Field(penguin = Team.TWO)
99+
testXStream.fromXML("<board><list>$fieldTwo</list>") shouldBe Board(listOf(mutableListOf(Field(penguin = Team.TWO))))
100+
testXStream.toXML(makeBoard(0 y 0 to 1)) shouldContainOnlyOnce fieldTwo
97101
}
98102
}
99103
})

plugin/src/test/kotlin/sc/plugin2023/GameStateTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ import sc.plugin2023.util.PluginConstants
1414
class GameStateTest: FunSpec({
1515
context("XML Serialization") {
1616
test("empty state") {
17-
GameState(Board(listOf(mutableListOf(Field())))) shouldSerializeTo """
17+
GameState(Board(listOf(mutableListOf(Field(), Field(penguin = Team.TWO))))) shouldSerializeTo """
1818
<state turn="0">
1919
<startTeam>ONE</startTeam>
2020
<board>
2121
<list>
2222
<field>0</field>
23+
<field>TWO</field>
2324
</list>
2425
</board>
2526
<fishes>

0 commit comments

Comments
 (0)