Skip to content

Commit 9c73aee

Browse files
rozzacliffred
andcommitted
Ported tests from bson-kotlinx to bson-kotlin (#1434)
JAVA-5342 Co-authored-by: Cliffred van Velzen <[email protected]>
1 parent 11a4f92 commit 9c73aee

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

bson-kotlin/src/test/kotlin/org/bson/codecs/kotlin/DataClassCodecTest.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import org.bson.codecs.DecoderContext
2323
import org.bson.codecs.EncoderContext
2424
import org.bson.codecs.configuration.CodecConfigurationException
2525
import org.bson.codecs.configuration.CodecRegistries.fromProviders
26+
import org.bson.codecs.kotlin.samples.Box
2627
import org.bson.codecs.kotlin.samples.DataClassEmbedded
2728
import org.bson.codecs.kotlin.samples.DataClassListOfDataClasses
2829
import org.bson.codecs.kotlin.samples.DataClassListOfListOfDataClasses
@@ -55,6 +56,7 @@ import org.bson.codecs.kotlin.samples.DataClassWithMutableMap
5556
import org.bson.codecs.kotlin.samples.DataClassWithMutableSet
5657
import org.bson.codecs.kotlin.samples.DataClassWithNestedParameterized
5758
import org.bson.codecs.kotlin.samples.DataClassWithNestedParameterizedDataClass
59+
import org.bson.codecs.kotlin.samples.DataClassWithNullableGeneric
5860
import org.bson.codecs.kotlin.samples.DataClassWithNulls
5961
import org.bson.codecs.kotlin.samples.DataClassWithObjectIdAndBsonDocument
6062
import org.bson.codecs.kotlin.samples.DataClassWithPair
@@ -131,6 +133,25 @@ class DataClassCodecTest {
131133
assertDecodesTo(withStoredNulls, dataClass)
132134
}
133135

136+
@Test
137+
fun testDataClassWithNullableGenericsNotNull() {
138+
val expected =
139+
"""{
140+
| "box": {"boxed": "String"}
141+
|}"""
142+
.trimMargin()
143+
144+
val dataClass = DataClassWithNullableGeneric(Box("String"))
145+
assertRoundTrips(expected, dataClass)
146+
}
147+
148+
@Test
149+
fun testDataClassWithNullableGenericsNull() {
150+
val expected = """{"box": {}}"""
151+
val dataClass = DataClassWithNullableGeneric(Box(null))
152+
assertRoundTrips(expected, dataClass)
153+
}
154+
134155
@Test
135156
fun testDataClassSelfReferential() {
136157
val expected =

bson-kotlin/src/test/kotlin/org/bson/codecs/kotlin/samples/DataClasses.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.bson.codecs.kotlin.samples
1717

18+
import kotlin.time.Duration
1819
import org.bson.BsonDocument
1920
import org.bson.BsonMaxKey
2021
import org.bson.BsonType
@@ -159,3 +160,9 @@ data class DataClassWithFailingInit(val id: String) {
159160
}
160161

161162
data class DataClassWithSequence(val value: Sequence<String>)
163+
164+
data class DataClassWithJVMErasure(val duration: Duration, val ints: List<Int>)
165+
166+
data class Box<T>(val boxed: T)
167+
168+
data class DataClassWithNullableGeneric(val box: Box<String?>)

0 commit comments

Comments
 (0)