//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.resources; import static org.junit.Assert.*; import opennlp.tools.sentdetect.SentenceModel; import opennlp.tools.tokenize.TokenizerModel; import opennlp.tools.util.model.BaseModel; import org.junit.Test; import uk.gov.dstl.baleen.annotators.language.OpenNLP; import uk.gov.dstl.baleen.exceptions.BaleenException; public class SharedOpenNLPModelTest { @Test public void testLoad() throws Exception{ SharedOpenNLPModel m = new SharedOpenNLPModel(); m.loadModel(TokenizerModel.class, OpenNLP.class.getResourceAsStream("en_token.bin")); BaseModel bm = m.getModel(); assertNotNull(bm); assertTrue(bm instanceof TokenizerModel); assertEquals("en", bm.getLanguage()); //Trying to load a different model shouldn't change the resource m.loadModel(SentenceModel.class, OpenNLP.class.getResourceAsStream("en_sent.bin")); assertEquals(bm, m.getModel()); m.doDestroy(); } @Test public void testLoadException() throws Exception{ SharedOpenNLPModel m = new SharedOpenNLPModel(); try{ m.loadModel(SentenceModel.class, OpenNLP.class.getResourceAsStream("en_token.bin")); fail("Should have thrown an exception on loading invalid class"); }catch(BaleenException be){ // Expected exception } try{ m.loadModel(TokenizerModel.class, OpenNLP.class.getResourceAsStream("missing.bin")); fail("Should have thrown an exception on loading invalid file"); }catch(BaleenException be){ // Expected exception } } }