//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.core.jobs;
import static org.junit.Assert.assertEquals;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.collection.CollectionReader;
import org.junit.Test;
import com.google.common.io.Files;
import uk.gov.dstl.baleen.core.utils.BaleenDefaults;
public class JobBuilderTest {
@Test
public void testValid1() throws Exception{
String yaml = Files.toString(getFile("jobConfig.yaml"), StandardCharsets.UTF_8);
JobBuilder jb = new JobBuilder("Test Job", yaml);
BaleenJob job = (BaleenJob) jb.createNewPipeline();
assertEquals("Test Job", job.getName());
assertEquals(yaml, job.originalYaml());
assertEquals(yaml, job.orderedYaml());
CollectionReader cr = job.collectionReader();
assertEquals("uk.gov.dstl.baleen.schedules.Other", cr.getMetaData().getName());
assertEquals("Foo", cr.getConfigParameterValue("key"));
List<AnalysisEngine> annotators = job.annotators();
assertEquals(2, annotators.size());
AnalysisEngine ann0 = annotators.get(0);
assertEquals("uk.gov.dstl.baleen.testing.DummyTask", ann0.getMetaData().getName());
assertEquals("Foo", ann0.getConfigParameterValue("key"));
AnalysisEngine ann1 = annotators.get(1);
assertEquals("uk.gov.dstl.baleen.testing.DummyTaskParams", ann1.getMetaData().getName());
assertEquals("Bar", ann1.getConfigParameterValue("key"));
List<AnalysisEngine> consumers = job.consumers();
assertEquals(0, consumers.size());
}
@Test
public void testValid2() throws Exception{
String yaml = Files.toString(getFile("jobConfig2.yaml"), StandardCharsets.UTF_8);
JobBuilder jb = new JobBuilder("Test Job", yaml);
BaleenJob job = (BaleenJob) jb.createNewPipeline();
assertEquals("Test Job", job.getName());
assertEquals(yaml, job.originalYaml());
assertEquals(yaml, job.orderedYaml());
CollectionReader cr = job.collectionReader();
assertEquals(BaleenDefaults.DEFAULT_SCHEDULER, cr.getMetaData().getName());
assertEquals("Foo", cr.getConfigParameterValue("key"));
List<AnalysisEngine> annotators = job.annotators();
assertEquals(2, annotators.size());
AnalysisEngine ann0 = annotators.get(0);
assertEquals("uk.gov.dstl.baleen.testing.DummyTask", ann0.getMetaData().getName());
assertEquals("Foo", ann0.getConfigParameterValue("key"));
AnalysisEngine ann1 = annotators.get(1);
assertEquals("uk.gov.dstl.baleen.testing.DummyTaskParams", ann1.getMetaData().getName());
assertEquals("Bar", ann1.getConfigParameterValue("key"));
List<AnalysisEngine> consumers = job.consumers();
assertEquals(0, consumers.size());
}
@Test
public void testValid3() throws Exception{
String yaml = Files.toString(getFile("jobConfig3.yaml"), StandardCharsets.UTF_8);
JobBuilder jb = new JobBuilder("Test Job", yaml);
BaleenJob job = (BaleenJob) jb.createNewPipeline();
assertEquals("Test Job", job.getName());
assertEquals(yaml, job.originalYaml());
assertEquals(yaml, job.orderedYaml());
CollectionReader cr = job.collectionReader();
assertEquals("uk.gov.dstl.baleen.schedules.Other", cr.getMetaData().getName());
assertEquals("Foo", cr.getConfigParameterValue("key"));
List<AnalysisEngine> annotators = job.annotators();
assertEquals(2, annotators.size());
AnalysisEngine ann0 = annotators.get(0);
assertEquals("uk.gov.dstl.baleen.testing.DummyTask", ann0.getMetaData().getName());
assertEquals("Foo", ann0.getConfigParameterValue("key"));
AnalysisEngine ann1 = annotators.get(1);
assertEquals("uk.gov.dstl.baleen.testing.DummyTaskParams", ann1.getMetaData().getName());
assertEquals("Bar", ann1.getConfigParameterValue("key"));
List<AnalysisEngine> consumers = job.consumers();
assertEquals(0, consumers.size());
}
private File getFile(String fileName){
return new File(getClass().getResource(fileName).getFile());
}
}