Search in sources :

Example 81 with Event

use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.

the class RepeatedEventsValidationHookTest method notRepeatableEvent.

private Event notRepeatableEvent(String uid) {
    Event event = new Event();
    event.setEvent(uid);
    event.setEnrollment(ENROLLMENT_A);
    event.setProgramStage(NOT_REPEATABLE_PROGRAM_STAGE_WITH_REGISTRATION);
    return event;
}
Also used : Event(org.hisp.dhis.tracker.domain.Event)

Example 82 with Event

use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.

the class RepeatedEventsValidationHookTest method testTwoEventsInNotRepeatableProgramStageWhenOneIsInvalidArePassingValidation.

@Test
void testTwoEventsInNotRepeatableProgramStageWhenOneIsInvalidArePassingValidation() {
    Event invalidEvent = notRepeatableEvent("A");
    List<Event> events = Lists.newArrayList(invalidEvent, notRepeatableEvent("B"));
    bundle.setEvents(events);
    events.forEach(e -> bundle.setStrategy(e, TrackerImportStrategy.CREATE_AND_UPDATE));
    ValidationErrorReporter errorReporter = ValidationErrorReporter.emptyReporter();
    errorReporter.getInvalidDTOs().put(TrackerType.EVENT, Lists.newArrayList(invalidEvent.getUid()));
    validatorToTest.validate(errorReporter, ctx);
    assertTrue(errorReporter.getReportList().isEmpty());
}
Also used : Event(org.hisp.dhis.tracker.domain.Event) ValidationErrorReporter(org.hisp.dhis.tracker.report.ValidationErrorReporter) Test(org.junit.jupiter.api.Test) DhisConvenienceTest(org.hisp.dhis.DhisConvenienceTest)

Example 83 with Event

use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.

the class RepeatedEventsValidationHookTest method repeatableEvent.

private Event repeatableEvent(String uid) {
    Event event = new Event();
    event.setEvent(uid);
    event.setEnrollment(ENROLLMENT_A);
    event.setProgramStage(REPEATABLE_PROGRAM_STAGE_WITH_REGISTRATION);
    return event;
}
Also used : Event(org.hisp.dhis.tracker.domain.Event)

Example 84 with Event

use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.

the class RepeatedEventsValidationHookTest method testTwoEventInNotRepeatableProgramStageAreNotPassingValidation.

@Test
void testTwoEventInNotRepeatableProgramStageAreNotPassingValidation() {
    List<Event> events = Lists.newArrayList(notRepeatableEvent("A"), notRepeatableEvent("B"));
    bundle.setEvents(events);
    events.forEach(e -> bundle.setStrategy(e, TrackerImportStrategy.CREATE_AND_UPDATE));
    ValidationErrorReporter errorReporter = new ValidationErrorReporter(new TrackerImportValidationContext(bundle));
    validatorToTest.validate(errorReporter, ctx);
    assertEquals(2, errorReporter.getReportList().size());
    assertThat(errorReporter.getReportList().get(0).getErrorCode(), is(TrackerErrorCode.E1039));
    assertThat(errorReporter.getReportList().get(0).getTrackerType(), is(EVENT));
    assertThat(errorReporter.getReportList().get(0).getUid(), is(events.get(0).getUid()));
    assertThat(errorReporter.getReportList().get(0).getErrorMessage(), is("ProgramStage: `" + NOT_REPEATABLE_PROGRAM_STAGE_WITH_REGISTRATION + "`, is not repeatable and an event already exists."));
    assertThat(errorReporter.getReportList().get(1).getErrorCode(), is(TrackerErrorCode.E1039));
    assertThat(errorReporter.getReportList().get(1).getTrackerType(), is(EVENT));
    assertThat(errorReporter.getReportList().get(1).getUid(), is(events.get(1).getUid()));
    assertThat(errorReporter.getReportList().get(1).getErrorMessage(), is("ProgramStage: `" + NOT_REPEATABLE_PROGRAM_STAGE_WITH_REGISTRATION + "`, is not repeatable and an event already exists."));
}
Also used : TrackerImportValidationContext(org.hisp.dhis.tracker.validation.TrackerImportValidationContext) Event(org.hisp.dhis.tracker.domain.Event) ValidationErrorReporter(org.hisp.dhis.tracker.report.ValidationErrorReporter) Test(org.junit.jupiter.api.Test) DhisConvenienceTest(org.hisp.dhis.DhisConvenienceTest)

Example 85 with Event

use of org.hisp.dhis.tracker.domain.Event in project dhis2-core by dhis2.

the class RepeatedEventsValidationHookTest method testSingleEventIsPassingValidation.

@Test
void testSingleEventIsPassingValidation() {
    List<Event> events = Lists.newArrayList(notRepeatableEvent("A"));
    bundle.setEvents(events);
    events.forEach(e -> bundle.setStrategy(e, TrackerImportStrategy.CREATE_AND_UPDATE));
    ValidationErrorReporter errorReporter = ValidationErrorReporter.emptyReporter();
    validatorToTest.validate(errorReporter, ctx);
    assertTrue(errorReporter.getReportList().isEmpty());
}
Also used : Event(org.hisp.dhis.tracker.domain.Event) ValidationErrorReporter(org.hisp.dhis.tracker.report.ValidationErrorReporter) Test(org.junit.jupiter.api.Test) DhisConvenienceTest(org.hisp.dhis.DhisConvenienceTest)

Aggregations

Event (org.hisp.dhis.tracker.domain.Event)192 Test (org.junit.jupiter.api.Test)153 ValidationErrorReporter (org.hisp.dhis.tracker.report.ValidationErrorReporter)114 ProgramStage (org.hisp.dhis.program.ProgramStage)68 DhisConvenienceTest (org.hisp.dhis.DhisConvenienceTest)64 TrackerBundle (org.hisp.dhis.tracker.bundle.TrackerBundle)53 Enrollment (org.hisp.dhis.tracker.domain.Enrollment)43 TrackedEntity (org.hisp.dhis.tracker.domain.TrackedEntity)41 Mockito.when (org.mockito.Mockito.when)38 Assertions.assertTrue (org.junit.jupiter.api.Assertions.assertTrue)37 Assertions.assertFalse (org.junit.jupiter.api.Assertions.assertFalse)36 DataElement (org.hisp.dhis.dataelement.DataElement)35 Program (org.hisp.dhis.program.Program)35 ProgramInstance (org.hisp.dhis.program.ProgramInstance)35 DataValue (org.hisp.dhis.tracker.domain.DataValue)35 TrackerPreheat (org.hisp.dhis.tracker.preheat.TrackerPreheat)35 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)34 TrackerErrorCode (org.hisp.dhis.tracker.report.TrackerErrorCode)33 CodeGenerator (org.hisp.dhis.common.CodeGenerator)32 BeforeEach (org.junit.jupiter.api.BeforeEach)32