|
@@ -64,7 +64,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
|
|
|
public void testActualProcessor() throws Exception {
|
|
|
TestProcessor actualProcessor = new TestProcessor(ingestDocument -> {});
|
|
|
- TrackingResultProcessor trackingProcessor = new TrackingResultProcessor(false, actualProcessor, resultList);
|
|
|
+ TrackingResultProcessor trackingProcessor = new TrackingResultProcessor(false, actualProcessor, null, resultList);
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
|
|
|
SimulateProcessorResult expectedResult = new SimulateProcessorResult(actualProcessor.getTag(), ingestDocument);
|
|
@@ -81,7 +81,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
RuntimeException exception = new RuntimeException("processor failed");
|
|
|
TestProcessor testProcessor = new TestProcessor(ingestDocument -> { throw exception; });
|
|
|
CompoundProcessor actualProcessor = new CompoundProcessor(testProcessor);
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
|
|
|
Exception[] holder = new Exception[1];
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> holder[0] = e);
|
|
@@ -104,7 +104,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
Arrays.asList(failProcessor, onFailureProcessor),
|
|
|
Arrays.asList(onFailureProcessor, failProcessor))),
|
|
|
Arrays.asList(onFailureProcessor));
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
|
|
|
SimulateProcessorResult expectedFailResult = new SimulateProcessorResult(failProcessor.getTag(), ingestDocument);
|
|
@@ -137,12 +137,53 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
assertThat(resultList.get(3).getProcessorTag(), equalTo(expectedSuccessResult.getProcessorTag()));
|
|
|
}
|
|
|
|
|
|
+ public void testActualCompoundProcessorWithOnFailureAndTrueCondition() throws Exception {
|
|
|
+ String scriptName = "conditionalScript";
|
|
|
+ ScriptService scriptService = new ScriptService(Settings.builder().build(), Collections.singletonMap(Script.DEFAULT_SCRIPT_LANG,
|
|
|
+ new MockScriptEngine(Script.DEFAULT_SCRIPT_LANG, Collections.singletonMap(scriptName, ctx -> true), Collections.emptyMap())),
|
|
|
+ new HashMap<>(ScriptModule.CORE_CONTEXTS)
|
|
|
+ );
|
|
|
+ RuntimeException exception = new RuntimeException("fail");
|
|
|
+ TestProcessor failProcessor = new TestProcessor("fail", "test", exception);
|
|
|
+ ConditionalProcessor conditionalProcessor = new ConditionalProcessor(
|
|
|
+ randomAlphaOfLength(10),
|
|
|
+ new Script(ScriptType.INLINE, Script.DEFAULT_SCRIPT_LANG, scriptName, Collections.emptyMap()), scriptService,
|
|
|
+ failProcessor);
|
|
|
+ TestProcessor onFailureProcessor = new TestProcessor("success", "test", ingestDocument -> {});
|
|
|
+ CompoundProcessor actualProcessor =
|
|
|
+ new CompoundProcessor(false,
|
|
|
+ Arrays.asList(conditionalProcessor),
|
|
|
+ Arrays.asList(onFailureProcessor));
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
+ trackingProcessor.execute(ingestDocument, (result, e) -> {
|
|
|
+ });
|
|
|
+
|
|
|
+ SimulateProcessorResult expectedFailResult = new SimulateProcessorResult(failProcessor.getTag(), ingestDocument);
|
|
|
+ SimulateProcessorResult expectedSuccessResult = new SimulateProcessorResult(onFailureProcessor.getTag(), ingestDocument);
|
|
|
+
|
|
|
+ assertThat(failProcessor.getInvokedCounter(), equalTo(1));
|
|
|
+ assertThat(onFailureProcessor.getInvokedCounter(), equalTo(1));
|
|
|
+ assertThat(resultList.size(), equalTo(2));
|
|
|
+
|
|
|
+ assertThat(resultList.get(0).getIngestDocument(), nullValue());
|
|
|
+ assertThat(resultList.get(0).getFailure(), equalTo(exception));
|
|
|
+ assertThat(resultList.get(0).getProcessorTag(), equalTo(expectedFailResult.getProcessorTag()));
|
|
|
+
|
|
|
+ Map<String, Object> metadata = resultList.get(1).getIngestDocument().getIngestMetadata();
|
|
|
+ assertThat(metadata.get(ON_FAILURE_MESSAGE_FIELD), equalTo("fail"));
|
|
|
+ assertThat(metadata.get(ON_FAILURE_PROCESSOR_TYPE_FIELD), equalTo("test"));
|
|
|
+ assertThat(metadata.get(ON_FAILURE_PROCESSOR_TAG_FIELD), equalTo("fail"));
|
|
|
+ assertThat(resultList.get(1).getFailure(), nullValue());
|
|
|
+ assertThat(resultList.get(1).getProcessorTag(), equalTo(expectedSuccessResult.getProcessorTag()));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public void testActualCompoundProcessorWithIgnoreFailure() throws Exception {
|
|
|
RuntimeException exception = new RuntimeException("processor failed");
|
|
|
TestProcessor testProcessor = new TestProcessor(ingestDocument -> { throw exception; });
|
|
|
CompoundProcessor actualProcessor = new CompoundProcessor(true, Collections.singletonList(testProcessor),
|
|
|
Collections.emptyList());
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
|
|
@@ -173,7 +214,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
new TestProcessor(ingestDocument -> {ingestDocument.setFieldValue(key2, randomInt()); })),
|
|
|
new TestProcessor(ingestDocument -> { ingestDocument.setFieldValue(key3, randomInt()); }));
|
|
|
|
|
|
- CompoundProcessor trackingProcessor = decorate(compoundProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(compoundProcessor, null, resultList);
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
SimulateProcessorResult expectedResult = new SimulateProcessorResult(compoundProcessor.getTag(), ingestDocument);
|
|
|
|
|
@@ -215,7 +256,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
PipelineProcessor pipelineProcessor = factory.create(Collections.emptyMap(), null, pipelineConfig);
|
|
|
CompoundProcessor actualProcessor = new CompoundProcessor(pipelineProcessor);
|
|
|
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
|
|
@@ -282,7 +323,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
PipelineProcessor pipelineProcessor = factory.create(Collections.emptyMap(), null, pipelineConfig0);
|
|
|
CompoundProcessor actualProcessor = new CompoundProcessor(pipelineProcessor);
|
|
|
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
|
|
@@ -351,7 +392,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
PipelineProcessor pipelineProcessor = factory.create(Collections.emptyMap(), null, pipelineConfig0);
|
|
|
CompoundProcessor actualProcessor = new CompoundProcessor(pipelineProcessor);
|
|
|
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
|
|
@@ -404,7 +445,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
PipelineProcessor pipelineProcessor = factory.create(Collections.emptyMap(), null, pipelineConfig);
|
|
|
CompoundProcessor actualProcessor = new CompoundProcessor(pipelineProcessor);
|
|
|
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
|
|
@@ -455,7 +496,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
PipelineProcessor pipelineProcessor = factory.create(Collections.emptyMap(), null, pipelineConfig0);
|
|
|
CompoundProcessor actualProcessor = new CompoundProcessor(pipelineProcessor);
|
|
|
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
|
|
|
Exception[] holder = new Exception[1];
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> holder[0] = e);
|
|
@@ -481,7 +522,7 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
|
|
|
CompoundProcessor actualProcessor = new CompoundProcessor(pipelineProcessor, pipelineProcessor);
|
|
|
|
|
|
- CompoundProcessor trackingProcessor = decorate(actualProcessor, resultList);
|
|
|
+ CompoundProcessor trackingProcessor = decorate(actualProcessor, null, resultList);
|
|
|
|
|
|
trackingProcessor.execute(ingestDocument, (result, e) -> {});
|
|
|
|
|
@@ -504,4 +545,6 @@ public class TrackingResultProcessorTests extends ESTestCase {
|
|
|
resultList.get(1).getIngestDocument().getSourceAndMetadata().get(key1));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
}
|