Search in sources :

Example 11 with MockProcessContext

use of org.apache.nifi.util.MockProcessContext in project nifi by apache.

the class TestJmsConsumer method testMap2FlowFileMapMessage.

/**
 * Test MapMessage to FlowFile conversion
 *
 * @throws java.lang.Exception ex
 */
@Test
public void testMap2FlowFileMapMessage() throws Exception {
    TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
    MapMessage mapMessage = createMapMessage();
    ProcessContext context = runner.getProcessContext();
    ProcessSession session = runner.getProcessSessionFactory().createSession();
    ProcessorInitializationContext pic = new MockProcessorInitializationContext(runner.getProcessor(), (MockProcessContext) runner.getProcessContext());
    JmsProcessingSummary summary = JmsConsumer.map2FlowFile(context, session, mapMessage, true, pic.getLogger());
    assertEquals("MapMessage should not create FlowFile content", 0, summary.getBytesReceived());
    Map<String, String> attributes = summary.getLastFlowFile().getAttributes();
    assertEquals("", "Arnold", attributes.get(JmsConsumer.MAP_MESSAGE_PREFIX + "name"));
    assertEquals("", "97", attributes.get(JmsConsumer.MAP_MESSAGE_PREFIX + "age"));
    assertEquals("", "89686.564", attributes.get(JmsConsumer.MAP_MESSAGE_PREFIX + "xyz"));
    assertEquals("", "true", attributes.get(JmsConsumer.MAP_MESSAGE_PREFIX + "good"));
}
Also used : ProcessSession(org.apache.nifi.processor.ProcessSession) TestRunner(org.apache.nifi.util.TestRunner) ActiveMQMapMessage(org.apache.activemq.command.ActiveMQMapMessage) MapMessage(javax.jms.MapMessage) MockProcessorInitializationContext(org.apache.nifi.util.MockProcessorInitializationContext) JmsProcessingSummary(org.apache.nifi.processors.standard.util.JmsProcessingSummary) ProcessContext(org.apache.nifi.processor.ProcessContext) MockProcessContext(org.apache.nifi.util.MockProcessContext) MockProcessorInitializationContext(org.apache.nifi.util.MockProcessorInitializationContext) ProcessorInitializationContext(org.apache.nifi.processor.ProcessorInitializationContext) Test(org.junit.Test)

Example 12 with MockProcessContext

use of org.apache.nifi.util.MockProcessContext in project nifi by apache.

the class TestMergeContent method testTextDelimitersValidation.

@Test
public void testTextDelimitersValidation() throws IOException, InterruptedException {
    final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
    runner.setProperty(MergeContent.MAX_BIN_AGE, "1 sec");
    runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
    runner.setProperty(MergeContent.DELIMITER_STRATEGY, MergeContent.DELIMITER_STRATEGY_TEXT);
    runner.setProperty(MergeContent.HEADER, "");
    runner.setProperty(MergeContent.DEMARCATOR, "");
    runner.setProperty(MergeContent.FOOTER, "");
    Collection<ValidationResult> results = new HashSet<>();
    ProcessContext context = runner.getProcessContext();
    if (context instanceof MockProcessContext) {
        MockProcessContext mockContext = (MockProcessContext) context;
        results = mockContext.validate();
    }
    Assert.assertEquals(3, results.size());
    for (ValidationResult vr : results) {
        Assert.assertTrue(vr.toString().contains("cannot be empty"));
    }
}
Also used : TestRunner(org.apache.nifi.util.TestRunner) ValidationResult(org.apache.nifi.components.ValidationResult) MockProcessContext(org.apache.nifi.util.MockProcessContext) ProcessContext(org.apache.nifi.processor.ProcessContext) MockProcessContext(org.apache.nifi.util.MockProcessContext) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 13 with MockProcessContext

use of org.apache.nifi.util.MockProcessContext in project nifi by apache.

the class TestRouteOnAttribute method testInvalidOnNonBooleanProperty.

@Test
public void testInvalidOnNonBooleanProperty() {
    final RouteOnAttribute proc = new RouteOnAttribute();
    final MockProcessContext ctx = new MockProcessContext(proc);
    // Should be boolean
    final ValidationResult validationResult = ctx.setProperty("RouteA", "${a:length()");
    assertFalse(validationResult.isValid());
}
Also used : ValidationResult(org.apache.nifi.components.ValidationResult) MockProcessContext(org.apache.nifi.util.MockProcessContext) Test(org.junit.Test)

Example 14 with MockProcessContext

use of org.apache.nifi.util.MockProcessContext in project nifi by apache.

the class GetHDFSSequenceFileTest method init.

private void init() throws IOException {
    final MockProcessContext context = new MockProcessContext(getHDFSSequenceFile);
    getHDFSSequenceFile.init(mock(ProcessorInitializationContext.class));
    getHDFSSequenceFile.onScheduled(context);
}
Also used : MockProcessContext(org.apache.nifi.util.MockProcessContext) ProcessorInitializationContext(org.apache.nifi.processor.ProcessorInitializationContext)

Example 15 with MockProcessContext

use of org.apache.nifi.util.MockProcessContext in project nifi by apache.

the class GetHDFSTest method testValidators.

@Test
public void testValidators() {
    GetHDFS proc = new TestableGetHDFS(kerberosProperties);
    TestRunner runner = TestRunners.newTestRunner(proc);
    Collection<ValidationResult> results;
    ProcessContext pc;
    results = new HashSet<>();
    runner.enqueue(new byte[0]);
    pc = runner.getProcessContext();
    if (pc instanceof MockProcessContext) {
        results = ((MockProcessContext) pc).validate();
    }
    Assert.assertEquals(1, results.size());
    for (ValidationResult vr : results) {
        Assert.assertTrue(vr.toString().contains("is invalid because Directory is required"));
    }
    results = new HashSet<>();
    runner.setProperty(PutHDFS.DIRECTORY, "target");
    runner.enqueue(new byte[0]);
    pc = runner.getProcessContext();
    if (pc instanceof MockProcessContext) {
        results = ((MockProcessContext) pc).validate();
    }
    Assert.assertEquals(0, results.size());
    results = new HashSet<>();
    runner.setProperty(GetHDFS.DIRECTORY, "/target");
    runner.setProperty(GetHDFS.MIN_AGE, "10 secs");
    runner.setProperty(GetHDFS.MAX_AGE, "5 secs");
    runner.enqueue(new byte[0]);
    pc = runner.getProcessContext();
    if (pc instanceof MockProcessContext) {
        results = ((MockProcessContext) pc).validate();
    }
    Assert.assertEquals(1, results.size());
    for (ValidationResult vr : results) {
        Assert.assertTrue(vr.toString().contains("is invalid because Minimum File Age cannot be greater than Maximum File Age"));
    }
}
Also used : TestRunner(org.apache.nifi.util.TestRunner) ValidationResult(org.apache.nifi.components.ValidationResult) MockProcessContext(org.apache.nifi.util.MockProcessContext) ProcessContext(org.apache.nifi.processor.ProcessContext) MockProcessContext(org.apache.nifi.util.MockProcessContext) Test(org.junit.Test)

Aggregations

MockProcessContext (org.apache.nifi.util.MockProcessContext)39 Test (org.junit.Test)35 ValidationResult (org.apache.nifi.components.ValidationResult)25 TestRunner (org.apache.nifi.util.TestRunner)24 ProcessContext (org.apache.nifi.processor.ProcessContext)16 MockProcessorInitializationContext (org.apache.nifi.util.MockProcessorInitializationContext)10 MockValidationContext (org.apache.nifi.util.MockValidationContext)6 HashSet (java.util.HashSet)4 ProcessorInitializationContext (org.apache.nifi.processor.ProcessorInitializationContext)4 Relationship (org.apache.nifi.processor.Relationship)4 ProcessSession (org.apache.nifi.processor.ProcessSession)3 JmsProcessingSummary (org.apache.nifi.processors.standard.util.JmsProcessingSummary)3 Matchers.anyString (org.mockito.Matchers.anyString)3 File (java.io.File)2 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 MalformedURLException (java.net.MalformedURLException)2 AtomicLong (java.util.concurrent.atomic.AtomicLong)2 NullSink (org.apache.flume.sink.NullSink)2 AvroSource (org.apache.flume.source.AvroSource)2