use of org.apache.storm.testing.CompleteTopologyParam in project storm by apache.
the class TopologyIntegrationTest method tryCompleteWordCountTopology.
private boolean tryCompleteWordCountTopology(LocalCluster cluster, StormTopology topology) throws Exception {
try {
List<FixedTuple> testTuples = Arrays.asList("nathan", "bob", "joey", "nathan").stream().map(value -> new FixedTuple(new Values(value))).collect(Collectors.toList());
MockedSources mockedSources = new MockedSources(Collections.singletonMap("1", testTuples));
CompleteTopologyParam completeTopologyParam = new CompleteTopologyParam();
completeTopologyParam.setMockedSources(mockedSources);
completeTopologyParam.setStormConf(Collections.singletonMap(Config.TOPOLOGY_WORKERS, 2));
Testing.completeTopology(cluster, topology, completeTopologyParam);
return false;
} catch (InvalidTopologyException e) {
return true;
}
}
use of org.apache.storm.testing.CompleteTopologyParam in project storm by apache.
the class TopologyIntegrationTest method testKryoDecoratorsConfig.
@Test
public void testKryoDecoratorsConfig() throws Exception {
Map<String, Object> daemonConf = new HashMap<>();
daemonConf.put(Config.TOPOLOGY_SKIP_MISSING_KRYO_REGISTRATIONS, true);
daemonConf.put(Config.TOPOLOGY_KRYO_DECORATORS, "this-is-overridden");
try (LocalCluster cluster = new LocalCluster.Builder().withSimulatedTime().withDaemonConf(daemonConf).build()) {
TopologyBuilder topologyBuilder = new TopologyBuilder();
topologyBuilder.setSpout("1", new TestPlannerSpout(new Fields("conf")));
topologyBuilder.setBolt("2", new TestConfBolt(Collections.singletonMap(Config.TOPOLOGY_KRYO_DECORATORS, Arrays.asList("one", "two")))).shuffleGrouping("1");
List<FixedTuple> testTuples = Arrays.asList(new Values(Config.TOPOLOGY_KRYO_DECORATORS)).stream().map(value -> new FixedTuple(value)).collect(Collectors.toList());
MockedSources mockedSources = new MockedSources(Collections.singletonMap("1", testTuples));
CompleteTopologyParam completeTopologyParams = new CompleteTopologyParam();
completeTopologyParams.setMockedSources(mockedSources);
completeTopologyParams.setStormConf(Collections.singletonMap(Config.TOPOLOGY_KRYO_DECORATORS, Arrays.asList("one", "three")));
Map<String, List<FixedTuple>> results = Testing.completeTopology(cluster, topologyBuilder.createTopology(), completeTopologyParams);
List<Object> concatValues = Testing.readTuples(results, "2").stream().flatMap(values -> values.stream()).collect(Collectors.toList());
assertThat(concatValues.get(0), is(Config.TOPOLOGY_KRYO_DECORATORS));
assertThat(concatValues.get(1), is(Arrays.asList("one", "two", "three")));
}
}
use of org.apache.storm.testing.CompleteTopologyParam 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());
}
}
use of org.apache.storm.testing.CompleteTopologyParam 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));
}
}
use of org.apache.storm.testing.CompleteTopologyParam 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)));
}
}
Aggregations