/*
* Copyright (c) 2014. The Trustees of Indiana University.
*
* This version of the code is licensed under the MPL 2.0 Open Source license with additional
* healthcare disclaimer. If the user is an entity intending to commercialize any application
* that uses this code in a for-profit venture, please contact the copyright holder.
*/
package com.muzima.model.observation;
import com.muzima.api.model.Concept;
import com.muzima.api.model.ConceptName;
import com.muzima.api.model.Observation;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class EncounterWithObservationsTest {
@Test
public void shouldOrderTheObservationsByConceptName() throws Exception {
EncounterWithObservations encounterWithObservations = new EncounterWithObservations();
Observation observation1 = getObservation("o1", "c1", "Weight");
Observation observation2 = getObservation("o2", "c2", "Blood Type");
encounterWithObservations.addObservation(observation1);
encounterWithObservations.addObservation(observation2);
List<Observation> expected = new ArrayList<Observation>();
expected.add(observation2);
expected.add(observation1);
assertThat(encounterWithObservations.getObservations(), is(expected));
}
@Test
public void shouldOrderObservationByConceptNameThenByDate() {
EncounterWithObservations encounterWithObservations = new EncounterWithObservations();
Observation observation1 = getObservation("o1", "c1", "Weight", new Date(1));
Observation observation2 = getObservation("o2", "c2", "Blood_Type", new Date(2));
Observation observation3 = getObservation("o3", "c2", "Blood_Type", new Date(1));
encounterWithObservations.addObservation(observation1);
encounterWithObservations.addObservation(observation2);
encounterWithObservations.addObservation(observation3);
List<Observation> expected = new ArrayList<Observation>();
expected.add(observation2);
expected.add(observation3);
expected.add(observation1);
assertThat(encounterWithObservations.getObservations(), is(expected));
}
private Observation getObservation(String observationUuid, final String conceptUuid, final String conceptName) {
return getObservation(observationUuid, conceptUuid, conceptName, new Date());
}
private Observation getObservation(String observationUuid, final String conceptUuid, final String conceptName, Date date) {
Observation observation = new Observation();
observation.setUuid(observationUuid);
Concept concept = new Concept();
concept.addName(new ConceptName(){{
setUuid(conceptUuid);
setName(conceptName);
}});
observation.setObservationDatetime(date);
observation.setConcept(concept);
return observation;
}
}