add schema validator

use ConfigurationProperties instead of Value for configuration
This commit is contained in:
Denis Savosin
2024-10-04 17:59:08 +07:00
parent f58a99a68d
commit ea77bf8b61
11 changed files with 178 additions and 21 deletions

View File

@@ -4,10 +4,9 @@ import com.example.demo.BaseUnitTest
import com.example.demo.models.Product
import com.example.demo.services.kafka.dto.ProductDto
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.encodeToJsonElement
import org.junit.runner.RunWith
import org.mockito.kotlin.argumentCaptor
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.whenever
import org.mockito.kotlin.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.boot.test.mock.mockito.MockBean
@@ -31,6 +30,9 @@ class ProducerImplTest: BaseUnitTest() {
@MockBean
private lateinit var kafkaTemplate: KafkaTemplate<String, Any>
@MockBean
private lateinit var schemaValidator: SchemaValidator
@Test
fun produceProductInfo_success() {
val topic = "some-topic"
@@ -50,6 +52,12 @@ class ProducerImplTest: BaseUnitTest() {
whenever(kafkaTemplate.send(captor.capture()))
.doReturn(CompletableFuture<SendResult<String, Any>>())
whenever(schemaValidator.validate(
eq("product-sync"),
eq(Json.encodeToJsonElement(product))
))
.doAnswer { }
producerImpl.produceProductInfo(topic, product)
assertEquals(1, captor.allValues.count())