package org.openmrs.module.reporting.template; import com.github.jknack.handlebars.Options; import org.junit.Test; import org.openmrs.Concept; import org.openmrs.ConceptName; import org.openmrs.api.ConceptService; import org.openmrs.messagesource.MessageSourceService; import org.openmrs.module.reporting.common.DateUtil; import org.openmrs.test.BaseModuleContextSensitiveTest; import java.util.Date; import java.util.Locale; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; /** * */ public class HandlebarsHelpersTest extends BaseModuleContextSensitiveTest { @Test public void testMessage() throws Exception { String prefix = "ui.i18n.Location."; String uuid = "abc-123-uuid"; String expected = "translated"; MessageSourceService mss = mock(MessageSourceService.class); when(mss.getMessage(prefix + uuid)).thenReturn(expected); Options options = mock(Options.class); when(options.hash("prefix", "")).thenReturn(prefix); when(options.hash("suffix", "")).thenReturn(""); HandlebarsHelpers helpers = new HandlebarsHelpers(mss, null); CharSequence message = helpers.message("abc-123-uuid", options); assertThat(message.toString(), is(expected)); } @Test public void testConceptName() throws Exception { String source = "PIH"; String code = "ClinicalVisit"; String expected = "Clinical Visit"; Concept concept = new Concept(); concept.addName(new ConceptName(expected, Locale.ENGLISH)); ConceptService conceptService = mock(ConceptService.class); when(conceptService.getConceptByMapping(code, source)).thenReturn(concept); HandlebarsHelpers helpers = new HandlebarsHelpers(null, conceptService); CharSequence conceptName = helpers.conceptName(source + ":" + code); assertThat(conceptName.toString(), is(expected)); } @Test public void testFormatDate() throws Exception { Date date = DateUtil.parseYmdhms("2014-03-24 18:09:12"); HandlebarsHelpers helpers = new HandlebarsHelpers(null, null); assertThat(helpers.formatDate(date, "yyyyMMdd").toString(), is("20140324")); assertThat(helpers.formatDate(date, "HHmm").toString(), is("1809")); assertThat(helpers.formatDate(null, "yyyyMMdd").toString(), is("")); } }