From 2f691efeb352770a507606773454f15378e494d3 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Thu, 30 Mar 2023 11:38:15 +0200 Subject: Verwende AnalyzerUtils in Klasse Merkmalskatalog --- src/test/java/DNPM/MerkmalskatalogTest.java | 70 +++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/test/java/DNPM/MerkmalskatalogTest.java (limited to 'src/test/java') diff --git a/src/test/java/DNPM/MerkmalskatalogTest.java b/src/test/java/DNPM/MerkmalskatalogTest.java new file mode 100644 index 0000000..0c292dc --- /dev/null +++ b/src/test/java/DNPM/MerkmalskatalogTest.java @@ -0,0 +1,70 @@ +package DNPM; + +import de.itc.onkostar.api.IOnkostarApi; +import org.hibernate.SQLQuery; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +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 java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +class MerkmalskatalogTest { + + private IOnkostarApi onkostarApi; + + private Merkmalskatalog merkmalskatalog; + + @BeforeEach + void setup( + @Mock IOnkostarApi onkostarApi + ) { + this.onkostarApi = onkostarApi; + this.merkmalskatalog = new Merkmalskatalog(onkostarApi); + } + + @Test + void testShouldReturnNullOnParamCheckIfNoMerkmalskatalogParamGiven() { + var actual = merkmalskatalog.getMerkmalskatalog(Map.of("Spalten", "id, code")); + assertThat(actual).isNull(); + + verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt()); + } + + @Test + void testShouldReturnNullOnParamCheckIfNoSpaltenParamGiven() { + var actual = merkmalskatalog.getMerkmalskatalog(Map.of("Merkmalskatalog", "MK1")); + assertThat(actual).isNull(); + + verify(onkostarApi, times(0)).getProceduresByPatientId(anyInt()); + } + + @Test + void testShouldCreateSqlQueryWithMerkmalskatalog() { + var sessionFactory = mock(SessionFactory.class); + var session = mock(Session.class); + var query = mock(SQLQuery.class); + + when(onkostarApi.getSessionFactory()).thenReturn(sessionFactory); + when(sessionFactory.getCurrentSession()).thenReturn(session); + when(session.createSQLQuery(anyString())).thenReturn(query); + + merkmalskatalog.getMerkmalskatalog(Map.of("Merkmalskatalog", "MK1", "Spalten", "id, code")); + + var argumentCaptor = ArgumentCaptor.forClass(String.class); + verify(session, times(1)).createSQLQuery(argumentCaptor.capture()); + assertThat(argumentCaptor.getValue()).contains("WHERE name = 'MK1' AND aktiv = 1"); + } + +} -- cgit v1.2.3