package ca.uhn.fhir.jpa.dao; import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.AfterClass; import org.junit.Test; import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.RuntimeResourceDefinition; import ca.uhn.fhir.model.dstu2.composite.PeriodDt; import ca.uhn.fhir.model.dstu2.resource.Condition; import ca.uhn.fhir.model.dstu2.resource.Observation; import ca.uhn.fhir.model.primitive.DateTimeDt; import ca.uhn.fhir.rest.param.ReferenceParam; import ca.uhn.fhir.util.TestUtil; public class BaseHapiFhirDaoTest extends BaseJpaTest { private static FhirContext ourCtx = FhirContext.forDstu2(); @AfterClass public static void afterClassClearContext() { TestUtil.clearAllStaticFieldsForUnitTest(); } @Test public void testTranslateMatchUrl() { RuntimeResourceDefinition resourceDef = ourCtx.getResourceDefinition(Condition.class); IDao dao = mock(IDao.class); when(dao.getSearchParamByName(any(RuntimeResourceDefinition.class), eq("patient"))).thenReturn(resourceDef.getSearchParam("patient")); SearchParameterMap match = BaseHapiFhirDao.translateMatchUrl(dao, ourCtx, "Condition?patient=304&_lastUpdated=>2011-01-01T11:12:21.0000Z", resourceDef); assertEquals("2011-01-01T11:12:21.0000Z", match.getLastUpdated().getLowerBound().getValueAsString()); assertEquals(ReferenceParam.class, match.get("patient").get(0).get(0).getClass()); assertEquals("304", ((ReferenceParam)match.get("patient").get(0).get(0)).getIdPart()); Observation observation = new Observation(); PeriodDt period = new PeriodDt(); period.setStart(new DateTimeDt("2011-01-02T11:22:33Z")); period.setEnd(new DateTimeDt("2011-01-02T11:33:33Z")); observation.setEffective(period); } @Test public void testNormalizeString() { assertEquals("TEST TEST", BaseHapiFhirDao.normalizeString("TEST teSt")); assertEquals("AEIØU", BaseHapiFhirDao.normalizeString("åéîøü")); assertEquals("杨浩", BaseHapiFhirDao.normalizeString("杨浩")); } @Override protected FhirContext getContext() { return ourCtx; } }