diff --git a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/OverridePropertyClasses.kt b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/OverridePropertyClasses.kt index 50d71a7ce..824fb5131 100644 --- a/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/OverridePropertyClasses.kt +++ b/spring-data-mongodb/src/test/kotlin/org/springframework/data/mongodb/core/OverridePropertyClasses.kt @@ -15,29 +15,38 @@ */ package org.springframework.data.mongodb.core -import com.mongodb.MongoClient +import com.mongodb.client.MongoClients import org.junit.Test +import org.springframework.data.mongodb.core.mapping.Field import org.springframework.data.mongodb.repository.MongoRepository import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory import org.springframework.data.mongodb.test.util.Assertions.assertThat -open class SuperType(open val field: Int) +open class SuperType(open var field: Int) -class SubType(val id: String, override var field: Int = 1) : SuperType(field) +class SubType(val id: String, @Field("foo") override var field: Int = 1) : + SuperType(field) { + + fun setFields(v: Int) { + field = v + super.field = v + } +} interface MyRepository : MongoRepository class `KotlinOverridePropertyTests` { - val template = MongoTemplate(MongoClient(), "kotlin-tests") + val template = MongoTemplate(MongoClients.create(), "kotlin-tests") @Test // DATAMONGO-2250 fun `Ambiguous field mapping for override val field`() { - val repository = MongoRepositoryFactory(template).getRepository(MyRepository::class.java) + val repository = + MongoRepositoryFactory(template).getRepository(MyRepository::class.java) var subType = SubType("id-1") - subType.field = 3 + subType.setFields(3) repository.save(subType)