Package org.apache.storm
Class Testing
java.lang.Object
org.apache.storm.Testing
A utility that helps with testing topologies, Bolts and Spouts.
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic final classA topology that has all messages captured and can be read later on.static interfaceSimply produces a boolean to see if a specific state is true or false.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final intThe default amount of wall time should be spent waiting for specific conditions to happen.
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic voidadvanceClusterTime(ILocalCluster cluster, Integer secs) Simulated time wait for a cluster.static voidadvanceClusterTime(ILocalCluster cluster, Integer secs, Integer step) Simulated time wait for a cluster.captureTopology(StormTopology topology) Rewrites a topology so that all the tuples flowing through it are captured.static Map<String,List<FixedTuple>> completeTopology(ILocalCluster cluster, StormTopology topology) Run a topology to completion capturing all of the messages that are emitted.static Map<String,List<FixedTuple>> completeTopology(ILocalCluster cluster, StormTopology topology, CompleteTopologyParam param) Run a topology to completion capturing all of the messages that are emitted.static ILocalClustergetLocalCluster(Map<String, Object> clusterConf) Deprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder()....build()) { ...static intDeprecated.static <T> booleanisEvery(Collection<T> data, Predicate<T> pred) Convenience method for data.stream.allMatch(pred).static TrackedTopologymkTrackedTopology(ILocalCluster cluster, StormTopology topology) Deprecated.useTrackedTopologydirectly.multiset(Collection<T> c) Count how many times each element appears in the Collection.static <T> booleanmultiseteq(Collection<T> a, Collection<T> b) Check if two collections are equivalent ignoring the order of elements.readTuples(Map<String, List<FixedTuple>> results, String componentId) Get all of the tuples from a given component on the default stream.readTuples(Map<String, List<FixedTuple>> results, String componentId, String streamId) Get all of the tuples from a given component on a given stream.static voidsimulateWait(ILocalCluster cluster) If using simulated time simulate waiting for 10 seconds.static TupleCreate aTuplefor use with testing.static TupletestTuple(List<Object> values, MkTupleParam param) Create aTuplefor use with testing.trackAndCaptureTopology(ILocalCluster cluster, StormTopology topology) Track and capture a topology.static voidSimulated time wait for a tracked topology.static voidtrackedWait(Testing.CapturedTopology<TrackedTopology> topo, Integer amt) Simulated time wait for a tracked topology.static voidtrackedWait(Testing.CapturedTopology<TrackedTopology> topo, Integer amt, Integer timeoutMs) Simulated time wait for a tracked topology.static voidtrackedWait(TrackedTopology topo) Simulated time wait for a tracked topology.static voidtrackedWait(TrackedTopology topo, Integer amt) Simulated time wait for a tracked topology.static voidtrackedWait(TrackedTopology topo, Integer amt, Integer timeoutMs) Simulated time wait for a tracked topology.static voidwhileTimeout(long timeoutMs, Testing.Condition condition, Runnable body) Continue to execute body repeatedly until condition is true or TEST_TIMEOUT_MS has passed.static voidwhileTimeout(Testing.Condition condition, Runnable body) Continue to execute body repeatedly until condition is true or TEST_TIMEOUT_MS has passed.static voidwithLocalCluster(MkClusterParam param, TestJob code) Deprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder()....build()) { ...static voidwithLocalCluster(TestJob code) Deprecated.use ``` try (LocalCluster cluster = new LocalCluster()) { ...static voidwithSimulatedTime(Runnable code) Deprecated.use ``` try (Time.SimulatedTime time = new Time.SimulatedTime()) { ...static voidwithSimulatedTimeLocalCluster(MkClusterParam param, TestJob code) Deprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder().withSimulatedTime()....build()) { ...static voidDeprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder().withSimulatedTime().build()) { ...static voidwithTrackedCluster(MkClusterParam param, TestJob code) Deprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder().withTracked()....build()) { ...static voidwithTrackedCluster(TestJob code) Deprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder().withTracked().build()) { ...
- 
Field Details- 
TEST_TIMEOUT_MSpublic static final int TEST_TIMEOUT_MSThe default amount of wall time should be spent waiting for specific conditions to happen. Default is 10 seconds unless the environment variable STORM_TEST_TIMEOUT_MS is set.
 
- 
- 
Constructor Details- 
Testingpublic Testing()
 
- 
- 
Method Details- 
whileTimeoutContinue to execute body repeatedly until condition is true or TEST_TIMEOUT_MS has passed.- Parameters:
- condition- what we are waiting for
- body- what to run in the loop
- Throws:
- AssertionError- if the loop timed out.
 
- 
whileTimeoutContinue to execute body repeatedly until condition is true or TEST_TIMEOUT_MS has passed.- Parameters:
- timeoutMs- the number of ms to wait before timing out.
- condition- what we are waiting for
- body- what to run in the loop
- Throws:
- AssertionError- if the loop timed out.
 
- 
isEveryConvenience method for data.stream.allMatch(pred).
- 
withSimulatedTimeDeprecated.use ``` try (Time.SimulatedTime time = new Time.SimulatedTime()) { ... } ```Run with simulated time.- Parameters:
- code- what to run
 
- 
withLocalClusterDeprecated.use ``` try (LocalCluster cluster = new LocalCluster()) { ... } ```Run with a local cluster.- Parameters:
- code- what to run
 
- 
withLocalClusterDeprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder()....build()) { ... } ```Run with a local cluster.- Parameters:
- param- configs to set in the cluster
- code- what to run
 
- 
getLocalClusterDeprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder()....build()) { ... } ```Run with a local cluster.- Parameters:
- clusterConf- some configs to set in the cluster
 
- 
withSimulatedTimeLocalClusterDeprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder().withSimulatedTime().build()) { ... } ```Run with a local cluster.- Parameters:
- code- what to run
 
- 
withSimulatedTimeLocalClusterDeprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder().withSimulatedTime()....build()) { ... } ```Run with a local cluster.- Parameters:
- param- configs to set in the cluster
- code- what to run
 
- 
withTrackedClusterDeprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder().withTracked().build()) { ... } ```Run with a local cluster.- Parameters:
- code- what to run
 
- 
withTrackedClusterDeprecated.use ``` try (LocalCluster cluster = new LocalCluster.Builder().withTracked()....build()) { ... } ```Run with a local tracked cluster.- Parameters:
- param- configs to set in the cluster
- code- what to run
 
- 
globalAmtDeprecated.In a tracked topology some metrics are tracked. This provides a way to get those metrics. This is intended mostly for internal testing.- Parameters:
- id- the id of the tracked cluster
- key- the name of the metric to get.
- Returns:
- the metric
 
- 
trackAndCaptureTopologypublic static Testing.CapturedTopology<TrackedTopology> trackAndCaptureTopology(ILocalCluster cluster, StormTopology topology) Track and capture a topology. This is intended mostly for internal testing.
- 
captureTopologyRewrites a topology so that all the tuples flowing through it are captured.- Parameters:
- topology- the topology to rewrite
- Returns:
- the modified topology and a new Bolt that can retrieve the captured tuples.
 
- 
completeTopologypublic static Map<String,List<FixedTuple>> completeTopology(ILocalCluster cluster, StormTopology topology) throws InterruptedException, org.apache.storm.thrift.TException Run a topology to completion capturing all of the messages that are emitted. This only works when all of the spouts are instances ofCompletableSpout.- Parameters:
- cluster- the cluster to submit the topology to
- topology- the topology itself
- Returns:
- a map of the component to the list of tuples it emitted
- Throws:
- org.apache.storm.thrift.TException- on any error from nimbus
- InterruptedException
 
- 
completeTopologypublic static Map<String,List<FixedTuple>> completeTopology(ILocalCluster cluster, StormTopology topology, CompleteTopologyParam param) throws org.apache.storm.thrift.TException, InterruptedException Run a topology to completion capturing all of the messages that are emitted. This only works when all of the spouts are instances ofCompletableSpoutor are overwritten by MockedSources in param- Parameters:
- cluster- the cluster to submit the topology to
- topology- the topology itself
- param- parameters to describe how to complete a topology
- Returns:
- a map of the component to the list of tuples it emitted
- Throws:
- org.apache.storm.thrift.TException- on any error from nimbus.
- InterruptedException
 
- 
simulateWaitIf using simulated time simulate waiting for 10 seconds. This is intended for internal testing only.- Throws:
- InterruptedException
 
- 
readTuplespublic static List<List<Object>> readTuples(Map<String, List<FixedTuple>> results, String componentId) Get all of the tuples from a given component on the default stream.- Parameters:
- results- the results of running a completed topology
- componentId- the id of the component to look at
- Returns:
- a list of the tuple values.
 
- 
readTuplespublic static List<List<Object>> readTuples(Map<String, List<FixedTuple>> results, String componentId, String streamId) Get all of the tuples from a given component on a given stream.- Parameters:
- results- the results of running a completed topology
- componentId- the id of the component to look at
- streamId- the id of the stream to look for.
- Returns:
- a list of the tuple values.
 
- 
mkTrackedTopology@Deprecated public static TrackedTopology mkTrackedTopology(ILocalCluster cluster, StormTopology topology) Deprecated.useTrackedTopologydirectly.Create a tracked topology.
- 
trackedWaitSimulated time wait for a tracked topology. This is intended for internal testing.
- 
trackedWaitSimulated time wait for a tracked topology. This is intended for internal testing.
- 
trackedWaitpublic static void trackedWait(Testing.CapturedTopology<TrackedTopology> topo, Integer amt, Integer timeoutMs) Simulated time wait for a tracked topology. This is intended for internal testing.
- 
trackedWaitSimulated time wait for a tracked topology. This is intended for internal testing.
- 
trackedWaitSimulated time wait for a tracked topology. This is intended for internal testing.
- 
trackedWaitSimulated time wait for a tracked topology. This is intended for internal testing.
- 
advanceClusterTimepublic static void advanceClusterTime(ILocalCluster cluster, Integer secs) throws InterruptedException Simulated time wait for a cluster. This is intended for internal testing.- Throws:
- InterruptedException
 
- 
advanceClusterTimepublic static void advanceClusterTime(ILocalCluster cluster, Integer secs, Integer step) throws InterruptedException Simulated time wait for a cluster. This is intended for internal testing.- Throws:
- InterruptedException
 
- 
multisetCount how many times each element appears in the Collection.- Parameters:
- c- a collection of values
- Returns:
- a map of the unique values in c to the count of those values.
 
- 
multiseteqCheck if two collections are equivalent ignoring the order of elements.
- 
testTupleCreate aTuplefor use with testing.- Parameters:
- values- the values to appear in the tuple
 
- 
testTupleCreate aTuplefor use with testing.- Parameters:
- values- the values to appear in the tuple
- param- parametrs describing more details about the tuple
 
 
-