From d2f588f26bb0688bc9b28b13dcad22ba0fa56665 Mon Sep 17 00:00:00 2001 From: Denis Stepanov Date: Mon, 31 Mar 2025 15:54:03 +0200 Subject: [PATCH] Add test for raw repository usage --- .../src/main/kotlin/example/BookRepository.kt | 3 +++ .../test/kotlin/example/BookRepositorySpec.kt | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/doc-examples/mongo-example-kotlin/src/main/kotlin/example/BookRepository.kt b/doc-examples/mongo-example-kotlin/src/main/kotlin/example/BookRepository.kt index b41b86c4c67..314353d5f99 100644 --- a/doc-examples/mongo-example-kotlin/src/main/kotlin/example/BookRepository.kt +++ b/doc-examples/mongo-example-kotlin/src/main/kotlin/example/BookRepository.kt @@ -10,11 +10,14 @@ import io.micronaut.data.model.Slice import io.micronaut.data.mongodb.annotation.* import io.micronaut.data.repository.CrudRepository import org.bson.types.ObjectId +import java.util.* @MongoRepository // <1> interface BookRepository : CrudRepository { // <2> // end::repository[] + override fun findById(id: ObjectId): Optional + // tag::simple[] fun findByTitle(title: String): Book diff --git a/doc-examples/mongo-example-kotlin/src/test/kotlin/example/BookRepositorySpec.kt b/doc-examples/mongo-example-kotlin/src/test/kotlin/example/BookRepositorySpec.kt index 3b5c92674ce..f369d4c3325 100644 --- a/doc-examples/mongo-example-kotlin/src/test/kotlin/example/BookRepositorySpec.kt +++ b/doc-examples/mongo-example-kotlin/src/test/kotlin/example/BookRepositorySpec.kt @@ -3,6 +3,7 @@ package example import io.micronaut.context.BeanContext import io.micronaut.data.annotation.Query import io.micronaut.data.model.Pageable +import io.micronaut.data.repository.CrudRepository import io.micronaut.test.extensions.junit5.annotation.MicronautTest import jakarta.inject.Inject import org.bson.types.ObjectId @@ -87,6 +88,20 @@ class BookRepositorySpec : AbstractMongoSpec() { assertEquals(0, bookRepository.count()) } + @Suppress("UNCHECKED_CAST") + @Test + fun testCrudCasting() { + val bookRepository2: CrudRepository = bookRepository as CrudRepository + assertNotNull(bookRepository2) + val book = Book(ObjectId(),"The Stand", 1000) + bookRepository2.save(book) + val id = book.id + assertNotNull(id) + assertTrue(bookRepository2.findById(id).isPresent) + bookRepository2.deleteById(id) + assertEquals(0, bookRepository2.count()) + } + @Test fun testPageable() { // tag::saveall[] @@ -137,4 +152,4 @@ class BookRepositorySpec : AbstractMongoSpec() { assertEquals("The Shining", bookDTO.title) } -} \ No newline at end of file +}