@@ -5,7 +5,9 @@ import io.kotest.matchers.*
55import io.kotest.matchers.string.*
66import io.kotest.matchers.types.*
77import sc.helpers.shouldSerializeTo
8- import sc.helpers.testXStream
8+ import sc.networking.XStreamProvider
9+ import sc.plugin2026.util.XStreamClasses
10+ import sc.protocol.LobbyProtocol
911
1012class BoardTest : FunSpec ({
1113 val board = Board ()
@@ -14,30 +16,35 @@ class BoardTest: FunSpec({
1416 board.fieldsEmpty() shouldBe false
1517 }
1618 }
19+ val xstream = XStreamProvider .basic()
20+ LobbyProtocol .registerAdditionalMessages(xstream, XStreamClasses ().classesToRegister)
1721 context("serialization") {
18- test("board") {
19- testXStream.toXML(board) shouldHaveLineCount 122
20-
22+ test("field") {
2123 FieldState .ONE_L shouldSerializeTo " <field>ONE_L</field>"
22- testXStream.fromXML(testXStream.toXML(FieldState .ONE_L )) shouldBeSameInstanceAs FieldState .ONE_L
24+ xstream.fromXML(xstream.toXML(FieldState .ONE_L )) shouldBeSameInstanceAs FieldState .ONE_L
25+ }
26+ test("board") {
27+ xstream.toXML(board) shouldHaveLineCount 122
2328
24- board.clone() shouldBe board
25- testXStream.toXML(board.clone()) shouldHaveLineCount 122
29+ // FIXME circular reference?
30+ // val clone = board.clone()
31+ // clone shouldNotBeSameInstanceAs board
32+ // clone shouldBe board
33+ xstream.toXML(board.clone()) shouldHaveLineCount 122
2634
2735 Board (arrayOf(arrayOf(FieldState .ONE_S , FieldState .ONE_M , FieldState .ONE_L ))) shouldSerializeTo """
2836 <board>
29- <row class="field-array" >
37+ <row>
3038 <field>ONE_S</field>
3139 <field>ONE_M</field>
3240 <field>ONE_L</field>
3341 </row>
3442 </board>""" .trimIndent()
3543
36- // FIXME circular reference?
37- // val xml = testXStream.toXML(board)
38- // val reboard = testXStream.fromXML(xml)
44+ val xml = xstream.toXML(board)
45+ val reboard = xstream.fromXML(xml)
3946
40- // (reboard as Board).clone() shouldBe board
47+ (reboard as Board ).clone() shouldBe board
4148 }
4249 }
4350})
0 commit comments