@Test public void simpleStream() { StreamDefinition streamDefinition = new StreamDefinition("test", "foo | bar"); List<StreamAppDefinition> requests = streamDefinition.getAppDefinitions(); assertEquals(2, requests.size()); StreamAppDefinition source = requests.get(0); StreamAppDefinition sink = requests.get(1); assertEquals("foo", source.getName()); assertEquals("test", source.getStreamName()); assertEquals(2, source.getProperties().size()); assertEquals("test.foo", source.getProperties().get(BindingPropertyKeys.OUTPUT_DESTINATION)); assertEquals("test", source.getProperties().get(BindingPropertyKeys.OUTPUT_REQUIRED_GROUPS)); assertEquals("bar", sink.getName()); assertEquals("test", sink.getStreamName()); assertEquals(2, sink.getProperties().size()); assertEquals("test.foo", sink.getProperties().get(BindingPropertyKeys.INPUT_DESTINATION)); assertEquals("test", sink.getProperties().get(BindingPropertyKeys.INPUT_GROUP)); }
@Test public void parameterizedApps() { StreamDefinition streamDefinition = new StreamDefinition("test", "foo --x=1 --y=two | bar --z=3"); List<StreamAppDefinition> requests = streamDefinition.getAppDefinitions(); assertEquals(2, requests.size()); StreamAppDefinition source = requests.get(0); StreamAppDefinition sink = requests.get(1); assertEquals("foo", source.getName()); assertEquals("test", source.getStreamName()); Map<String, String> sourceParameters = source.getProperties(); assertEquals(4, sourceParameters.size()); assertEquals("1", sourceParameters.get("x")); assertEquals("two", sourceParameters.get("y")); assertEquals("bar", sink.getName()); assertEquals("test", sink.getStreamName()); Map<String, String> sinkParameters = sink.getProperties(); assertEquals(3, sinkParameters.size()); assertEquals("3", sinkParameters.get("z")); }
@Test public void quotesInParams() { StreamDefinition streamDefinition = new StreamDefinition("test", "foo --bar='payload.matches(''hello'')' | file"); List<StreamAppDefinition> requests = streamDefinition.getAppDefinitions(); assertEquals(2, requests.size()); StreamAppDefinition source = requests.get(0); assertEquals("foo", source.getName()); assertEquals("test", source.getStreamName()); Map<String, String> sourceParameters = source.getProperties(); assertEquals(3, sourceParameters.size()); assertEquals("payload.matches('hello')", sourceParameters.get("bar")); }
@Test public void quotesInParams2() { StreamDefinition streamDefinition = new StreamDefinition( "test", "http --port=9700 | filter --expression=payload.matches('hello world') | file"); List<StreamAppDefinition> requests = streamDefinition.getAppDefinitions(); assertEquals(3, requests.size()); StreamAppDefinition filter = requests.get(1); assertEquals("filter", filter.getName()); assertEquals("test", filter.getStreamName()); Map<String, String> filterParameters = filter.getProperties(); assertEquals(5, filterParameters.size()); assertEquals("payload.matches('hello world')", filterParameters.get("expression")); }