From a97d76e5bbe42cde2a5729efedcdcdcd7c26bbe9 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Mon, 3 Apr 2023 14:34:32 +0200 Subject: Issue #20: Detailimplementierungen für Consent Management --- src/test/java/DNPM/ConsentManagerTest.java | 48 +++++++++++------------------- 1 file changed, 17 insertions(+), 31 deletions(-) (limited to 'src/test/java/DNPM/ConsentManagerTest.java') diff --git a/src/test/java/DNPM/ConsentManagerTest.java b/src/test/java/DNPM/ConsentManagerTest.java index 6755ed6..41c9a02 100644 --- a/src/test/java/DNPM/ConsentManagerTest.java +++ b/src/test/java/DNPM/ConsentManagerTest.java @@ -1,20 +1,15 @@ package DNPM; +import DNPM.services.consent.ConsentManagerServiceFactory; +import DNPM.services.consent.MrConsentManagerService; 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) @@ -22,39 +17,30 @@ class ConsentManagerTest { private IOnkostarApi onkostarApi; + private ConsentManagerServiceFactory consentManagerServiceFactory; + private ConsentManager consentManager; @BeforeEach void setup( - @Mock IOnkostarApi onkostarApi + @Mock IOnkostarApi onkostarApi, + @Mock ConsentManagerServiceFactory consentManagerServiceFactory ) { this.onkostarApi = onkostarApi; - this.consentManager = new ConsentManager(onkostarApi); + this.consentManagerServiceFactory = consentManagerServiceFactory; + this.consentManager = new ConsentManager(onkostarApi, consentManagerServiceFactory); } @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"); + void shouldRunServiceMethodsOnAnalyzeCalled() { + var consentManagerServiceMock = mock(MrConsentManagerService.class); + + when(this.consentManagerServiceFactory.currentUsableInstance()) + .thenReturn(consentManagerServiceMock); + + this.consentManager.analyze(new Procedure(onkostarApi), null); + + verify(consentManagerServiceMock, times(1)).applyConsent(any(Procedure.class)); } } -- cgit v1.2.3