package ch.elexis.core.findings;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.time.LocalDateTime;
import java.time.Month;
import java.util.List;
import java.util.Optional;
import org.junit.Before;
import org.junit.Test;
import ch.elexis.core.findings.test.AllTests;
public class EncounterTest {
@Before
public void beforeTest(){
AllTests.deleteAllFindings();
List<IFinding> findings = FindingsServiceComponent.getService().getPatientsFindings(AllTests.PATIENT_ID,
IFinding.class);
assertTrue(findings.isEmpty());
}
@Test
public void manyEncounters() {
IFindingsFactory factory = FindingsServiceComponent.getService().getFindingsFactory();
assertNotNull(factory);
// create many
for (int i = 0; i < 1000; i++) {
IEncounter encounter = factory.createEncounter();
assertNotNull(encounter);
// set the properties
encounter.setConsultationId(AllTests.CONSULTATION_ID);
encounter.setPatientId(AllTests.PATIENT_ID);
encounter.setStartTime(LocalDateTime.of(2016, Month.DECEMBER, 29, 9, 56));
encounter.setText("Encounter " + i);
FindingsServiceComponent.getService().saveFinding(encounter);
}
// test many
List<IFinding> findings = FindingsServiceComponent.getService().getPatientsFindings(AllTests.PATIENT_ID,
IEncounter.class);
assertEquals(1000, findings.size());
for (IFinding iFinding : findings) {
assertTrue(iFinding instanceof IEncounter);
Optional<LocalDateTime> startTime = ((IEncounter) iFinding).getStartTime();
assertTrue(startTime.isPresent());
assertEquals(LocalDateTime.of(2016, Month.DECEMBER, 29, 9, 56), startTime.get());
}
}
@Test
public void getProperties(){
IFindingsFactory factory = FindingsServiceComponent.getService().getFindingsFactory();
assertNotNull(factory);
IEncounter encounter = factory.createEncounter();
assertNotNull(encounter);
encounter.setConsultationId(AllTests.CONSULTATION_ID);
encounter.setPatientId(AllTests.PATIENT_ID);
LocalDateTime effectiveTime = LocalDateTime.of(2016, Month.SEPTEMBER, 12, 9, 33);
encounter.setStartTime(effectiveTime);
FindingsServiceComponent.getService().saveFinding(encounter);
List<IFinding> encounters = FindingsServiceComponent.getService()
.getConsultationsFindings(AllTests.CONSULTATION_ID, IEncounter.class);
assertNotNull(encounters);
assertFalse(encounters.isEmpty());
assertEquals(1, encounters.size());
IEncounter readEncounter = (IEncounter) encounters.get(0);
assertEquals(AllTests.CONSULTATION_ID,
readEncounter.getConsultationId());
assertTrue(readEncounter.getStartTime().isPresent());
assertEquals(effectiveTime, readEncounter.getStartTime().get());
}
}