Search in sources :

Example 11 with MockConfigurationContext

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

the class TestServerAndClient method testBackwardCompatibility.

@Test
public void testBackwardCompatibility() throws Exception {
    /**
     * This bypasses the test for build environments in OS X running Java 1.8 due to a JVM bug
     * See:  https://issues.apache.org/jira/browse/NIFI-437
     */
    Assume.assumeFalse("test is skipped due to build environment being OS X with JDK 1.8. See https://issues.apache.org/jira/browse/NIFI-437", SystemUtils.IS_OS_MAC && SystemUtils.IS_JAVA_1_8);
    LOGGER.info("Testing " + Thread.currentThread().getStackTrace()[1].getMethodName());
    final TestRunner runner = TestRunners.newTestRunner(Mockito.mock(Processor.class));
    // Create a server that only supports protocol version 1.
    final DistributedMapCacheServer server = new MapServer() {

        @Override
        protected MapCacheServer createMapCacheServer(int port, int maxSize, SSLContext sslContext, EvictionPolicy evictionPolicy, File persistenceDir) throws IOException {
            return new MapCacheServer(getIdentifier(), sslContext, port, maxSize, evictionPolicy, persistenceDir) {

                @Override
                protected StandardVersionNegotiator getVersionNegotiator() {
                    return new StandardVersionNegotiator(1);
                }
            };
        }
    };
    runner.addControllerService("server", server);
    runner.enableControllerService(server);
    DistributedMapCacheClientService client = new DistributedMapCacheClientService();
    MockControllerServiceInitializationContext clientInitContext1 = new MockControllerServiceInitializationContext(client, "client");
    client.initialize(clientInitContext1);
    final Map<PropertyDescriptor, String> clientProperties = new HashMap<>();
    clientProperties.put(DistributedMapCacheClientService.HOSTNAME, "localhost");
    clientProperties.put(DistributedMapCacheClientService.PORT, String.valueOf(server.getPort()));
    clientProperties.put(DistributedMapCacheClientService.COMMUNICATIONS_TIMEOUT, "360 secs");
    MockConfigurationContext clientContext = new MockConfigurationContext(clientProperties, clientInitContext1.getControllerServiceLookup());
    client.cacheConfig(clientContext);
    final Serializer<String> stringSerializer = new StringSerializer();
    final Deserializer<String> stringDeserializer = new StringDeserializer();
    final String key = "test-backward-compatibility";
    // Version 1 operations should work
    client.put(key, "value1", stringSerializer, stringSerializer);
    assertEquals("value1", client.get(key, stringSerializer, stringDeserializer));
    assertTrue(client.containsKey(key, stringSerializer));
    try {
        client.fetch(key, stringSerializer, stringDeserializer);
        fail("Version 2 operations should NOT work.");
    } catch (UnsupportedOperationException e) {
    }
    try {
        AtomicCacheEntry<String, String, Long> entry = new AtomicCacheEntry<>(key, "value2", 0L);
        client.replace(entry, stringSerializer, stringSerializer);
        fail("Version 2 operations should NOT work.");
    } catch (UnsupportedOperationException e) {
    }
    try {
        Set<String> keys = client.keySet(stringDeserializer);
        fail("Version 3 operations should NOT work.");
    } catch (UnsupportedOperationException e) {
    }
    try {
        String removed = client.removeAndGet("v.*", stringSerializer, stringDeserializer);
        fail("Version 3 operations should NOT work.");
    } catch (UnsupportedOperationException e) {
    }
    try {
        Map<String, String> removed = client.removeByPatternAndGet("v.*", stringDeserializer, stringDeserializer);
        fail("Version 3 operations should NOT work.");
    } catch (UnsupportedOperationException e) {
    }
    client.close();
    server.shutdownServer();
}
Also used : Processor(org.apache.nifi.processor.Processor) HashMap(java.util.HashMap) DistributedMapCacheClientService(org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService) MockConfigurationContext(org.apache.nifi.util.MockConfigurationContext) PropertyDescriptor(org.apache.nifi.components.PropertyDescriptor) TestRunner(org.apache.nifi.util.TestRunner) MapCacheServer(org.apache.nifi.distributed.cache.server.map.MapCacheServer) DistributedMapCacheServer(org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer) DistributedMapCacheServer(org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer) SSLContext(javax.net.ssl.SSLContext) AtomicCacheEntry(org.apache.nifi.distributed.cache.client.AtomicCacheEntry) MockControllerServiceInitializationContext(org.apache.nifi.util.MockControllerServiceInitializationContext) StandardVersionNegotiator(org.apache.nifi.remote.StandardVersionNegotiator) File(java.io.File) Test(org.junit.Test)

Example 12 with MockConfigurationContext

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

the class TestServerAndClient method createClient.

private DistributedSetCacheClientService createClient(final int port) throws InitializationException {
    final DistributedSetCacheClientService client = new DistributedSetCacheClientService();
    final MockControllerServiceInitializationContext clientInitContext = new MockControllerServiceInitializationContext(client, "client");
    client.initialize(clientInitContext);
    final Map<PropertyDescriptor, String> clientProperties = new HashMap<>();
    clientProperties.put(DistributedSetCacheClientService.HOSTNAME, "localhost");
    clientProperties.put(DistributedSetCacheClientService.PORT, String.valueOf(port));
    final MockConfigurationContext clientContext = new MockConfigurationContext(clientProperties, clientInitContext.getControllerServiceLookup());
    client.onConfigured(clientContext);
    return client;
}
Also used : MockControllerServiceInitializationContext(org.apache.nifi.util.MockControllerServiceInitializationContext) PropertyDescriptor(org.apache.nifi.components.PropertyDescriptor) MockConfigurationContext(org.apache.nifi.util.MockConfigurationContext) HashMap(java.util.HashMap) DistributedSetCacheClientService(org.apache.nifi.distributed.cache.client.DistributedSetCacheClientService)

Aggregations

MockConfigurationContext (org.apache.nifi.util.MockConfigurationContext)12 HashMap (java.util.HashMap)11 PropertyDescriptor (org.apache.nifi.components.PropertyDescriptor)10 Test (org.junit.Test)8 MockControllerServiceInitializationContext (org.apache.nifi.util.MockControllerServiceInitializationContext)6 DistributedMapCacheClientService (org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService)5 ConfigurationContext (org.apache.nifi.controller.ConfigurationContext)4 DistributedMapCacheServer (org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer)4 Processor (org.apache.nifi.processor.Processor)3 RecordSchema (org.apache.nifi.serialization.record.RecordSchema)3 TestRunner (org.apache.nifi.util.TestRunner)3 SchemaMetadata (com.hortonworks.registries.schemaregistry.SchemaMetadata)2 SchemaMetadataInfo (com.hortonworks.registries.schemaregistry.SchemaMetadataInfo)2 SchemaVersionInfo (com.hortonworks.registries.schemaregistry.SchemaVersionInfo)2 IOException (java.io.IOException)2 SchemaIdentifier (org.apache.nifi.serialization.record.SchemaIdentifier)2 MockStateManager (org.apache.nifi.state.MockStateManager)2 MockComponentLog (org.apache.nifi.util.MockComponentLog)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 File (java.io.File)1