1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package jp.orgflow.bridge
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue
class SlideSpecCodecTest {
@Test
fun codecRoundtripsSlidesWithImages() {
val slides = listOf(
SlideSpecData(
id = "s1",
title = "Codec",
backgroundArgb = 0xFFFFF8E1,
boxes = listOf(
SlideSpecBox(
kind = SlideSpecBoxKind.TEXT,
xPt = 54.0,
yPt = 40.0,
widthPt = 400.0,
heightPt = 60.0,
textRuns = listOf(SlideSpecTextRun("hi", bold = true, italic = true, sizePt = 24.0, colorArgb = 0xFF0000FF)),
),
SlideSpecBox(kind = SlideSpecBoxKind.IMAGE, xPt = 5.0, yPt = 6.0, widthPt = 7.0, heightPt = 8.0, imageRef = "img1"),
SlideSpecBox(
kind = SlideSpecBoxKind.TABLE,
xPt = 9.0,
yPt = 10.0,
widthPt = 11.0,
heightPt = 12.0,
tableCells = listOf(listOf("a", "b"), listOf("1", "2")),
),
),
images = mapOf("img1" to byteArrayOf(1, 2, 3, -1)),
notes = "note",
),
)
assertEquals(slides, SlideSpecCodec.decode(SlideSpecCodec.encode(slides)))
}
@Test
fun codecHandlesEmptyDeckAndDefaults() {
assertEquals(emptyList(), SlideSpecCodec.decode(SlideSpecCodec.encode(emptyList())))
val minimal = SlideSpecData(id = "s1")
assertEquals(minimal, SlideSpecCodec.decode(SlideSpecCodec.encode(listOf(minimal))).single())
}
@Test
fun codecIgnoresUnknownKeys() {
val encoded = SlideSpecCodec.encode(listOf(SlideSpecData(id = "s1", title = "t")))
assertTrue(encoded.contains("\"s1\""))
}
}
|