package gov.samhsa.consent2share.infrastructure.report; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.HashMap; import java.util.Map; import java.util.Optional; import org.junit.Before; import org.junit.Test; public class ReportPropsTest { private static final String VALUE = "value"; private static final String KEY = "key"; private static final String DATASOURCE_KEY = "datasourceKey"; private static final String TEMPLATE_LOCATION = "templateLocation/"; private static final String BASE_CLASSPATH_SQL_SCRIPT_RESOURCES = "BASE_CLASSPATH_SQL_SCRIPT_RESOURCES"; private static final String SQL_SCRIPT_FILE_NAME = "SQL_SCRIPT_FILE_NAME"; private static final String name = "name"; private static final Optional<String> templateLocation = Optional .of(TEMPLATE_LOCATION); private static final Optional<String> datasourceKey = Optional .of(DATASOURCE_KEY); private static Optional<String> baseClasspathSqlScriptResources = Optional .of(BASE_CLASSPATH_SQL_SCRIPT_RESOURCES); private static final Optional<String> sqlScriptFileName = Optional .of(SQL_SCRIPT_FILE_NAME); private final Map<String, String> map = new HashMap<>(); private final Optional<Map<String, String>> imageMapping = Optional.of(map); private final ReportProps sut = new ReportProps(name, templateLocation, datasourceKey, imageMapping, baseClasspathSqlScriptResources, sqlScriptFileName); @Before public void setUp() throws Exception { map.put(KEY, VALUE); } @Test public void testEqualsObject() { // Arrange final ReportProps other = new ReportProps(name, Optional.empty(), Optional.empty(), Optional.empty(), baseClasspathSqlScriptResources, sqlScriptFileName); final ReportProps other2 = new ReportProps(name + "others", Optional.empty(), Optional.empty(), Optional.empty(), baseClasspathSqlScriptResources, sqlScriptFileName); // Act final boolean equals1 = sut.equals(other); final boolean equals2 = sut.equals(other2); // Assert assertTrue(equals1); assertFalse(equals2); } @Test public void testGetDatasourceKey() { assertEquals(DATASOURCE_KEY, sut.getDatasourceKey()); } @Test public void testGetImageMapping() { assertTrue(sut.getImageMapping().isPresent()); assertEquals(1, sut.getImageMapping().get().size()); assertEquals(KEY, sut.getImageMapping().get().keySet().stream() .findFirst().get()); assertEquals(VALUE, sut.getImageMapping().get().get(KEY)); } @Test public void testGetName() { assertEquals(name, sut.getName()); } @Test public void testGetTemplateUrl() { assertTrue(sut.getTemplateUrl().startsWith(TEMPLATE_LOCATION)); assertTrue(sut.getTemplateUrl().contains(name)); assertTrue(sut.getTemplateUrl().endsWith( ReportProps.REPORT_TEMPLATE_FORMAT)); } @Test public void testHashCode() { assertEquals(name.hashCode(), sut.hashCode()); } }