//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.consumers.template; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import org.apache.uima.analysis_engine.AnalysisEngineProcessException; import org.apache.uima.resource.ResourceInitializationException; import org.junit.Before; import org.junit.Test; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.google.common.collect.ImmutableList; import uk.gov.dstl.baleen.annotators.templates.TemplateRecordConfiguration; import uk.gov.dstl.baleen.types.templates.TemplateRecordDefinition; public class RepeatingRecordDefinitionConfigurationCreatingConsumerTest extends AbstractTemplateRecordConfigurationCreatingConsumerTest { @Override @Before public void setup() throws IOException { super.setup(); TemplateRecordDefinition record1 = new TemplateRecordDefinition(jCas); record1.setBegin(53); record1.setEnd(158); record1.setName("record1"); record1.setRepeat(true); record1.addToIndexes(); } @Test public void testRecordDefinition() throws AnalysisEngineProcessException, ResourceInitializationException, JsonParseException, JsonMappingException, IOException { processJCas(TemplateRecordConfigurationCreatingConsumer.PARAM_OUTPUT_DIRECTORY, tempDirectory.toString()); checkDefinitions(); } private void checkDefinitions() throws IOException, JsonParseException, JsonMappingException { Path yamlFile = getDefinitionPath(); List<TemplateRecordConfiguration> definitions = readDefinitions(yamlFile); TemplateRecordConfiguration record = assertNamedRecord(definitions); assertTrue(record.isRepeat()); assertNull(record.getMinimalRepeat()); assertEquals(ImmutableList.of("Paragraph:nth-of-type(2)", "Paragraph:nth-of-type(3)"), record.getCoveredPaths()); assertDefaultRecord(definitions); Files.delete(yamlFile); } }