Search in sources :

Example 51 with RDCF

use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.

the class EventFacadeEjbTest method testCreateWithoutUuid.

@Test
public void testCreateWithoutUuid() {
    RDCF rdcf = creator.createRDCF();
    EventDto event = new EventDto();
    event.setEventStatus(EventStatus.EVENT);
    event.setReportDateTime(new Date());
    event.setReportingUser(creator.createUser(rdcf, UserRole.SURVEILLANCE_OFFICER).toReference());
    event.setEventTitle("Test event");
    event.setEventLocation(new LocationDto());
    EventDto savedEvent = getEventFacade().save(event);
    MatcherAssert.assertThat(savedEvent.getUuid(), not(isEmptyOrNullString()));
    MatcherAssert.assertThat(savedEvent.getEventLocation().getUuid(), not(isEmptyOrNullString()));
}
Also used : RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) EventDto(de.symeda.sormas.api.event.EventDto) Date(java.util.Date) LocalDate(java.time.LocalDate) LocationDto(de.symeda.sormas.api.location.LocationDto) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Example 52 with RDCF

use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.

the class TaskFacadeEjbTest method testArchivedTaskNotGettingTransfered.

@Test
public void testArchivedTaskNotGettingTransfered() {
    RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility");
    UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
    PersonDto cazePerson = creator.createPerson("Case", "Person");
    CaseDataDto caze = creator.createCase(user.toReference(), cazePerson.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
    PersonDto contactPerson = creator.createPerson("Contact", "Person");
    ContactDto contact = creator.createContact(user.toReference(), user.toReference(), contactPerson.toReference(), caze, new Date(), new Date(), null);
    EventDto event = creator.createEvent(EventStatus.SIGNAL, EventInvestigationStatus.PENDING, "Title", "Description", "First", "Name", "12345", TypeOfPlace.PUBLIC_PLACE, DateHelper.subtractDays(new Date(), 1), new Date(), user.toReference(), user.toReference(), Disease.EVD, rdcf.district);
    creator.createTask(TaskContext.GENERAL, TaskType.OTHER, TaskStatus.PENDING, null, null, null, DateHelper.addDays(new Date(), 1), user.toReference());
    creator.createTask(TaskContext.CASE, TaskType.OTHER, TaskStatus.PENDING, caze.toReference(), null, null, DateHelper.addDays(new Date(), 1), user.toReference());
    creator.createTask(TaskContext.CONTACT, TaskType.OTHER, TaskStatus.PENDING, null, contact.toReference(), null, DateHelper.addDays(new Date(), 1), user.toReference());
    creator.createTask(TaskContext.EVENT, TaskType.OTHER, TaskStatus.PENDING, null, null, event.toReference(), DateHelper.addDays(new Date(), 1), user.toReference());
    // getAllActiveTasks and getAllUuids should return length 4+1+1 (case investigation & contact investigation)
    assertEquals(6, getTaskFacade().getAllActiveTasksAfter(null).size());
    assertEquals(6, getTaskFacade().getAllActiveUuids().size());
    getCaseFacade().archive(caze.getUuid(), null);
    getEventFacade().archive(event.getUuid(), null);
    // getAllActiveTasks and getAllUuids should return length 1
    assertEquals(1, getTaskFacade().getAllActiveTasksAfter(null).size());
    assertEquals(1, getTaskFacade().getAllActiveUuids().size());
    getCaseFacade().dearchive(Collections.singletonList(caze.getUuid()), null);
    getEventFacade().dearchive(Collections.singletonList(event.getUuid()), null);
    // getAllActiveTasks and getAllUuids should return length 5 + 1 (contact investigation)
    assertEquals(6, getTaskFacade().getAllActiveTasksAfter(null).size());
    assertEquals(6, getTaskFacade().getAllActiveUuids().size());
}
Also used : RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) CaseDataDto(de.symeda.sormas.api.caze.CaseDataDto) PersonDto(de.symeda.sormas.api.person.PersonDto) UserDto(de.symeda.sormas.api.user.UserDto) ContactDto(de.symeda.sormas.api.contact.ContactDto) EventDto(de.symeda.sormas.api.event.EventDto) Date(java.util.Date) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Example 53 with RDCF

use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.

the class TaskFacadeEjbTest method testFilterTasksByUserJurisdiction.

@Test
public void testFilterTasksByUserJurisdiction() {
    RDCF rdcf1 = creator.createRDCF("Region 1", "District 1", "Community 1", "Facility 1", "Point of entry 1");
    // 1. Region level user without a task
    UserDto survSup = creator.createUser(rdcf1.region.getUuid(), null, null, "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
    loginWith(survSup);
    assertThat(getTaskFacade().getIndexList(null, 0, 100, null), is(empty()));
    // 2a. District level user with task
    UserDto survOff = creator.createUser(rdcf1.region.getUuid(), rdcf1.district.getUuid(), null, "Surv", "Off", UserRole.SURVEILLANCE_OFFICER);
    loginWith(survOff);
    assertThat(getTaskFacade().getIndexList(null, 0, 100, null), is(empty()));
    CaseDataDto caze = creator.createCase(survOff.toReference(), creator.createPerson("First", "Last").toReference(), rdcf1);
    creator.createTask(TaskContext.CASE, TaskType.CASE_INVESTIGATION, TaskStatus.PENDING, caze.toReference(), null, null, new Date(), survOff.toReference());
    assertThat(getTaskFacade().getIndexList(null, 0, 100, null), is(not(empty())));
    // 2b. Region user now sees tasks from district level
    loginWith(survSup);
    assertThat(getTaskFacade().getIndexList(null, 0, 100, null), is(not(empty())));
    // 3. Community level user does not see task of district level user
    UserDto commInf = creator.createUser(rdcf1.region.getUuid(), rdcf1.district.getUuid(), rdcf1.community.getUuid(), null, "Comm", "Inf", UserRole.COMMUNITY_INFORMANT);
    loginWith(commInf);
    assertThat(getTaskFacade().getIndexList(null, 0, 100, null), is(empty()));
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, 2019);
    List<TaskDto> activeTasks = getTaskFacade().getAllActiveTasksAfter(calendar.getTime());
    assertThat(activeTasks, is(empty()));
    List<TaskDto> tasksByCase = getTaskFacade().getAllByCase(caze.toReference());
    assertThat(tasksByCase, is(empty()));
}
Also used : RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) CaseDataDto(de.symeda.sormas.api.caze.CaseDataDto) UserDto(de.symeda.sormas.api.user.UserDto) Calendar(java.util.Calendar) TaskDto(de.symeda.sormas.api.task.TaskDto) Date(java.util.Date) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Example 54 with RDCF

use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.

the class TaskFacadeEjbTest method testGetAllActiveTasksBatched.

@Test
public void testGetAllActiveTasksBatched() {
    RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility");
    UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR);
    PersonDto cazePerson = creator.createPerson("Case", "Person");
    CaseDataDto caze = creator.createCase(user.toReference(), cazePerson.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
    PersonDto contactPerson = creator.createPerson("Contact", "Person");
    ContactDto contact = creator.createContact(user.toReference(), user.toReference(), contactPerson.toReference(), caze, new Date(), new Date(), null);
    EventDto event = creator.createEvent(EventStatus.SIGNAL, EventInvestigationStatus.PENDING, "Title", "Description", "First", "Name", "12345", TypeOfPlace.PUBLIC_PLACE, DateHelper.subtractDays(new Date(), 1), new Date(), user.toReference(), user.toReference(), Disease.EVD, rdcf.district);
    creator.createTask(TaskContext.GENERAL, TaskType.OTHER, TaskStatus.PENDING, null, null, null, DateHelper.addDays(new Date(), 1), user.toReference());
    creator.createTask(TaskContext.CASE, TaskType.OTHER, TaskStatus.PENDING, caze.toReference(), null, null, DateHelper.addDays(new Date(), 1), user.toReference());
    creator.createTask(TaskContext.CONTACT, TaskType.OTHER, TaskStatus.PENDING, null, contact.toReference(), null, DateHelper.addDays(new Date(), 1), user.toReference());
    creator.createTask(TaskContext.EVENT, TaskType.OTHER, TaskStatus.PENDING, null, null, event.toReference(), DateHelper.addDays(new Date(), 1), user.toReference());
    // getAllActiveTasks batched
    List<TaskDto> allActiveTasksAfterBatched = getTaskFacade().getAllActiveTasksAfter(null, 3, null);
    assertEquals(3, allActiveTasksAfterBatched.size());
    assertTrue(allActiveTasksAfterBatched.get(0).getChangeDate().getTime() <= allActiveTasksAfterBatched.get(1).getChangeDate().getTime());
    assertTrue(allActiveTasksAfterBatched.get(1).getChangeDate().getTime() <= allActiveTasksAfterBatched.get(2).getChangeDate().getTime());
    List<TaskDto> allActiveTasksAfterLargeBatch = getTaskFacade().getAllActiveTasksAfter(null, 10, null);
    assertEquals(6, allActiveTasksAfterLargeBatch.size());
    TaskDto taskRead = allActiveTasksAfterBatched.get(2);
    List<TaskDto> allActiveTasksAfterBatchedOneMillisecondBefore = getTaskFacade().getAllActiveTasksAfter(new Date(taskRead.getChangeDate().getTime() - 1L), 10, EntityDto.NO_LAST_SYNCED_UUID);
    assertEquals(4, allActiveTasksAfterBatchedOneMillisecondBefore.size());
    // getAllActiveTasks batched with Uuid
    List<TaskDto> allActiveTasksAfterBatchedSameTime = getTaskFacade().getAllActiveTasksAfter(taskRead.getChangeDate(), 10, "AAAAAA-AAAAAA-AAAAAA-AAAAAA");
    assertEquals(4, allActiveTasksAfterBatchedSameTime.size());
    List<TaskDto> allActiveTasksAfterBatchedSameTimeSameUuid = getTaskFacade().getAllActiveTasksAfter(taskRead.getChangeDate(), 10, taskRead.getUuid());
    assertEquals(3, allActiveTasksAfterBatchedSameTimeSameUuid.size());
    TaskService taskService = getBean(TaskService.class);
    Task byUuid = taskService.getByUuid(taskRead.getUuid());
    Task taskWithNanoseconds = new Task();
    Timestamp changeDate = new Timestamp(taskRead.getChangeDate().getTime());
    changeDate.setNanos(changeDate.getNanos() + 150000);
    taskWithNanoseconds.setChangeDate(changeDate);
    taskWithNanoseconds.setUuid("ZZZZZZ-ZZZZZZ-ZZZZZZ-ZZZZZZ");
    taskWithNanoseconds.setId(null);
    taskWithNanoseconds.setTaskContext(byUuid.getTaskContext());
    taskWithNanoseconds.setTaskType(byUuid.getTaskType());
    taskWithNanoseconds.setCaze(byUuid.getCaze());
    taskWithNanoseconds.setContact(byUuid.getContact());
    taskWithNanoseconds.setTaskStatus(byUuid.getTaskStatus());
    taskWithNanoseconds.setCreatorUser(byUuid.getCreatorUser());
    taskWithNanoseconds.setAssigneeUser(byUuid.getAssigneeUser());
    taskService.ensurePersisted(taskWithNanoseconds);
    assertEquals(changeDate.getTime(), taskService.getByUuid("ZZZZZZ-ZZZZZZ-ZZZZZZ-ZZZZZZ").getChangeDate().getTime());
    List<TaskDto> allAfterSeveralResultsSameTime = getTaskFacade().getAllActiveTasksAfter(taskRead.getChangeDate(), 10, taskRead.getUuid());
    assertEquals(4, allAfterSeveralResultsSameTime.size());
    List<TaskDto> allAfterSeveralResultsSameTimeWithUuid = getTaskFacade().getAllActiveTasksAfter(taskRead.getChangeDate(), 10, "AAAAAA-AAAAAA-AAAAAA-AAAAAA");
    assertEquals(5, allAfterSeveralResultsSameTimeWithUuid.size());
    assertEquals(taskRead.getUuid(), allAfterSeveralResultsSameTimeWithUuid.get(0).getUuid());
    assertEquals("ZZZZZZ-ZZZZZZ-ZZZZZZ-ZZZZZZ", allAfterSeveralResultsSameTimeWithUuid.get(1).getUuid());
}
Also used : RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) CaseDataDto(de.symeda.sormas.api.caze.CaseDataDto) PersonDto(de.symeda.sormas.api.person.PersonDto) UserDto(de.symeda.sormas.api.user.UserDto) ContactDto(de.symeda.sormas.api.contact.ContactDto) EventDto(de.symeda.sormas.api.event.EventDto) TaskDto(de.symeda.sormas.api.task.TaskDto) Timestamp(java.sql.Timestamp) Date(java.util.Date) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Example 55 with RDCF

use of de.symeda.sormas.backend.TestDataCreator.RDCF in project SORMAS-Project by hzi-braunschweig.

the class CaseFacadeEjbTest method testCountCasesWithMisingContactInformation.

@Test
public void testCountCasesWithMisingContactInformation() {
    RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility");
    RDCFEntities newRDCF = creator.createRDCFEntities("New Region", "New District", "New Community", "New Facility");
    UserDto user = useSurveillanceOfficerLogin(rdcf);
    PersonDto cazePerson = creator.createPerson("Case", "Person");
    CaseDataDto caze = creator.createCase(user.toReference(), cazePerson.toReference(), Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf);
    Assert.assertEquals(1, getCaseFacade().countCasesWithMissingContactInformation(Arrays.asList(caze.getUuid()), MessageType.SMS));
    cazePerson.setPhone("40742140797");
    getPersonFacade().savePerson(cazePerson);
    Assert.assertEquals(0, getCaseFacade().countCasesWithMissingContactInformation(Arrays.asList(caze.getUuid()), MessageType.SMS));
}
Also used : RDCFEntities(de.symeda.sormas.backend.TestDataCreator.RDCFEntities) RDCF(de.symeda.sormas.backend.TestDataCreator.RDCF) CaseDataDto(de.symeda.sormas.api.caze.CaseDataDto) CasePersonDto(de.symeda.sormas.api.caze.CasePersonDto) PersonDto(de.symeda.sormas.api.person.PersonDto) UserDto(de.symeda.sormas.api.user.UserDto) Date(java.util.Date) LocalDate(java.time.LocalDate) AbstractBeanTest(de.symeda.sormas.backend.AbstractBeanTest) Test(org.junit.Test)

Aggregations

RDCF (de.symeda.sormas.backend.TestDataCreator.RDCF)75 AbstractBeanTest (de.symeda.sormas.backend.AbstractBeanTest)74 Test (org.junit.Test)74 UserDto (de.symeda.sormas.api.user.UserDto)53 Date (java.util.Date)43 CaseDataDto (de.symeda.sormas.api.caze.CaseDataDto)42 PersonDto (de.symeda.sormas.api.person.PersonDto)33 LocalDate (java.time.LocalDate)33 UserReferenceDto (de.symeda.sormas.api.user.UserReferenceDto)19 EventDto (de.symeda.sormas.api.event.EventDto)18 ContactDto (de.symeda.sormas.api.contact.ContactDto)17 CasePersonDto (de.symeda.sormas.api.caze.CasePersonDto)13 Matchers.isEmptyOrNullString (org.hamcrest.Matchers.isEmptyOrNullString)12 PersonReferenceDto (de.symeda.sormas.api.person.PersonReferenceDto)11 CaseCriteria (de.symeda.sormas.api.caze.CaseCriteria)10 RegionReferenceDto (de.symeda.sormas.api.infrastructure.region.RegionReferenceDto)10 TaskDto (de.symeda.sormas.api.task.TaskDto)9 CaseIndexDto (de.symeda.sormas.api.caze.CaseIndexDto)8 MapContactDto (de.symeda.sormas.api.contact.MapContactDto)8 SimilarContactDto (de.symeda.sormas.api.contact.SimilarContactDto)8