Search in sources :

Example 16 with MockProcessContext

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

the class PutHDFSTest method testValidators.

@Test
public void testValidators() {
    PutHDFS proc = new TestablePutHDFS(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) {
        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();
    }
    assertEquals(0, results.size());
    results = new HashSet<>();
    runner.setProperty(PutHDFS.DIRECTORY, "/target");
    runner.setProperty(PutHDFS.REPLICATION_FACTOR, "-1");
    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) {
        assertTrue(vr.toString().contains("is invalid because short integer must be greater than zero"));
    }
    proc = new TestablePutHDFS(kerberosProperties);
    runner = TestRunners.newTestRunner(proc);
    results = new HashSet<>();
    runner.setProperty(PutHDFS.DIRECTORY, "/target");
    runner.setProperty(PutHDFS.REPLICATION_FACTOR, "0");
    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) {
        assertTrue(vr.toString().contains("is invalid because short integer must be greater than zero"));
    }
    proc = new TestablePutHDFS(kerberosProperties);
    runner = TestRunners.newTestRunner(proc);
    results = new HashSet<>();
    runner.setProperty(PutHDFS.DIRECTORY, "/target");
    runner.setProperty(PutHDFS.UMASK, "-1");
    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) {
        assertTrue(vr.toString().contains("is invalid because octal umask [-1] cannot be negative"));
    }
    proc = new TestablePutHDFS(kerberosProperties);
    runner = TestRunners.newTestRunner(proc);
    results = new HashSet<>();
    runner.setProperty(PutHDFS.DIRECTORY, "/target");
    runner.setProperty(PutHDFS.UMASK, "18");
    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) {
        assertTrue(vr.toString().contains("is invalid because [18] is not a valid short octal number"));
    }
    results = new HashSet<>();
    runner.setProperty(PutHDFS.DIRECTORY, "/target");
    runner.setProperty(PutHDFS.UMASK, "2000");
    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) {
        assertTrue(vr.toString().contains("is invalid because octal umask [2000] is not a valid umask"));
    }
    results = new HashSet<>();
    proc = new TestablePutHDFS(kerberosProperties);
    runner = TestRunners.newTestRunner(proc);
    runner.setProperty(PutHDFS.DIRECTORY, "/target");
    runner.setProperty(PutHDFS.COMPRESSION_CODEC, CompressionCodec.class.getName());
    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 Given value not found in allowed set"));
    }
}
Also used : TestRunner(org.apache.nifi.util.TestRunner) CompressionCodec(org.apache.hadoop.io.compress.CompressionCodec) 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)

Example 17 with MockProcessContext

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

the class SparkJobserverServiceTest method testValidators.

/**
 * Verify property validators.
 */
@Test
public void testValidators() {
    // Test with no properties
    runner.disableControllerService(sparkJobserverService);
    runner.setProperty(sparkJobserverService, SparkJobserverService.JOBSERVER_URL, (String) null);
    runner.setProperty(sparkJobserverService, SparkJobserverService.SYNC_TIMEOUT, (String) null);
    runner.enableControllerService(sparkJobserverService);
    runner.enqueue(new byte[0]);
    Collection<ValidationResult> results = ((MockProcessContext) runner.getProcessContext()).validate();
    Assert.assertEquals(1, results.size());
    String expected = "'Spark Jobserver Service' validated against 'sparkJobServerService' is invalid because Controller Service is not valid: 'Jobserver URL' is invalid because Jobserver URL is" + " required";
    Assert.assertEquals(expected, Iterables.getOnlyElement(results).toString());
    // Test with valid properties
    runner.disableControllerService(sparkJobserverService);
    runner.setProperty(sparkJobserverService, SparkJobserverService.JOBSERVER_URL, sparkJobserverUrl);
    runner.setProperty(sparkJobserverService, SparkJobserverService.SYNC_TIMEOUT, syncTimeout);
    runner.enableControllerService(sparkJobserverService);
    runner.enqueue(new byte[0]);
    results = ((MockProcessContext) runner.getProcessContext()).validate();
    Assert.assertEquals(0, results.size());
}
Also used : Matchers.anyString(org.mockito.Matchers.anyString) ValidationResult(org.apache.nifi.components.ValidationResult) MockProcessContext(org.apache.nifi.util.MockProcessContext) Test(org.junit.Test)

Example 18 with MockProcessContext

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

the class TestHttpFlowFileServerProtocol method setupMockProcessSession.

private void setupMockProcessSession() {
    // Construct a RootGroupPort as a processor to use NiFi mock library.
    final Processor rootGroupPort = mock(Processor.class);
    final Set<Relationship> relationships = new HashSet<>();
    relationships.add(Relationship.ANONYMOUS);
    when(rootGroupPort.getRelationships()).thenReturn(relationships);
    when(rootGroupPort.getIdentifier()).thenReturn("root-group-port-id");
    sessionState = new SharedSessionState(rootGroupPort, new AtomicLong(0));
    processSession = new MockProcessSession(sessionState, rootGroupPort);
    processContext = new MockProcessContext(rootGroupPort);
}
Also used : SharedSessionState(org.apache.nifi.util.SharedSessionState) AtomicLong(java.util.concurrent.atomic.AtomicLong) Processor(org.apache.nifi.processor.Processor) Relationship(org.apache.nifi.processor.Relationship) MockProcessSession(org.apache.nifi.util.MockProcessSession) MockProcessContext(org.apache.nifi.util.MockProcessContext) HashSet(java.util.HashSet)

Example 19 with MockProcessContext

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

the class TestFetchElasticsearch5 method testCreateElasticsearch5ClientWithException.

@Test(expected = ProcessException.class)
public void testCreateElasticsearch5ClientWithException() throws ProcessException {
    FetchElasticsearch5TestProcessor processor = new FetchElasticsearch5TestProcessor(true) {

        @Override
        protected Client getTransportClient(Settings.Builder settingsBuilder, String xPackPath, String username, String password, List<InetSocketAddress> esHosts, ComponentLog log) throws MalformedURLException {
            throw new MalformedURLException();
        }
    };
    MockProcessContext context = new MockProcessContext(processor);
    processor.initialize(new MockProcessorInitializationContext(processor, context));
    processor.callCreateElasticsearchClient(context);
}
Also used : MalformedURLException(java.net.MalformedURLException) GetRequestBuilder(org.elasticsearch.action.get.GetRequestBuilder) MockProcessorInitializationContext(org.apache.nifi.util.MockProcessorInitializationContext) List(java.util.List) Matchers.anyString(org.mockito.Matchers.anyString) ComponentLog(org.apache.nifi.logging.ComponentLog) MockProcessContext(org.apache.nifi.util.MockProcessContext) Test(org.junit.Test)

Example 20 with MockProcessContext

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

the class TestFetchElasticsearch method testCreateElasticsearchClientWithException.

@Test(expected = ProcessException.class)
public void testCreateElasticsearchClientWithException() throws ProcessException {
    FetchElasticsearchTestProcessor processor = new FetchElasticsearchTestProcessor(true) {

        @Override
        protected TransportClient getTransportClient(Settings.Builder settingsBuilder, String shieldUrl, String username, String password) throws MalformedURLException {
            throw new MalformedURLException();
        }
    };
    MockProcessContext context = new MockProcessContext(processor);
    processor.initialize(new MockProcessorInitializationContext(processor, context));
    processor.callCreateElasticsearchClient(context);
}
Also used : MalformedURLException(java.net.MalformedURLException) GetRequestBuilder(org.elasticsearch.action.get.GetRequestBuilder) MockProcessorInitializationContext(org.apache.nifi.util.MockProcessorInitializationContext) Matchers.anyString(org.mockito.Matchers.anyString) 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