This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new b7861f3502 NIFI-15402 Enabled testEcho in TestExecuteProcess and
TestExecuteStreamCommand on Windows (#10706)
b7861f3502 is described below
commit b7861f35029dc97a8b364a8373b1e2222451b327
Author: dan-s1 <[email protected]>
AuthorDate: Mon Dec 29 20:43:15 2025 -0500
NIFI-15402 Enabled testEcho in TestExecuteProcess and
TestExecuteStreamCommand on Windows (#10706)
Signed-off-by: David Handermann <[email protected]>
---
.../processors/standard/TestExecuteProcess.java | 57 +-
.../standard/TestExecuteStreamCommand.java | 833 ++++++++++-----------
2 files changed, 416 insertions(+), 474 deletions(-)
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java
index f5b426f08b..58443b8c0c 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java
@@ -28,9 +28,8 @@ import org.apache.nifi.util.LogMessage;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.TestRunner;
import org.apache.nifi.util.TestRunners;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledOnOs;
-import org.junit.jupiter.api.condition.OS;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -39,6 +38,12 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class TestExecuteProcess {
+ private TestRunner runner;
+
+ @BeforeEach
+ void setUp() {
+ runner = TestRunners.newTestRunner(ExecuteProcess.class);
+ }
@Test
public void testSplitArgs() {
@@ -54,7 +59,7 @@ public class TestExecuteProcess {
final List<String> singleArg = ArgumentUtils.splitArgs(" hello ",
';');
assertEquals(1, singleArg.size());
- assertEquals(" hello ", singleArg.get(0));
+ assertEquals(" hello ", singleArg.getFirst());
final List<String> twoArg = ArgumentUtils.splitArgs(" hello ;
good-bye ", ';');
assertEquals(2, twoArg.size());
@@ -63,7 +68,7 @@ public class TestExecuteProcess {
final List<String> oneUnnecessarilyQuotedArg =
ArgumentUtils.splitArgs(" \"hello\" ", ';');
assertEquals(1, oneUnnecessarilyQuotedArg.size());
- assertEquals(" hello ", oneUnnecessarilyQuotedArg.get(0));
+ assertEquals(" hello ", oneUnnecessarilyQuotedArg.getFirst());
final List<String> twoQuotedArg = ArgumentUtils.splitArgs("\"
hello\" \"good bye\"", ' ');
assertEquals(2, twoQuotedArg.size());
@@ -84,10 +89,8 @@ public class TestExecuteProcess {
assertEquals("", twoArgOneWholeQuotedArgOneEmptyArg.get(3));
}
- @DisabledOnOs(OS.WINDOWS)
@Test
public void testEcho() {
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteProcess.class);
runner.setProperty(ExecuteProcess.COMMAND, "echo");
runner.setProperty(ExecuteProcess.COMMAND_ARGUMENTS, "test-args");
runner.setProperty(ExecuteProcess.BATCH_DURATION, "500 millis");
@@ -103,7 +106,6 @@ public class TestExecuteProcess {
@Test
public void validateProcessInterruptOnStop() throws Exception {
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteProcess.class);
runner.setEnvironmentVariableValue("command", "ping");
runner.setProperty(ExecuteProcess.COMMAND, "${command}");
runner.setProperty(ExecuteProcess.COMMAND_ARGUMENTS,
"nifi.apache.org");
@@ -125,36 +127,10 @@ public class TestExecuteProcess {
final List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteProcess.REL_SUCCESS);
if (!flowFiles.isEmpty()) {
- assertEquals("ping", flowFiles.get(0).getAttribute("command"));
+ assertEquals("ping", flowFiles.getFirst().getAttribute("command"));
}
}
- // @Test
- public void testBigBinaryInputData() {
- System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi",
"TRACE");
-
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.processors.standard",
"DEBUG");
-
- String workingDirName = "/var/test";
- String testFile = "eclipse-java-luna-SR2-win32.zip";
-
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteProcess.class);
- runner.setProperty(ExecuteProcess.COMMAND, "cmd");
- runner.setProperty(ExecuteProcess.COMMAND_ARGUMENTS, " /c type " +
testFile);
- runner.setProperty(ExecuteProcess.WORKING_DIR, workingDirName);
-
- File inFile = new File(workingDirName, testFile);
-
- runner.run();
-
- final List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteProcess.REL_SUCCESS);
- long totalFlowFilesSize = 0;
- for (final MockFlowFile flowFile : flowFiles) {
- totalFlowFilesSize += flowFile.getSize();
- }
-
- assertEquals(inFile.length(), totalFlowFilesSize);
- }
-
@Test
public void testBigInputSplit() {
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi",
"TRACE");
@@ -162,9 +138,7 @@ public class TestExecuteProcess {
String workingDirName = "/var/test";
String testFile =
"Novo_dicionário_da_língua_portuguesa_by_Cândido_de_Figueiredo.txt";
- // String testFile = "eclipse-java-luna-SR2-win32.zip";
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteProcess.class);
runner.setProperty(ExecuteProcess.COMMAND, "cmd");
runner.setProperty(ExecuteProcess.COMMAND_ARGUMENTS, " /c type " +
testFile);
runner.setProperty(ExecuteProcess.WORKING_DIR, workingDirName);
@@ -201,7 +175,6 @@ public class TestExecuteProcess {
@Test
public void testNotRedirectErrorStream() {
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteProcess.class);
runner.setProperty(ExecuteProcess.COMMAND, "cd");
runner.setProperty(ExecuteProcess.COMMAND_ARGUMENTS, "does-not-exist");
@@ -222,7 +195,7 @@ public class TestExecuteProcess {
final int expectedWarningMessages = 1;
final int maxRetry = 5;
for (int i = 0; i < maxRetry
- && (runner.getLogger().getWarnMessages().size() <
expectedWarningMessages); i++) {
+ && (runner.getLogger().getWarnMessages().isEmpty()); i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException ignored) {
@@ -238,7 +211,6 @@ public class TestExecuteProcess {
@Test
public void testRedirectErrorStream() {
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteProcess.class);
runner.setProperty(ExecuteProcess.COMMAND, "cd");
runner.setProperty(ExecuteProcess.COMMAND_ARGUMENTS, "does-not-exist");
runner.setProperty(ExecuteProcess.REDIRECT_ERROR_STREAM, "true");
@@ -262,7 +234,6 @@ public class TestExecuteProcess {
@Test
public void testRedirectErrorStreamWithExpressions() {
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteProcess.class);
runner.setProperty(ExecuteProcess.COMMAND, "ls");
runner.setProperty(ExecuteProcess.COMMAND_ARGUMENTS,
"${literal('does-not-exist'):toUpper()}");
runner.setProperty(ExecuteProcess.REDIRECT_ERROR_STREAM, "true");
@@ -282,9 +253,9 @@ public class TestExecuteProcess {
"the output should be sent as a content of flow-file.");
final List<MockFlowFile> succeeded =
runner.getFlowFilesForRelationship(ExecuteProcess.REL_SUCCESS);
assertEquals(1, succeeded.size());
- assertTrue(new
String(succeeded.get(0).toByteArray()).contains("DOES-NOT-EXIST"));
-
assertEquals(succeeded.get(0).getAttribute(ExecuteProcess.ATTRIBUTE_COMMAND),
"ls");
-
assertEquals(succeeded.get(0).getAttribute(ExecuteProcess.ATTRIBUTE_COMMAND_ARGS),
"DOES-NOT-EXIST");
+ assertTrue(new
String(succeeded.getFirst().toByteArray()).contains("DOES-NOT-EXIST"));
+
assertEquals(succeeded.getFirst().getAttribute(ExecuteProcess.ATTRIBUTE_COMMAND),
"ls");
+
assertEquals(succeeded.getFirst().getAttribute(ExecuteProcess.ATTRIBUTE_COMMAND_ARGS),
"DOES-NOT-EXIST");
}
/**
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java
index 8578542387..b34126fb41 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java
@@ -23,10 +23,12 @@ import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.expression.ExpressionLanguageScope;
import org.apache.nifi.flowfile.attributes.CoreAttributes;
import org.apache.nifi.processors.standard.util.ArgumentUtils;
+import org.apache.nifi.processors.standard.util.JsonUtil;
import org.apache.nifi.util.LogMessage;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.TestRunner;
import org.apache.nifi.util.TestRunners;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -48,13 +50,17 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
-@DisabledOnOs(value = OS.WINDOWS, disabledReason = "Test only runs on *nix")
public class TestExecuteStreamCommand {
+ private TestRunner runner;
+
+ @BeforeEach
+ void setUp() {
+ runner = TestRunners.newTestRunner(ExecuteStreamCommand.class);
+ }
+
@Test
public void testDynamicPropertyArgumentsStrategyValid() {
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
-
runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
runner.setProperty("command.argument.1", "-version");
@@ -67,8 +73,6 @@ public class TestExecuteStreamCommand {
@Test
public void testCommandArgumentsPropertyStrategyValid() {
- final TestRunner runner =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
-
runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.COMMAND_ARGUMENTS_PROPERTY_STRATEGY.getValue());
runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
runner.setProperty("RUNTIME_VERSION", "version-1");
@@ -85,17 +89,16 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setProperty(ExecuteStreamCommand.MIME_TYPE.getName(),
"text/plain");
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
-
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ runner.setProperty(ExecuteStreamCommand.MIME_TYPE.getName(),
"text/plain");
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
byte[] byteArray = outputFlowFile.toByteArray();
String result = new String(byteArray);
assertTrue(Pattern.compile("Test was a
success\r?\n").matcher(result).find());
@@ -107,7 +110,7 @@ public class TestExecuteStreamCommand {
assertEquals(expected, attribute.substring(attribute.length() -
expected.length()));
outputFlowFile.assertAttributeEquals(CoreAttributes.MIME_TYPE.key(),
"text/plain");
- MockFlowFile originalFlowFile =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP).get(0);
+ MockFlowFile originalFlowFile =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP).getFirst();
assertEquals(outputFlowFile.getAttribute("execution.status"),
originalFlowFile.getAttribute("execution.status"));
assertEquals(outputFlowFile.getAttribute("execution.command"),
originalFlowFile.getAttribute("execution.command"));
assertEquals(outputFlowFile.getAttribute("execution.command.args"),
originalFlowFile.getAttribute("execution.command.args"));
@@ -119,28 +122,27 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
byte[] byteArray = outputFlowFile.toByteArray();
String result = new String(byteArray);
assertTrue(Pattern.compile("Test was a
success\r?\n").matcher(result).find());
@@ -151,7 +153,7 @@ public class TestExecuteStreamCommand {
String expected = "src" + File.separator + "test" + File.separator +
"resources" + File.separator + "ExecuteCommand" + File.separator +
"TestSuccess.jar";
assertEquals(expected, attribute.substring(attribute.length() -
expected.length()));
- MockFlowFile originalFlowFile =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP).get(0);
+ MockFlowFile originalFlowFile =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP).getFirst();
assertEquals(outputFlowFile.getAttribute("execution.status"),
originalFlowFile.getAttribute("execution.status"));
assertEquals(outputFlowFile.getAttribute("execution.command"),
originalFlowFile.getAttribute("execution.command"));
assertEquals(outputFlowFile.getAttribute("execution.command.args"),
originalFlowFile.getAttribute("execution.command.args"));
@@ -164,16 +166,15 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
-
controller.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP);
- MockFlowFile flowFile = flowFiles.get(0);
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+
runner.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP);
+ MockFlowFile flowFile = flowFiles.getFirst();
assertEquals(0, flowFile.getSize());
assertTrue(flowFile.getAttribute("execution.error").contains("Error:
Unable to access jarfile"));
assertTrue(flowFile.isPenalized());
@@ -185,28 +186,27 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
-
controller.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP);
- MockFlowFile flowFile = flowFiles.get(0);
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+
runner.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP);
+ MockFlowFile flowFile = flowFiles.getFirst();
assertEquals(0, flowFile.getSize());
assertTrue(flowFile.getAttribute("execution.error").contains("Error:
Unable to access jarfile"));
assertTrue(flowFile.isPenalized());
@@ -226,15 +226,14 @@ public class TestExecuteStreamCommand {
}
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy10MBytes.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- byte[] byteArray = flowFiles.get(0).toByteArray();
+ runner.enqueue(dummy10MBytes.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ byte[] byteArray = flowFiles.getFirst().toByteArray();
String result = new String(byteArray);
assertTrue(Pattern.compile("nifi-standard-processors:ModifiedResult\r?\n").matcher(result).find());
@@ -254,27 +253,26 @@ public class TestExecuteStreamCommand {
}
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy10MBytes.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy10MBytes.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- byte[] byteArray = flowFiles.get(0).toByteArray();
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ byte[] byteArray = flowFiles.getFirst().toByteArray();
String result = new String(byteArray);
assertTrue(Pattern.compile("nifi-standard-processors:ModifiedResult\r?\n").matcher(result).find());
@@ -286,19 +284,18 @@ public class TestExecuteStreamCommand {
File dummy = new File("src/test/resources/ExecuteCommand/1mb.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setValidateExpressionUsage(false);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- MockFlowFile flowFile = flowFiles.get(0);
+ runner.setValidateExpressionUsage(false);
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ MockFlowFile flowFile = flowFiles.getFirst();
assertEquals(0, flowFile.getSize());
-
assertTrue(flowFile.getAttribute("execution.error").contains("ÄÖÜäöüß"));
-
assertTrue(flowFile.getAttribute("execution.error").contains("fffffffffffffffffffffffffffffff"));
+
assertTrue(flowFile.getAttribute("execution.error").matches("^\\W{7}f+$"),
+ "Attribute 'execution.error' did not match regular expression
^\\W{7}f+$. Full value of 'execution.error' attribute is
%s".formatted(flowFile.getAttribute("execution.error")));
}
@Test
@@ -307,31 +304,30 @@ public class TestExecuteStreamCommand {
File dummy = new File("src/test/resources/ExecuteCommand/1mb.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setValidateExpressionUsage(false);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.setValidateExpressionUsage(false);
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- MockFlowFile flowFile = flowFiles.get(0);
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ MockFlowFile flowFile = flowFiles.getFirst();
assertEquals(0, flowFile.getSize());
-
assertTrue(flowFile.getAttribute("execution.error").contains("ÄÖÜäöüß"));
-
assertTrue(flowFile.getAttribute("execution.error").contains("fffffffffffffffffffffffffffffff"));
+
assertTrue(flowFile.getAttribute("execution.error").matches("^\\W{7}f+$"),
+ "Attribute 'execution.error' did not match regular expression
^\\W{7}f+$. Full value of 'execution.error' attribute is
%s".formatted(flowFile.getAttribute("execution.error")));
}
@Test
@@ -340,16 +336,15 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- byte[] byteArray = flowFiles.get(0).toByteArray();
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ byte[] byteArray = flowFiles.getFirst().toByteArray();
String result = new String(byteArray);
final String quotedSeparator = Pattern.quote(File.separator);
@@ -362,28 +357,27 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- byte[] byteArray = flowFiles.get(0).toByteArray();
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ byte[] byteArray = flowFiles.getFirst().toByteArray();
String result = new String(byteArray);
final String quotedSeparator = Pattern.quote(File.separator);
@@ -396,17 +390,16 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- byte[] byteArray = flowFiles.get(0).toByteArray();
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ byte[] byteArray = flowFiles.getFirst().toByteArray();
String result = new String(byteArray);
assertTrue(Pattern.compile("target:ModifiedResult\r?\n$").matcher(result).find(),
"TestIngestAndUpdate.jar should not have received anything to modify");
}
@@ -417,29 +410,28 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- byte[] byteArray = flowFiles.get(0).toByteArray();
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ byte[] byteArray = flowFiles.getFirst().toByteArray();
String result = new String(byteArray);
assertTrue(Pattern.compile("target:ModifiedResult\r?\n$").matcher(result).find(),
"TestIngestAndUpdate.jar should not have received anything to modify");
}
@@ -450,18 +442,17 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setProperty("NIFI_TEST_1", "testvalue1");
- controller.setProperty("NIFI_TEST_2", "testvalue2");
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- byte[] byteArray = flowFiles.get(0).toByteArray();
+ runner.setProperty("NIFI_TEST_1", "testvalue1");
+ runner.setProperty("NIFI_TEST_2", "testvalue2");
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ byte[] byteArray = flowFiles.getFirst().toByteArray();
String result = new String(byteArray);
Set<String> dynamicEnvironmentVariables = new
HashSet<>(Arrays.asList(result.split("\r?\n")));
assertFalse(dynamicEnvironmentVariables.size() < 2, "Should contain at
least two environment variables starting with NIFI");
@@ -475,30 +466,29 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setProperty("NIFI_TEST_1", "testvalue1");
- controller.setProperty("NIFI_TEST_2", "testvalue2");
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.setProperty("NIFI_TEST_1", "testvalue1");
+ runner.setProperty("NIFI_TEST_2", "testvalue2");
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- byte[] byteArray = flowFiles.get(0).toByteArray();
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ byte[] byteArray = flowFiles.getFirst().toByteArray();
String result = new String(byteArray);
Set<String> dynamicEnvironmentVariables = new
HashSet<>(Arrays.asList(result.split("\r?\n")));
assertFalse(dynamicEnvironmentVariables.size() < 2, "Should contain at
least two environment variables starting with NIFI");
@@ -510,27 +500,26 @@ public class TestExecuteStreamCommand {
public void testSmallEchoPutToAttribute() {
File dummy = new File("src/test/resources/hello.txt");
assertTrue(dummy.exists());
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setProperty(ExecuteStreamCommand.MIME_TYPE,
"application/json");
- controller.enqueue("".getBytes());
+ runner.setProperty(ExecuteStreamCommand.MIME_TYPE, "application/json");
+ runner.enqueue("".getBytes());
if (isWindows()) {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"/c;echo Hello");
- controller.setProperty(ExecuteStreamCommand.ARG_DELIMITER, ";");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"/c;echo Hello");
+ runner.setProperty(ExecuteStreamCommand.ARG_DELIMITER, ";");
} else {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"echo");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"Hello");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "echo");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"Hello");
}
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
outputFlowFile.assertContentEquals("");
outputFlowFile.assertAttributeNotExists(CoreAttributes.MIME_TYPE.key());
String ouput =
outputFlowFile.getAttribute("executeStreamCommand.output");
@@ -543,43 +532,42 @@ public class TestExecuteStreamCommand {
public void testSmallEchoPutToAttributeDynamicProperties() {
File dummy = new File("src/test/resources/hello.txt");
assertTrue(dummy.exists());
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue("".getBytes());
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue("".getBytes());
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
if (isWindows()) {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "/c");
+ runner.setProperty(dynamicProp1, "/c");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, "echo Hello");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"/c;echo Hello");
+ runner.setProperty(dynamicProp2, "echo Hello");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"/c;echo Hello");
} else {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"echo");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "echo");
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "Hello");
+ runner.setProperty(dynamicProp1, "Hello");
}
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
outputFlowFile.assertContentEquals("");
String ouput =
outputFlowFile.getAttribute("executeStreamCommand.output");
assertTrue(ouput.startsWith("Hello"));
@@ -587,51 +575,51 @@ public class TestExecuteStreamCommand {
assertEquals(isWindows() ? "cmd.exe" : "echo",
outputFlowFile.getAttribute("execution.command"));
}
+ @DisabledOnOs(value = OS.WINDOWS, disabledReason = "Not reaching expected
relationships")
@Test
public void testArgumentsWithQuotesFromAttributeDynamicProperties() throws
Exception {
File dummy = new File("src/test/resources/TestJson/json-sample.json");
assertTrue(dummy.exists());
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
Map<String, String> attrs = new HashMap<>();
String json = FileUtils.readFileToString(dummy,
StandardCharsets.UTF_8);
- attrs.put("json.attribute", json);
- controller.enqueue("".getBytes(), attrs);
+ attrs.put("json.attribute", JsonUtil.getExpectedContent(json));
+ runner.enqueue("".getBytes(), attrs);
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
if (isWindows()) {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "/c");
+ runner.setProperty(dynamicProp1, "/c");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, "echo");
+ runner.setProperty(dynamicProp2, "echo");
} else {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"echo");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "echo");
}
PropertyDescriptor dynamicProp3 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.3")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp3, "${json.attribute}");
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.setProperty(dynamicProp3, "${json.attribute}");
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
1);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
String output = new String(outputFlowFile.toByteArray());
ObjectMapper mapper = new ObjectMapper();
JsonNode tree1 = mapper.readTree(json);
@@ -647,17 +635,16 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
-
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
String result =
outputFlowFile.getAttribute("executeStreamCommand.output");
outputFlowFile.assertContentEquals(dummy);
assertTrue(Pattern.compile("Test was a
success\r?\n").matcher(result).find());
@@ -675,29 +662,28 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
-
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
String result =
outputFlowFile.getAttribute("executeStreamCommand.output");
outputFlowFile.assertContentEquals(dummy);
assertTrue(Pattern.compile("Test was a
success\r?\n").matcher(result).find());
@@ -714,20 +700,19 @@ public class TestExecuteStreamCommand {
File exJar = new
File("src/test/resources/ExecuteCommand/TestSuccess.jar");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue("small test".getBytes());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_ATTRIBUTE_MAX_LENGTH,
"10");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"outputDest");
- assertEquals(1,
controller.getProcessContext().getAvailableRelationships().size());
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
-
controller.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP,
0);
-
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ runner.enqueue("small test".getBytes());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_ATTRIBUTE_MAX_LENGTH,
"10");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"outputDest");
+ assertEquals(1,
runner.getProcessContext().getAvailableRelationships().size());
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+
runner.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP, 0);
+
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
outputFlowFile.assertContentEquals("small test".getBytes());
String result = outputFlowFile.getAttribute("outputDest");
assertTrue(Pattern.compile("Test was a").matcher(result).find());
@@ -744,32 +729,31 @@ public class TestExecuteStreamCommand {
File exJar = new
File("src/test/resources/ExecuteCommand/TestSuccess.jar");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue("small test".getBytes());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue("small test".getBytes());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_ATTRIBUTE_MAX_LENGTH,
"10");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"outputDest");
- assertEquals(1,
controller.getProcessContext().getAvailableRelationships().size());
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
-
controller.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP,
0);
-
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_ATTRIBUTE_MAX_LENGTH,
"10");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"outputDest");
+ assertEquals(1,
runner.getProcessContext().getAvailableRelationships().size());
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+
runner.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP, 0);
+
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
outputFlowFile.assertContentEquals("small test".getBytes());
String result = outputFlowFile.getAttribute("outputDest");
assertTrue(Pattern.compile("Test was a").matcher(result).find());
@@ -794,16 +778,15 @@ public class TestExecuteStreamCommand {
}
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy10MBytes.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"outputDest");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- String result = flowFiles.get(0).getAttribute("outputDest");
+ runner.enqueue(dummy10MBytes.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"outputDest");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ String result = flowFiles.getFirst().getAttribute("outputDest");
assertTrue(Pattern.compile("nifi-standard-processors:ModifiedResult\r?\n").matcher(result).find());
}
@@ -821,28 +804,27 @@ public class TestExecuteStreamCommand {
}
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy10MBytes.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy10MBytes.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"outputDest");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- String result = flowFiles.get(0).getAttribute("outputDest");
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"outputDest");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ String result = flowFiles.getFirst().getAttribute("outputDest");
assertTrue(Pattern.compile("nifi-standard-processors:ModifiedResult\r?\n").matcher(result).find());
}
@@ -858,27 +840,26 @@ public class TestExecuteStreamCommand {
}
}
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue("".getBytes());
+ runner.enqueue("".getBytes());
if (isWindows()) {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"/c;type " + dummy10MBytes.getAbsolutePath());
- controller.setProperty(ExecuteStreamCommand.ARG_DELIMITER, ";");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"/c;type " + dummy10MBytes.getAbsolutePath());
+ runner.setProperty(ExecuteStreamCommand.ARG_DELIMITER, ";");
} else {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cat");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
dummy10MBytes.getAbsolutePath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "cat");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
dummy10MBytes.getAbsolutePath());
}
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.setProperty(ExecuteStreamCommand.PUT_ATTRIBUTE_MAX_LENGTH,
"256");
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.setProperty(ExecuteStreamCommand.PUT_ATTRIBUTE_MAX_LENGTH,
"256");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- flowFiles.get(0).assertAttributeEquals("execution.status", "0");
- String result =
flowFiles.get(0).getAttribute("executeStreamCommand.output");
+ flowFiles.getFirst().assertAttributeEquals("execution.status", "0");
+ String result =
flowFiles.getFirst().getAttribute("executeStreamCommand.output");
assertTrue(Pattern.compile("a{256}").matcher(result).matches());
}
@@ -893,43 +874,42 @@ public class TestExecuteStreamCommand {
}
}
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue("".getBytes());
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue("".getBytes());
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
if (isWindows()) {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cmd.exe");
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "/c");
+ runner.setProperty(dynamicProp1, "/c");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, "type " +
dummy10MBytes.getAbsolutePath());
+ runner.setProperty(dynamicProp2, "type " +
dummy10MBytes.getAbsolutePath());
} else {
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND,
"cat");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "cat");
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1,
dummy10MBytes.getAbsolutePath());
+ runner.setProperty(dynamicProp1, dummy10MBytes.getAbsolutePath());
}
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.setProperty(ExecuteStreamCommand.PUT_ATTRIBUTE_MAX_LENGTH,
"256");
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.setProperty(ExecuteStreamCommand.PUT_ATTRIBUTE_MAX_LENGTH,
"256");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- flowFiles.get(0).assertAttributeEquals("execution.status", "0");
- String result =
flowFiles.get(0).getAttribute("executeStreamCommand.output");
+ flowFiles.getFirst().assertAttributeEquals("execution.status", "0");
+ String result =
flowFiles.getFirst().getAttribute("executeStreamCommand.output");
assertTrue(Pattern.compile("a{256}").matcher(result).matches());
}
@@ -939,16 +919,15 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"streamOutput");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- String result = flowFiles.get(0).getAttribute("streamOutput");
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"streamOutput");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ String result = flowFiles.getFirst().getAttribute("streamOutput");
final String quotedSeparator = Pattern.quote(File.separator);
assertTrue(Pattern.compile(quotedSeparator +
"nifi-standard-processors" + quotedSeparator +
"target:ModifiedResult\r?\n").matcher(result).find());
@@ -960,28 +939,27 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"streamOutput");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"streamOutput");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- String result = flowFiles.get(0).getAttribute("streamOutput");
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ String result = flowFiles.getFirst().getAttribute("streamOutput");
final String quotedSeparator = Pattern.quote(File.separator);
assertTrue(Pattern.compile(quotedSeparator +
"nifi-standard-processors" + quotedSeparator +
"target:ModifiedResult\r?\n").matcher(result).find());
@@ -993,17 +971,16 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- String result =
flowFiles.get(0).getAttribute("executeStreamCommand.output");
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ String result =
flowFiles.getFirst().getAttribute("executeStreamCommand.output");
assertTrue(Pattern.compile("target:ModifiedResult\r?\n?").matcher(result).find(),
"TestIngestAndUpdate.jar should not have received anything to
modify");
}
@@ -1014,29 +991,28 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- String result =
flowFiles.get(0).getAttribute("executeStreamCommand.output");
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.setProperty(ExecuteStreamCommand.IGNORE_STDIN, "true");
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ String result =
flowFiles.getFirst().getAttribute("executeStreamCommand.output");
assertTrue(Pattern.compile("target:ModifiedResult\r?\n?").matcher(result).find(),
"TestIngestAndUpdate.jar should not have received anything to
modify");
}
@@ -1047,18 +1023,17 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setProperty("NIFI_TEST_1", "testvalue1");
- controller.setProperty("NIFI_TEST_2", "testvalue2");
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- String result =
flowFiles.get(0).getAttribute("executeStreamCommand.output");
+ runner.setProperty("NIFI_TEST_1", "testvalue1");
+ runner.setProperty("NIFI_TEST_2", "testvalue2");
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ String result =
flowFiles.getFirst().getAttribute("executeStreamCommand.output");
Set<String> dynamicEnvironmentVariables = new
HashSet<>(Arrays.asList(result.split("\r?\n")));
assertFalse(dynamicEnvironmentVariables.size() < 2, "Should contain at
least two environment variables starting with NIFI");
assertTrue(dynamicEnvironmentVariables.contains("NIFI_TEST_1=testvalue1"),
"NIFI_TEST_1 environment variable is missing");
@@ -1071,30 +1046,29 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setProperty("NIFI_TEST_1", "testvalue1");
- controller.setProperty("NIFI_TEST_2", "testvalue2");
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.setProperty("NIFI_TEST_1", "testvalue1");
+ runner.setProperty("NIFI_TEST_2", "testvalue2");
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- String result =
flowFiles.get(0).getAttribute("executeStreamCommand.output");
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.run(1);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ String result =
flowFiles.getFirst().getAttribute("executeStreamCommand.output");
Set<String> dynamicEnvironmentVariables = new
HashSet<>(Arrays.asList(result.split("\r?\n")));
assertFalse(dynamicEnvironmentVariables.size() < 2, "Should contain at
least two environment variables starting with NIFI");
assertTrue(dynamicEnvironmentVariables.contains("NIFI_TEST_1=testvalue1"),
"NIFI_TEST_1 environment variable is missing");
@@ -1102,7 +1076,7 @@ public class TestExecuteStreamCommand {
}
@Test
- public void testQuotedArguments() throws Exception {
+ public void testQuotedArguments() {
List<String> args = ArgumentUtils.splitArgs("echo -n \"arg1 arg2
arg3\"", ' ');
assertEquals(3, args.size());
args = ArgumentUtils.splitArgs("echo;-n;\"arg1 arg2 arg3\"", ';');
@@ -1110,14 +1084,13 @@ public class TestExecuteStreamCommand {
}
@Test
- public void testInvalidDelimiter() throws Exception {
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "echo");
- controller.assertValid();
- controller.setProperty(ExecuteStreamCommand.ARG_DELIMITER, "foo");
- controller.assertNotValid();
- controller.setProperty(ExecuteStreamCommand.ARG_DELIMITER, "f");
- controller.assertValid();
+ public void testInvalidDelimiter() {
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "echo");
+ runner.assertValid();
+ runner.setProperty(ExecuteStreamCommand.ARG_DELIMITER, "foo");
+ runner.assertNotValid();
+ runner.setProperty(ExecuteStreamCommand.ARG_DELIMITER, "f");
+ runner.assertValid();
}
@Test
@@ -1126,18 +1099,17 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS,
"-jar;" + jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
-
controller.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP,
0);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" +
jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.run(1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+
runner.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP, 0);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
String result =
outputFlowFile.getAttribute("executeStreamCommand.output");
outputFlowFile.assertContentEquals(dummy);
assertTrue(result.isEmpty()); // java -jar with bad path only prints
to standard error not standard out
@@ -1155,30 +1127,29 @@ public class TestExecuteStreamCommand {
File dummy = new
File("src/test/resources/ExecuteCommand/1000bytes.txt");
String jarPath = exJar.getAbsolutePath();
exJar.setExecutable(true);
- final TestRunner controller =
TestRunners.newTestRunner(ExecuteStreamCommand.class);
- controller.enqueue(dummy.toPath());
- controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
- controller.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
+ runner.enqueue(dummy.toPath());
+ runner.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
+ runner.setProperty(ExecuteStreamCommand.ARGUMENTS_STRATEGY,
ExecuteStreamCommand.DYNAMIC_PROPERTY_ARGUMENTS_STRATEGY.getValue());
PropertyDescriptor dynamicProp1 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.1")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp1, "-jar");
+ runner.setProperty(dynamicProp1, "-jar");
PropertyDescriptor dynamicProp2 = new PropertyDescriptor.Builder()
.dynamic(true)
.name("command.argument.2")
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
.build();
- controller.setProperty(dynamicProp2, jarPath);
- controller.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
- controller.run(1);
-
controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP,
0);
-
controller.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP,
0);
-
controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-
- List<MockFlowFile> flowFiles =
controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
- MockFlowFile outputFlowFile = flowFiles.get(0);
+ runner.setProperty(dynamicProp2, jarPath);
+ runner.setProperty(ExecuteStreamCommand.PUT_OUTPUT_IN_ATTRIBUTE,
"executeStreamCommand.output");
+ runner.run(1);
+
runner.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 0);
+
runner.assertTransferCount(ExecuteStreamCommand.NONZERO_STATUS_RELATIONSHIP, 0);
+ runner.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP,
1);
+
+ List<MockFlowFile> flowFiles =
runner.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP);
+ MockFlowFile outputFlowFile = flowFiles.getFirst();
String result =
outputFlowFile.getAttribute("executeStreamCommand.output");
outputFlowFile.assertContentEquals(dummy);
assertTrue(result.isEmpty()); // java -jar with bad path only prints
to standard error not standard out