Search in sources :

Example 26 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeServiceTest method testFilterArendeFiltersOutNonVerifiedSekretessPatients.

@Test
@SuppressWarnings("unchecked")
public void testFilterArendeFiltersOutNonVerifiedSekretessPatients() {
    WebCertUser webCertUser = createUser();
    Map<Personnummer, SekretessStatus> map = mock(Map.class);
    when(map.get(any(Personnummer.class))).thenReturn(SekretessStatus.UNDEFINED);
    doReturn(map).when(patientDetailsResolver).getSekretessStatusForList(anyList());
    when(webcertUserService.getUser()).thenReturn(webCertUser);
    when(webcertUserService.isAuthorizedForUnit(any(), eq(true))).thenReturn(true);
    List<Arende> queryResults = new ArrayList<>();
    queryResults.add(buildArende(UUID.randomUUID().toString(), LocalDateTime.now(), null));
    queryResults.add(buildArende(UUID.randomUUID().toString(), LocalDateTime.now().minusDays(1), null));
    when(arendeRepository.filterArende(any(Filter.class))).thenReturn(queryResults);
    QueryFragaSvarResponse fsResponse = new QueryFragaSvarResponse();
    fsResponse.setResults(new ArrayList<>());
    fsResponse.setTotalCount(0);
    when(fragaSvarService.filterFragaSvar(any(Filter.class))).thenReturn(fsResponse);
    QueryFragaSvarParameter params = new QueryFragaSvarParameter();
    params.setEnhetId(webCertUser.getValdVardenhet().getId());
    QueryFragaSvarResponse response = service.filterArende(params);
    verify(patientDetailsResolver, times(1)).getSekretessStatusForList(anyList());
    verify(webcertUserService).isAuthorizedForUnit(anyString(), eq(true));
    verify(arendeRepository).filterArende(any(Filter.class));
    verify(fragaSvarService).filterFragaSvar(any(Filter.class));
    assertEquals(0, response.getResults().size());
}
Also used : Personnummer(se.inera.intyg.schemas.contract.Personnummer) SekretessStatus(se.inera.intyg.webcert.common.model.SekretessStatus) Filter(se.inera.intyg.webcert.persistence.model.Filter) QueryFragaSvarParameter(se.inera.intyg.webcert.web.service.fragasvar.dto.QueryFragaSvarParameter) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) WebCertUser(se.inera.intyg.webcert.web.service.user.dto.WebCertUser) QueryFragaSvarResponse(se.inera.intyg.webcert.web.service.fragasvar.dto.QueryFragaSvarResponse) Test(org.junit.Test)

Example 27 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeServiceTest method testGetLatestMeddelandeIdForCurrentCareUnit.

@Test
public void testGetLatestMeddelandeIdForCurrentCareUnit() {
    Arende kompl = buildArende(MEDDELANDE_ID, ENHET_ID);
    kompl.setAmne(ArendeAmne.KOMPLT);
    List<Arende> arendeList = Collections.singletonList(kompl);
    when(webcertUserService.getUser()).thenReturn(createUser());
    when(arendeRepository.findByIntygsId(eq(INTYG_ID))).thenReturn(arendeList);
    assertEquals(MEDDELANDE_ID, service.getLatestMeddelandeIdForCurrentCareUnit(INTYG_ID));
}
Also used : MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) Test(org.junit.Test)

Example 28 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeServiceTest method testProcessIncomingMessageSendsNotificationForAnswerRecieved.

@Test
public void testProcessIncomingMessageSendsNotificationForAnswerRecieved() throws WebCertServiceException {
    final String frageid = "frageid";
    Arende fragearende = new Arende();
    Arende svararende = new Arende();
    svararende.setIntygsId(INTYG_ID);
    svararende.setSvarPaId(frageid);
    Utkast utkast = buildUtkast();
    when(utkastRepository.findOne(INTYG_ID)).thenReturn(utkast);
    when(arendeRepository.findOneByMeddelandeId(eq(frageid))).thenReturn(fragearende);
    Arende res = service.processIncomingMessage(svararende);
    assertNotNull(res);
    assertEquals(INTYG_ID, res.getIntygsId());
    verify(arendeRepository).findOneByMeddelandeId(eq(frageid));
    verify(arendeRepository, times(2)).save(any(Arende.class));
    verify(notificationService).sendNotificationForAnswerRecieved(any(Arende.class));
    verifyZeroInteractions(arendeDraftService);
}
Also used : Utkast(se.inera.intyg.webcert.persistence.utkast.model.Utkast) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) Matchers.anyString(org.mockito.Matchers.anyString) Test(org.junit.Test)

Example 29 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeServiceTest method answerTest.

@Test
public void answerTest() throws CertificateSenderException {
    final String svarPaMeddelandeId = "svarPaMeddelandeId";
    Arende fraga = buildArende(svarPaMeddelandeId, null);
    fraga.setAmne(ArendeAmne.OVRIGT);
    fraga.setSenasteHandelse(LocalDateTime.now());
    fraga.setStatus(Status.PENDING_INTERNAL_ACTION);
    fraga.setPatientPersonId(PERSON_ID);
    when(arendeRepository.findOneByMeddelandeId(svarPaMeddelandeId)).thenReturn(fraga);
    when(webcertUserService.isAuthorizedForUnit(isNull(), anyBoolean())).thenReturn(true);
    when(webcertUserService.getUser()).thenReturn(new WebCertUser());
    ArendeConversationView result = service.answer(svarPaMeddelandeId, "svarstext");
    assertNotNull(result.getFraga());
    assertNotNull(result.getSvar());
    assertEquals(FIXED_TIME_INSTANT, result.getSenasteHandelse().toInstant(ZoneId.systemDefault().getRules().getOffset(FIXED_TIME_INSTANT)));
    verify(webcertUserService).isAuthorizedForUnit(isNull(), anyBoolean());
    verify(arendeRepository, times(2)).save(any(Arende.class));
    verify(monitoringLog).logArendeCreated(anyString(), anyString(), isNull(), any(ArendeAmne.class), anyBoolean());
    verify(certificateSenderService).sendMessageToRecipient(anyString(), anyString());
    verify(notificationService).sendNotificationForQAs(INTYG_ID, NotificationEvent.NEW_ANSWER_FROM_CARE);
    verify(arendeDraftService).delete(INTYG_ID, svarPaMeddelandeId);
}
Also used : ArendeConversationView(se.inera.intyg.webcert.web.web.controller.api.dto.ArendeConversationView) ArendeAmne(se.inera.intyg.webcert.persistence.arende.model.ArendeAmne) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) Matchers.anyString(org.mockito.Matchers.anyString) WebCertUser(se.inera.intyg.webcert.web.service.user.dto.WebCertUser) Test(org.junit.Test)

Example 30 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeServiceTest method testCloseAllNonClosedQuestions.

@Test
public void testCloseAllNonClosedQuestions() {
    Arende arendeFromWc = buildArende(UUID.randomUUID().toString(), INTYG_ID, LocalDateTime.now(), LocalDateTime.now(), ENHET_ID);
    arendeFromWc.setSkickatAv(FrageStallare.WEBCERT.getKod());
    arendeFromWc.setStatus(Status.ANSWERED);
    Arende arendeFromFk = buildArende(UUID.randomUUID().toString(), INTYG_ID, LocalDateTime.now(), LocalDateTime.now(), ENHET_ID);
    arendeFromFk.setSkickatAv(FrageStallare.FORSAKRINGSKASSAN.getKod());
    Arende arendeAlreadyClosed = buildArende(UUID.randomUUID().toString(), INTYG_ID, LocalDateTime.now(), LocalDateTime.now(), ENHET_ID);
    arendeAlreadyClosed.setStatus(Status.CLOSED);
    // svar and paminnelse will be ignored
    Arende arendeSvar = buildArende(UUID.randomUUID().toString(), INTYG_ID, LocalDateTime.now(), LocalDateTime.now(), ENHET_ID);
    arendeSvar.setSvarPaId(arendeFromWc.getMeddelandeId());
    Arende arendePaminnelse = buildArende(UUID.randomUUID().toString(), INTYG_ID, LocalDateTime.now(), LocalDateTime.now(), ENHET_ID);
    arendePaminnelse.setAmne(ArendeAmne.PAMINN);
    arendePaminnelse.setPaminnelseMeddelandeId(arendeFromFk.getMeddelandeId());
    when(arendeRepository.findByIntygsId(INTYG_ID)).thenReturn(Arrays.asList(arendeFromWc, arendeFromFk, arendeAlreadyClosed, arendeSvar, arendePaminnelse));
    service.closeAllNonClosed(INTYG_ID);
    verify(arendeRepository).findByIntygsId(INTYG_ID);
    verify(notificationService).sendNotificationForQAs(INTYG_ID, NotificationEvent.QUESTION_FROM_RECIPIENT_HANDLED);
    verify(notificationService).sendNotificationForQAs(INTYG_ID, NotificationEvent.QUESTION_FROM_CARE_WITH_ANSWER_HANDLED);
    ArgumentCaptor<Arende> arendeCaptor = ArgumentCaptor.forClass(Arende.class);
    verify(arendeRepository, times(2)).save(arendeCaptor.capture());
    assertEquals(Status.CLOSED, arendeCaptor.getAllValues().get(0).getStatus());
    assertEquals(Status.CLOSED, arendeCaptor.getAllValues().get(1).getStatus());
    verify(fragaSvarService).closeAllNonClosedQuestions(INTYG_ID);
}
Also used : MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) Test(org.junit.Test)

Aggregations

Arende (se.inera.intyg.webcert.persistence.arende.model.Arende)125 MedicinsktArende (se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende)95 Test (org.junit.Test)88 Filter (se.inera.intyg.webcert.persistence.model.Filter)32 LocalDateTime (java.time.LocalDateTime)20 Utkast (se.inera.intyg.webcert.persistence.utkast.model.Utkast)20 Matchers.anyString (org.mockito.Matchers.anyString)17 WebCertServiceException (se.inera.intyg.webcert.common.service.exception.WebCertServiceException)16 WebCertUser (se.inera.intyg.webcert.web.service.user.dto.WebCertUser)15 ArendeConversationView (se.inera.intyg.webcert.web.web.controller.api.dto.ArendeConversationView)14 ArendeAmne (se.inera.intyg.webcert.persistence.arende.model.ArendeAmne)12 QueryFragaSvarParameter (se.inera.intyg.webcert.web.service.fragasvar.dto.QueryFragaSvarParameter)11 QueryFragaSvarResponse (se.inera.intyg.webcert.web.service.fragasvar.dto.QueryFragaSvarResponse)11 ArendeView (se.inera.intyg.webcert.web.web.controller.api.dto.ArendeView)8 ImmutableList (com.google.common.collect.ImmutableList)6 Signatur (se.inera.intyg.webcert.persistence.utkast.model.Signatur)6 NotificationEvent (se.inera.intyg.webcert.web.service.notification.NotificationEvent)6 ArendeListItem (se.inera.intyg.webcert.web.web.controller.api.dto.ArendeListItem)6 SendMessageToRecipientType (se.riv.clinicalprocess.healthcond.certificate.sendMessageToRecipient.v2.SendMessageToRecipientType)6 ArrayList (java.util.ArrayList)5