From ceabb8b2938ebdabede39613c84fd7150182a811 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Fri, 20 Jun 2025 18:43:07 +0200 Subject: [PATCH] test: add test to ensure correct query string --- .../datacatalogues/KpaCatalogueTest.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/test/java/dev/pcvolkmer/onco/datamapper/datacatalogues/KpaCatalogueTest.java diff --git a/src/test/java/dev/pcvolkmer/onco/datamapper/datacatalogues/KpaCatalogueTest.java b/src/test/java/dev/pcvolkmer/onco/datamapper/datacatalogues/KpaCatalogueTest.java new file mode 100644 index 0000000..3a56fb7 --- /dev/null +++ b/src/test/java/dev/pcvolkmer/onco/datamapper/datacatalogues/KpaCatalogueTest.java @@ -0,0 +1,47 @@ +package dev.pcvolkmer.onco.datamapper.datacatalogues; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; + +import java.sql.ResultSet; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.verify; + +@ExtendWith(MockitoExtension.class) +class KpaCatalogueTest { + + JdbcTemplate jdbcTemplate; + KpaCatalogue catalogue; + + @BeforeEach + void setUp(@Mock JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + this.catalogue = KpaCatalogue.create(jdbcTemplate); + } + + @Test + void shouldUseCorrectQuery(@Mock ResultSet resultSet) { + doAnswer(invocationOnMock -> List.of(resultSet)) + .when(jdbcTemplate) + .query(anyString(), any(RowMapper.class), anyInt()); + + this.catalogue.getById(1); + + var captor = ArgumentCaptor.forClass(String.class); + verify(this.jdbcTemplate).query(captor.capture(), any(RowMapper.class), anyInt()); + + assertThat(captor.getValue()) + .isEqualTo("SELECT * FROM dk_dnpm_kpa JOIN prozedur ON (prozedur.id = dk_dnpm_kpa.id) WHERE id = ?"); + } + +}