-
Notifications
You must be signed in to change notification settings - Fork 173
/
KotlinModuleTest.kt
124 lines (105 loc) · 3.93 KB
/
KotlinModuleTest.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package com.fasterxml.jackson.module.kotlin
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.KotlinFeature.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Test
import kotlin.test.assertNotNull
class KotlinModuleTest {
@Test
fun builder_Defaults() {
val module = KotlinModule.Builder().build()
assertEquals(512, module.reflectionCacheSize)
assertFalse(module.nullToEmptyCollection)
assertFalse(module.nullToEmptyMap)
assertFalse(module.nullIsSameAsDefault)
assertEquals(SingletonSupport.DISABLED, module.singletonSupport)
assertFalse(module.enabledSingletonSupport)
assertFalse(module.strictNullChecks)
assertFalse(module.kotlinPropertyNameAsImplicitName)
assertFalse(module.useJavaDurationConversion)
}
@Test
fun builder_SetAll() {
val module = KotlinModule.Builder().apply {
withReflectionCacheSize(123)
enable(NullToEmptyCollection)
enable(NullToEmptyMap)
enable(NullIsSameAsDefault)
enable(SingletonSupport)
enable(StrictNullChecks)
enable(KotlinPropertyNameAsImplicitName)
enable(UseJavaDurationConversion)
}.build()
assertEquals(123, module.reflectionCacheSize)
assertTrue(module.nullToEmptyCollection)
assertTrue(module.nullToEmptyMap)
assertTrue(module.nullIsSameAsDefault)
assertEquals(SingletonSupport.CANONICALIZE, module.singletonSupport)
assertTrue(module.enabledSingletonSupport)
assertTrue(module.strictNullChecks)
assertTrue(module.kotlinPropertyNameAsImplicitName)
assertTrue(module.useJavaDurationConversion)
}
@Test
fun builder_NullToEmptyCollection() {
val module = KotlinModule.Builder().apply {
enable(NullToEmptyCollection)
}.build()
assertTrue(module.nullToEmptyCollection)
}
@Test
fun builder_NullToEmptyMap() {
val module = KotlinModule.Builder().apply {
enable(NullToEmptyMap)
}.build()
assertTrue(module.nullToEmptyMap)
}
@Test
fun builder_NullIsSameAsDefault() {
val module = KotlinModule.Builder().apply {
enable(NullIsSameAsDefault)
}.build()
assertTrue(module.nullIsSameAsDefault)
}
@Test
fun builder_EnableCanonicalSingletonSupport() {
val module = KotlinModule.Builder().apply {
enable(SingletonSupport)
}.build()
assertEquals(SingletonSupport.CANONICALIZE, module.singletonSupport)
}
@Test
fun builder_EnableStrictNullChecks() {
val module = KotlinModule.Builder().apply {
enable(StrictNullChecks)
}.build()
assertTrue(module.strictNullChecks)
}
@Test
fun jdkSerializabilityTest() {
val module = KotlinModule.Builder().apply {
withReflectionCacheSize(123)
enable(NullToEmptyCollection)
enable(NullToEmptyMap)
enable(NullIsSameAsDefault)
enable(SingletonSupport)
enable(StrictNullChecks)
}.build()
val serialized = jdkSerialize(module)
val deserialized = jdkDeserialize<KotlinModule>(serialized)
assertNotNull(deserialized)
assertEquals(123, deserialized.reflectionCacheSize)
assertTrue(deserialized.nullToEmptyCollection)
assertTrue(deserialized.nullToEmptyMap)
assertTrue(deserialized.nullIsSameAsDefault)
assertEquals(SingletonSupport.CANONICALIZE, deserialized.singletonSupport)
assertTrue(deserialized.strictNullChecks)
}
@Test
fun findAndRegisterModulesTest() {
val mapper = ObjectMapper().findAndRegisterModules()
assertTrue(mapper.registeredModuleIds.contains("com.fasterxml.jackson.module.kotlin.KotlinModule"))
}
}