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()));
}
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());
}
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()));
}
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());
}
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));
}
Aggregations