//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.resources; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.Collections; import org.apache.uima.fit.factory.ExternalResourceFactory; import org.apache.uima.resource.ExternalResourceDescription; import org.junit.After; import org.junit.Before; import org.junit.Test; import uk.gov.dstl.baleen.resources.SharedStopwordResource.StopwordList; public class SharedStopwordResourceTest { SharedStopwordResource ssr; @Before public void beforeTest() throws Exception{ ExternalResourceDescription erd = ExternalResourceFactory.createExternalResourceDescription("stopwords", SharedStopwordResource.class); ssr = new SharedStopwordResource(); ssr.initialize(erd.getResourceSpecifier(), Collections.emptyMap()); } @After public void afterTest() throws Exception{ ssr.destroy(); ssr = null; } @Test public void testDefault() throws IOException{ assertTrue(ssr.getStopwords().contains("the")); assertTrue(ssr.getStopwords(StopwordList.DEFAULT).contains("the")); } @Test public void testSmart() throws IOException{ assertTrue(ssr.getStopwords(StopwordList.SMART).contains("the")); } @Test public void testFox() throws IOException{ assertTrue(ssr.getStopwords(StopwordList.FOX).contains("the")); } @Test public void testRanksNl() throws IOException{ assertTrue(ssr.getStopwords(StopwordList.RANKS_NL).contains("the")); } @Test public void testLong() throws IOException{ assertTrue(ssr.getStopwords(StopwordList.LONG).contains("the")); } @Test public void testMySql() throws IOException{ assertTrue(ssr.getStopwords(StopwordList.MYSQL).contains("the")); } @Test public void testCustom() throws IOException{ Collection<String> words = ssr.getStopwords(new File(getClass().getResource("exampleStoplist.txt").getPath())); assertTrue(words.contains("the")); assertFalse(words.contains("comment")); assertTrue(words.contains("test")); } @Test public void testBadCustom() throws IOException{ try{ ssr.getStopwords(new File("missing.txt")); fail("Expected exception not thrown"); }catch(IOException ioe){ //Do nothing, expected exception for missing file } } }