Skip to content

Commit fe65ed7

Browse files
rozzacliffred
andauthored
Ported tests from bson-kotlinx to bson-kotlin (#1434)
JAVA-5342 Co-authored-by: Cliffred van Velzen <cliffred@cliffred.nl>
1 parent 0282a7e commit fe65ed7

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-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: 5 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 kotlinx.serialization.Serializable
1819
import kotlin.time.Duration
1920
import org.bson.BsonDocument
2021
import org.bson.BsonMaxKey
@@ -162,3 +163,7 @@ data class DataClassWithFailingInit(val id: String) {
162163
data class DataClassWithSequence(val value: Sequence<String>)
163164

164165
data class DataClassWithJVMErasure(val duration: Duration, val ints: List<Int>)
166+
167+
data class Box<T>(val boxed: T)
168+
169+
data class DataClassWithNullableGeneric(val box: Box<String?>)

0 commit comments

Comments
 (0)