package org.jvalue.ods.rest; import com.fasterxml.jackson.core.JsonPointer; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.jvalue.ods.ApiFactory; import org.jvalue.ods.api.DataSourceApi; import org.jvalue.ods.api.ProcessorChainApi; import org.jvalue.ods.api.processors.ExecutionInterval; import org.jvalue.ods.api.processors.ProcessorReference; import org.jvalue.ods.api.processors.ProcessorReferenceChainDescription; import org.jvalue.ods.api.sources.DataSourceDescription; import org.jvalue.ods.api.sources.DataSourceMetaData; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.concurrent.TimeUnit; import retrofit.RetrofitError; public final class ProcessorChainApiTest { private final ApiFactory apiFactory = new ApiFactory(); private final DataSourceApi sourceApi = apiFactory.createDataSourceApi(); private final ProcessorChainApi processorApi = apiFactory.createProcessorChainApi(); private final String sourceId = getClass().getSimpleName(); @Before public void setupSource() { DataSourceDescription description = new DataSourceDescription( JsonPointer.compile("/id"), new ObjectNode(JsonNodeFactory.instance), new DataSourceMetaData("", "", "", "", "", "", "")); sourceApi.addSourceSynchronously(sourceId, description); } @After public void teardownSource() { sourceApi.deleteSourceSynchronously(sourceId); } @Test public void testProcessorReferenceChainValidation() { List<ProcessorReference> processors = Arrays.asList( new ProcessorReference("JsonSourceAdapter", new HashMap<String, Object>()), new ProcessorReference("DbInsertionFilter", new HashMap<String, Object>())); ProcessorReferenceChainDescription description = new ProcessorReferenceChainDescription( processors, new ExecutionInterval(100, TimeUnit.SECONDS)); try { processorApi.addProcessorChainSynchronously(sourceId, "someFilterId", description); Assert.fail("ODS accepted invalid processor chain"); } catch (RetrofitError re) { // all good } } }