@@ -5,7 +5,9 @@ import io.kotest.matchers.*
5
5
import io.kotest.matchers.string.*
6
6
import io.kotest.matchers.types.*
7
7
import sc.helpers.shouldSerializeTo
8
- import sc.helpers.testXStream
8
+ import sc.networking.XStreamProvider
9
+ import sc.plugin2026.util.XStreamClasses
10
+ import sc.protocol.LobbyProtocol
9
11
10
12
class BoardTest : FunSpec ({
11
13
val board = Board ()
@@ -14,30 +16,35 @@ class BoardTest: FunSpec({
14
16
board.fieldsEmpty() shouldBe false
15
17
}
16
18
}
19
+ val xstream = XStreamProvider .basic()
20
+ LobbyProtocol .registerAdditionalMessages(xstream, XStreamClasses ().classesToRegister)
17
21
context("serialization") {
18
- test("board") {
19
- testXStream.toXML(board) shouldHaveLineCount 122
20
-
22
+ test("field") {
21
23
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
23
28
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
26
34
27
35
Board (arrayOf(arrayOf(FieldState .ONE_S , FieldState .ONE_M , FieldState .ONE_L ))) shouldSerializeTo """
28
36
<board>
29
- <row class="field-array" >
37
+ <row>
30
38
<field>ONE_S</field>
31
39
<field>ONE_M</field>
32
40
<field>ONE_L</field>
33
41
</row>
34
42
</board>""" .trimIndent()
35
43
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)
39
46
40
- // (reboard as Board).clone() shouldBe board
47
+ (reboard as Board ).clone() shouldBe board
41
48
}
42
49
}
43
50
})
0 commit comments