-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathSerializerTests.kt
82 lines (72 loc) · 2.4 KB
/
SerializerTests.kt
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.flagsmith.entities
import com.google.gson.GsonBuilder
import org.junit.Assert.assertEquals
import org.junit.Test
class SerializerTests {
private val gson = GsonBuilder()
.registerTypeAdapter(IdentityAndTraits::class.java, IdentityAndTraitsSerializer())
.registerTypeAdapter(Trait::class.java, TraitSerializer())
.create()
@Test
fun `IdentityAndTraitsSerializer omits transient field when false`() {
val identity = IdentityAndTraits(
identifier = "test-user",
traits = listOf(Trait("key", "value")),
transient = false
)
val json = gson.toJson(identity)
assertEquals(
"""{"identifier":"test-user","traits":[{"trait_key":"key","trait_value":"value"}]}""",
json
)
}
@Test
fun `IdentityAndTraitsSerializer includes transient field when true`() {
val identity = IdentityAndTraits(
identifier = "test-user",
traits = listOf(Trait("key", "value")),
transient = true
)
val json = gson.toJson(identity)
assertEquals(
"""{"identifier":"test-user","traits":[{"trait_key":"key","trait_value":"value"}],"transient":true}""",
json
)
}
@Test
fun `TraitSerializer omits transient field when false`() {
val trait = Trait("key", "value", false)
val json = gson.toJson(trait)
assertEquals(
"""{"trait_key":"key","trait_value":"value"}""",
json
)
}
@Test
fun `TraitSerializer includes transient field when true`() {
val trait = Trait("key", "value", true)
val json = gson.toJson(trait)
assertEquals(
"""{"trait_key":"key","trait_value":"value","transient":true}""",
json
)
}
@Test
fun `TraitSerializer handles optional identifier`() {
val traitWithId = Trait(
identifier = "test-id",
key = "key",
traitValue = "value",
transient = false
)
val traitWithoutId = Trait("key", "value", false)
assertEquals(
"""{"identifier":"test-id","trait_key":"key","trait_value":"value"}""",
gson.toJson(traitWithId)
)
assertEquals(
"""{"trait_key":"key","trait_value":"value"}""",
gson.toJson(traitWithoutId)
)
}
}