diff options
| author | Paul-Christian Volkmer | 2023-04-01 23:05:02 +0200 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-04-01 23:05:30 +0200 |
| commit | 17e904b2cc4bbd2dbc66c9715836e8505b596b37 (patch) | |
| tree | 0fc720157aa16c8271c92587c4f17a7bc66fa9d8 /src/test/java | |
| parent | 3627a9e898b39c7dfd48ea3315637bfc7a9dbbac (diff) | |
Refactoring Klasse ConsentManager
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/DNPM/ConsentManagerTest.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/test/java/DNPM/ConsentManagerTest.java b/src/test/java/DNPM/ConsentManagerTest.java new file mode 100644 index 0000000..6755ed6 --- /dev/null +++ b/src/test/java/DNPM/ConsentManagerTest.java @@ -0,0 +1,60 @@ +package DNPM; + +import de.itc.onkostar.api.IOnkostarApi; +import de.itc.onkostar.api.Procedure; +import org.hibernate.SQLQuery; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.type.Type; +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 static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.*; + +@ExtendWith(MockitoExtension.class) +class ConsentManagerTest { + + private IOnkostarApi onkostarApi; + + private ConsentManager consentManager; + + @BeforeEach + void setup( + @Mock IOnkostarApi onkostarApi + ) { + this.onkostarApi = onkostarApi; + this.consentManager = new ConsentManager(onkostarApi); + } + + @Test + void testShouldCreateSqlQueriesWithRelatedEntityIds() { + 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); + when(query.addScalar(anyString(), any(Type.class))).thenReturn(query); + when(query.uniqueResult()).thenReturn(""); + + var dummyProzedur = new Procedure(this.onkostarApi); + dummyProzedur.setId(111); + dummyProzedur.setPatientId(123); + + consentManager.analyze(dummyProzedur, null); + + var argumentCaptor = ArgumentCaptor.forClass(String.class); + verify(session, times(2)).createSQLQuery(argumentCaptor.capture()); + assertThat(argumentCaptor.getAllValues()).hasSize(2); + assertThat(argumentCaptor.getAllValues().get(0)).contains("where entity_id = '111'"); + assertThat(argumentCaptor.getAllValues().get(1)).contains("WHERE patient_id = 123 AND geloescht = 0"); + } + +} |
