//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.resources.gazetteer; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.File; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.BeforeClass; import org.junit.Test; import uk.gov.dstl.baleen.exceptions.BaleenException; import uk.gov.dstl.baleen.resources.SharedFileResource; public class FileGazetteerTest { private static final String HELLO = "hello"; private static SharedFileResource sfr = new SharedFileResource(); private static Map<String, Object> config; @BeforeClass public static void beforeClass(){ File gazetteerFile = new File(FileGazetteerTest.class.getResource("gazetteer.txt").getPath()); config = new HashMap<>(); config.put(FileGazetteer.CONFIG_FILE, gazetteerFile.getPath()); } @Test public void testGetValues() throws BaleenException{ FileGazetteer gaz = new FileGazetteer(); gaz.init(sfr, config); List<String> values = Arrays.asList(gaz.getValues()); assertEquals(8, values.size()); assertTrue(values.contains("guten tag")); assertTrue(values.contains(HELLO)); gaz.destroy(); } @Test public void testHasValue() throws BaleenException{ FileGazetteer gaz = new FileGazetteer(); gaz.init(sfr, config); assertTrue(gaz.hasValue("howdy")); assertTrue(gaz.hasValue("hej")); assertTrue(gaz.hasValue("HEJ")); assertFalse(gaz.hasValue("good morning")); gaz.destroy(); } @Test public void testHasValueCaseSensitive() throws BaleenException{ FileGazetteer gaz = new FileGazetteer(); Map<String, Object> csConfig = new HashMap<>(); csConfig.putAll(config); csConfig.put("caseSensitive", true); gaz.init(sfr, csConfig); assertTrue(gaz.hasValue("hej")); assertFalse(gaz.hasValue("HEJ")); gaz.destroy(); } @Test public void testGetAliases() throws BaleenException{ FileGazetteer gaz = new FileGazetteer(); gaz.init(sfr, config); String[] helloAliases = gaz.getAliases(HELLO); String[] hiAliases = gaz.getAliases("hi"); assertEquals(0, helloAliases.length); assertEquals(2, hiAliases.length); List<String> hiAliasesList = Arrays.asList(hiAliases); assertTrue(hiAliasesList.contains("heya")); assertTrue(hiAliasesList.contains("howdy")); gaz.destroy(); } @Test public void testGetAdditionalData() throws BaleenException{ FileGazetteer gaz = new FileGazetteer(); gaz.init(sfr, config); assertEquals(Collections.emptyMap(), gaz.getAdditionalData(HELLO)); gaz.destroy(); } }