//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.resources.gazetteer; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.uima.resource.ResourceInitializationException; import org.apache.uima.resource.impl.CustomResourceSpecifier_impl; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import uk.gov.dstl.baleen.exceptions.BaleenException; import uk.gov.dstl.baleen.resources.SharedCountryResource; public class CountryGazetteerTest { private static final String AFGHANISTAN = "islamic republic of afghanistan"; private static final String JAMAICA = "Jamaica"; private static SharedCountryResource scr; @BeforeClass public static void beforeClass() throws ResourceInitializationException{ scr = new SharedCountryResource(); scr.initialize(new CustomResourceSpecifier_impl(), Collections.emptyMap()); } @AfterClass public static void afterClass(){ scr.destroy(); } @Test public void test() throws BaleenException{ CountryGazetteer gaz = new CountryGazetteer(); gaz.init(scr, Collections.emptyMap()); assertTrue(gaz.getValues().length > 0); List<String> vals = Arrays.asList(gaz.getValues()); assertTrue(vals.contains("jamaica")); assertTrue(vals.contains(AFGHANISTAN)); assertNotNull(gaz.getAdditionalData(JAMAICA)); assertTrue(gaz.getAdditionalData("FOO").isEmpty()); } @Test public void testCaseSensitive() throws BaleenException{ CountryGazetteer gaz = new CountryGazetteer(); Map<String, Object> config = new HashMap<>(); config.put(CountryGazetteer.CONFIG_CASE_SENSITIVE, true); gaz.init(scr, config); assertTrue(gaz.getValues().length > 0); List<String> vals = Arrays.asList(gaz.getValues()); assertTrue(vals.contains(JAMAICA)); assertTrue(vals.contains("Islamic Republic of Afghanistan")); assertNotNull(gaz.getAdditionalData(JAMAICA)); assertTrue(gaz.getAdditionalData("jamaica").isEmpty()); assertTrue(gaz.getAdditionalData("FOO").isEmpty()); } }