Search in sources :

Example 11 with FixedTuple

use of org.apache.storm.testing.FixedTuple in project storm by apache.

the class NettyIntegrationTest method testIntegration.

@Test
public void testIntegration() throws Exception {
    Map<String, Object> daemonConf = new HashMap<>();
    daemonConf.put(Config.STORM_LOCAL_MODE_ZMQ, true);
    daemonConf.put(Config.STORM_MESSAGING_TRANSPORT, "org.apache.storm.messaging.netty.Context");
    daemonConf.put(Config.STORM_MESSAGING_NETTY_AUTHENTICATION, false);
    daemonConf.put(Config.STORM_MESSAGING_NETTY_BUFFER_SIZE, 1024000);
    daemonConf.put(Config.STORM_MESSAGING_NETTY_MIN_SLEEP_MS, 1000);
    daemonConf.put(Config.STORM_MESSAGING_NETTY_MAX_SLEEP_MS, 5000);
    daemonConf.put(Config.STORM_MESSAGING_NETTY_CLIENT_WORKER_THREADS, 1);
    daemonConf.put(Config.STORM_MESSAGING_NETTY_SERVER_WORKER_THREADS, 1);
    Builder builder = new Builder().withSimulatedTime().withSupervisors(4).withSupervisorSlotPortMin(6710).withDaemonConf(daemonConf);
    try (LocalCluster cluster = builder.build()) {
        TopologyBuilder topologyBuilder = new TopologyBuilder();
        topologyBuilder.setSpout("1", new TestWordSpout(true), 4);
        topologyBuilder.setBolt("2", new TestGlobalCount(), 6).shuffleGrouping("1");
        StormTopology topology = topologyBuilder.createTopology();
        // important for test that tuples = multiple of 4 and 6
        List<FixedTuple> testTuples = Stream.of("a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b", "a", "b").map(value -> new FixedTuple(new Values(value))).collect(Collectors.toList());
        MockedSources mockedSources = new MockedSources(Collections.singletonMap("1", testTuples));
        CompleteTopologyParam completeTopologyParams = new CompleteTopologyParam();
        completeTopologyParams.setStormConf(Collections.singletonMap(Config.TOPOLOGY_WORKERS, 3));
        completeTopologyParams.setMockedSources(mockedSources);
        Map<String, List<FixedTuple>> results = Testing.completeTopology(cluster, topology, completeTopologyParams);
        assertEquals(6 * 4, Testing.readTuples(results, "2").size());
    }
}
Also used : MockedSources(org.apache.storm.testing.MockedSources) Testing(org.apache.storm.Testing) FixedTuple(org.apache.storm.testing.FixedTuple) HashMap(java.util.HashMap) Collectors(java.util.stream.Collectors) LocalCluster(org.apache.storm.LocalCluster) IntegrationTest(org.apache.storm.testing.IntegrationTest) Test(org.junit.jupiter.api.Test) Values(org.apache.storm.tuple.Values) List(java.util.List) Stream(java.util.stream.Stream) StormTopology(org.apache.storm.generated.StormTopology) CompleteTopologyParam(org.apache.storm.testing.CompleteTopologyParam) Map(java.util.Map) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) Config(org.apache.storm.Config) TestWordSpout(org.apache.storm.testing.TestWordSpout) Builder(org.apache.storm.LocalCluster.Builder) TestGlobalCount(org.apache.storm.testing.TestGlobalCount) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) LocalCluster(org.apache.storm.LocalCluster) HashMap(java.util.HashMap) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) Builder(org.apache.storm.LocalCluster.Builder) StormTopology(org.apache.storm.generated.StormTopology) Values(org.apache.storm.tuple.Values) FixedTuple(org.apache.storm.testing.FixedTuple) MockedSources(org.apache.storm.testing.MockedSources) TestGlobalCount(org.apache.storm.testing.TestGlobalCount) CompleteTopologyParam(org.apache.storm.testing.CompleteTopologyParam) TestWordSpout(org.apache.storm.testing.TestWordSpout) List(java.util.List) IntegrationTest(org.apache.storm.testing.IntegrationTest) Test(org.junit.jupiter.api.Test)

Example 12 with FixedTuple

use of org.apache.storm.testing.FixedTuple in project storm by apache.

the class TopologyIntegrationTest method testHooks.

@Test
public void testHooks() throws Exception {
    try (LocalCluster cluster = new LocalCluster.Builder().withSimulatedTime().build()) {
        TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("1", new TestPlannerSpout(new Fields("conf")));
        builder.setBolt("2", new HooksBolt()).shuffleGrouping("1");
        StormTopology topology = builder.createTopology();
        List<FixedTuple> testTuples = Arrays.asList(1, 1, 1, 1).stream().map(value -> new FixedTuple(new Values(value))).collect(Collectors.toList());
        MockedSources mockedSources = new MockedSources(Collections.singletonMap("1", testTuples));
        CompleteTopologyParam completeTopologyParams = new CompleteTopologyParam();
        completeTopologyParams.setMockedSources(mockedSources);
        Map<String, List<FixedTuple>> results = Testing.completeTopology(cluster, topology, completeTopologyParams);
        List<List<Object>> expectedTuples = Arrays.asList(Arrays.asList(0, 0, 0, 0), Arrays.asList(2, 1, 0, 1), Arrays.asList(4, 1, 1, 2), Arrays.asList(6, 2, 1, 3));
        assertThat(Testing.readTuples(results, "2"), is(expectedTuples));
    }
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) OutputFieldsDeclarer(org.apache.storm.topology.OutputFieldsDeclarer) BaseRichSpout(org.apache.storm.topology.base.BaseRichSpout) Arrays(java.util.Arrays) TopologyContext(org.apache.storm.task.TopologyContext) SubmitOptions(org.apache.storm.generated.SubmitOptions) AssertLoop.assertFailed(org.apache.storm.AssertLoop.assertFailed) Assert.assertThat(org.junit.Assert.assertThat) Map(java.util.Map) TestAggregatesCounter(org.apache.storm.testing.TestAggregatesCounter) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) TestWordSpout(org.apache.storm.testing.TestWordSpout) MockedSources(org.apache.storm.testing.MockedSources) BaseRichBolt(org.apache.storm.topology.base.BaseRichBolt) EmitInfo(org.apache.storm.hooks.info.EmitInfo) FixedTuple(org.apache.storm.testing.FixedTuple) BoltAckInfo(org.apache.storm.hooks.info.BoltAckInfo) Fields(org.apache.storm.tuple.Fields) Collectors(java.util.stream.Collectors) TestWordCounter(org.apache.storm.testing.TestWordCounter) Test(org.junit.jupiter.api.Test) List(java.util.List) Matchers.contains(org.hamcrest.Matchers.contains) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) TrackedTopology(org.apache.storm.testing.TrackedTopology) Config(org.apache.storm.Config) InvalidTopologyException(org.apache.storm.generated.InvalidTopologyException) TestGlobalCount(org.apache.storm.testing.TestGlobalCount) IntStream(java.util.stream.IntStream) TestConfBolt(org.apache.storm.testing.TestConfBolt) Testing(org.apache.storm.Testing) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) FeederSpout(org.apache.storm.testing.FeederSpout) Values(org.apache.storm.tuple.Values) Tuple(org.apache.storm.tuple.Tuple) OutputCollector(org.apache.storm.task.OutputCollector) StormTopology(org.apache.storm.generated.StormTopology) BoltFailInfo(org.apache.storm.hooks.info.BoltFailInfo) CompleteTopologyParam(org.apache.storm.testing.CompleteTopologyParam) BoltExecuteInfo(org.apache.storm.hooks.info.BoltExecuteInfo) TestPlannerSpout(org.apache.storm.testing.TestPlannerSpout) ValueSource(org.junit.jupiter.params.provider.ValueSource) AssertLoop.assertAcked(org.apache.storm.AssertLoop.assertAcked) AckFailMapTracker(org.apache.storm.testing.AckFailMapTracker) TopologyInitialStatus(org.apache.storm.generated.TopologyInitialStatus) BaseTaskHook(org.apache.storm.hooks.BaseTaskHook) Consumer(java.util.function.Consumer) LocalCluster(org.apache.storm.LocalCluster) IntegrationTest(org.apache.storm.testing.IntegrationTest) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) SpoutOutputCollector(org.apache.storm.spout.SpoutOutputCollector) Collections(java.util.Collections) LocalCluster(org.apache.storm.LocalCluster) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) StormTopology(org.apache.storm.generated.StormTopology) Values(org.apache.storm.tuple.Values) FixedTuple(org.apache.storm.testing.FixedTuple) MockedSources(org.apache.storm.testing.MockedSources) Fields(org.apache.storm.tuple.Fields) CompleteTopologyParam(org.apache.storm.testing.CompleteTopologyParam) List(java.util.List) ArrayList(java.util.ArrayList) TestPlannerSpout(org.apache.storm.testing.TestPlannerSpout) Test(org.junit.jupiter.api.Test) IntegrationTest(org.apache.storm.testing.IntegrationTest) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 13 with FixedTuple

use of org.apache.storm.testing.FixedTuple in project storm by apache.

the class TopologyIntegrationTest method testMultiTasksPerCluster.

@Test
public void testMultiTasksPerCluster() throws Exception {
    try (LocalCluster cluster = new LocalCluster.Builder().withSimulatedTime().withSupervisors(4).build()) {
        TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("1", new TestWordSpout(true));
        builder.setBolt("2", new EmitTaskIdBolt(), 3).allGrouping("1").addConfigurations(Collections.singletonMap(Config.TOPOLOGY_TASKS, 6));
        StormTopology topology = builder.createTopology();
        MockedSources mockedSources = new MockedSources(Collections.singletonMap("1", Collections.singletonList(new FixedTuple(new Values("a")))));
        CompleteTopologyParam completeTopologyParams = new CompleteTopologyParam();
        completeTopologyParams.setMockedSources(mockedSources);
        Map<String, List<FixedTuple>> results = Testing.completeTopology(cluster, topology, completeTopologyParams);
        assertThat(Testing.readTuples(results, "2"), containsInAnyOrder(new Values(0), new Values(1), new Values(2), new Values(3), new Values(4), new Values(5)));
    }
}
Also used : LocalCluster(org.apache.storm.LocalCluster) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) StormTopology(org.apache.storm.generated.StormTopology) Values(org.apache.storm.tuple.Values) FixedTuple(org.apache.storm.testing.FixedTuple) MockedSources(org.apache.storm.testing.MockedSources) CompleteTopologyParam(org.apache.storm.testing.CompleteTopologyParam) TestWordSpout(org.apache.storm.testing.TestWordSpout) List(java.util.List) ArrayList(java.util.ArrayList) Test(org.junit.jupiter.api.Test) IntegrationTest(org.apache.storm.testing.IntegrationTest) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 14 with FixedTuple

use of org.apache.storm.testing.FixedTuple in project incubator-heron by apache.

the class ObjectBuilderTest method buildObject_WithArgsBeanReferenceAndOther_BehavesAsExpected.

@Test
public void buildObject_WithArgsBeanReferenceAndOther_BehavesAsExpected() throws ClassNotFoundException, InvocationTargetException, NoSuchFieldException, InstantiationException, IllegalAccessException {
    final String beanReference1 = "bean1";
    List<Object> constructorArgs = new ArrayList<>();
    List<Object> objects = new ArrayList<>();
    List<Object> firstObject = new ArrayList<>();
    objects.add(firstObject);
    constructorArgs.add(objects);
    Object someComponent = new Object();
    final String className = FixedTuple.class.getName();
    final Class testClass = FixedTuple.class;
    final String methodName = "toString";
    List<ConfigurationMethodDefinition> methodDefinitions = new ArrayList<>();
    methodDefinitions.add(mockMethodDefinition);
    when(mockObjectDefinition.getClassName()).thenReturn(className);
    when(mockObjectDefinition.hasConstructorArgs()).thenReturn(true);
    when(mockObjectDefinition.getConstructorArgs()).thenReturn(constructorArgs);
    when(mockObjectDefinition.hasReferences()).thenReturn(true);
    when(mockContext.getComponent(eq(beanReference1))).thenReturn(someComponent);
    when(mockBuilderUtility.resolveReferences(eq(constructorArgs), eq(mockContext))).thenCallRealMethod();
    when(mockBuilderUtility.classForName(eq(className))).thenReturn(testClass);
    when(mockObjectDefinition.getConfigMethods()).thenReturn(methodDefinitions);
    when(mockMethodDefinition.hasReferences()).thenReturn(true);
    when(mockMethodDefinition.getArgs()).thenReturn(null);
    when(mockMethodDefinition.getName()).thenReturn(methodName);
    Object object = subject.buildObject(mockObjectDefinition, mockContext);
    verify(mockObjectDefinition).getClassName();
    verify(mockObjectDefinition).hasConstructorArgs();
    verify(mockObjectDefinition).getConstructorArgs();
    verify(mockObjectDefinition).hasReferences();
    verify(mockBuilderUtility).classForName(same(className));
    verify(mockBuilderUtility).resolveReferences(same(constructorArgs), same(mockContext));
    verify(mockBuilderUtility).applyProperties(eq(mockObjectDefinition), any(Object.class), same(mockContext));
    verify(mockObjectDefinition).getConfigMethods();
    verify(mockMethodDefinition).hasReferences();
    verify(mockMethodDefinition).getArgs();
    verify(mockBuilderUtility, times(2)).resolveReferences(anyListOf(Object.class), same(mockContext));
    verify(mockMethodDefinition).getName();
    assertThat(object, is(instanceOf(FixedTuple.class)));
    FixedTuple fixedTuple = (FixedTuple) object;
    assertThat(fixedTuple.values, is(equalTo(objects)));
    assertThat(fixedTuple.values.get(0), is(equalTo(firstObject)));
}
Also used : FixedTuple(org.apache.storm.testing.FixedTuple) ConfigurationMethodDefinition(com.twitter.heron.eco.definition.ConfigurationMethodDefinition) ArrayList(java.util.ArrayList) Matchers.anyObject(org.mockito.Matchers.anyObject) Test(org.junit.Test)

Example 15 with FixedTuple

use of org.apache.storm.testing.FixedTuple in project incubator-heron by apache.

the class ObjectBuilderTest method buildObject_WithArgsBeanReferenceAndOther_BehavesAsExpected.

@Test
public void buildObject_WithArgsBeanReferenceAndOther_BehavesAsExpected() throws ClassNotFoundException, InvocationTargetException, NoSuchFieldException, InstantiationException, IllegalAccessException {
    final String beanReference1 = "bean1";
    List<Object> constructorArgs = new ArrayList<>();
    List<Object> objects = new ArrayList<>();
    List<Object> firstObject = new ArrayList<>();
    objects.add(firstObject);
    constructorArgs.add(objects);
    Object someComponent = new Object();
    final String className = FixedTuple.class.getName();
    final Class testClass = FixedTuple.class;
    final String methodName = "toString";
    List<ConfigurationMethodDefinition> methodDefinitions = new ArrayList<>();
    methodDefinitions.add(mockMethodDefinition);
    when(mockObjectDefinition.getClassName()).thenReturn(className);
    when(mockObjectDefinition.hasConstructorArgs()).thenReturn(true);
    when(mockObjectDefinition.getConstructorArgs()).thenReturn(constructorArgs);
    when(mockObjectDefinition.hasReferences()).thenReturn(true);
    when(mockContext.getComponent(eq(beanReference1))).thenReturn(someComponent);
    when(mockBuilderUtility.resolveReferences(eq(constructorArgs), eq(mockContext))).thenCallRealMethod();
    when(mockBuilderUtility.classForName(eq(className))).thenReturn(testClass);
    when(mockObjectDefinition.getConfigMethods()).thenReturn(methodDefinitions);
    when(mockMethodDefinition.hasReferences()).thenReturn(true);
    when(mockMethodDefinition.getArgs()).thenReturn(null);
    when(mockMethodDefinition.getName()).thenReturn(methodName);
    Object object = subject.buildObject(mockObjectDefinition, mockContext);
    verify(mockObjectDefinition).getClassName();
    verify(mockObjectDefinition).hasConstructorArgs();
    verify(mockObjectDefinition).getConstructorArgs();
    verify(mockObjectDefinition).hasReferences();
    verify(mockBuilderUtility).classForName(same(className));
    verify(mockBuilderUtility).resolveReferences(same(constructorArgs), same(mockContext));
    verify(mockBuilderUtility).applyProperties(eq(mockObjectDefinition), any(Object.class), same(mockContext));
    verify(mockObjectDefinition).getConfigMethods();
    verify(mockMethodDefinition).hasReferences();
    verify(mockMethodDefinition).getArgs();
    verify(mockBuilderUtility, times(2)).resolveReferences(anyListOf(Object.class), same(mockContext));
    verify(mockMethodDefinition).getName();
    assertThat(object, is(instanceOf(FixedTuple.class)));
    FixedTuple fixedTuple = (FixedTuple) object;
    assertThat(fixedTuple.values, is(equalTo(objects)));
    assertThat(fixedTuple.values.get(0), is(equalTo(firstObject)));
}
Also used : FixedTuple(org.apache.storm.testing.FixedTuple) ConfigurationMethodDefinition(org.apache.heron.eco.definition.ConfigurationMethodDefinition) ArrayList(java.util.ArrayList) Matchers.anyObject(org.mockito.Matchers.anyObject) Test(org.junit.Test)

Aggregations

FixedTuple (org.apache.storm.testing.FixedTuple)15 ArrayList (java.util.ArrayList)14 List (java.util.List)12 StormTopology (org.apache.storm.generated.StormTopology)11 CompleteTopologyParam (org.apache.storm.testing.CompleteTopologyParam)11 MockedSources (org.apache.storm.testing.MockedSources)11 HashMap (java.util.HashMap)10 TestWordSpout (org.apache.storm.testing.TestWordSpout)10 TopologyBuilder (org.apache.storm.topology.TopologyBuilder)10 TestGlobalCount (org.apache.storm.testing.TestGlobalCount)9 Map (java.util.Map)8 Collectors (java.util.stream.Collectors)8 LocalCluster (org.apache.storm.LocalCluster)8 IntegrationTest (org.apache.storm.testing.IntegrationTest)8 Collections (java.util.Collections)7 Config (org.apache.storm.Config)7 Testing (org.apache.storm.Testing)7 TopologyContext (org.apache.storm.task.TopologyContext)7 Arrays (java.util.Arrays)6 Consumer (java.util.function.Consumer)6