From a1e73b6ee81763fbcba06df8d42007f1ebf36a8f Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Wed, 13 Oct 2010 10:22:39 -0400 Subject: [PATCH] INT-1382 added tests for Splitter with DynamicExpression --- ...essionSplitterIntegrationTests-context.xml | 22 +++++ ...micExpressionSplitterIntegrationTests.java | 89 +++++++++++++++++++ .../splitter/expressions.properties | 1 + 3 files changed, 112 insertions(+) create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/splitter/DynamicExpressionSplitterIntegrationTests-context.xml create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/splitter/DynamicExpressionSplitterIntegrationTests.java create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/splitter/expressions.properties diff --git a/spring-integration-core/src/test/java/org/springframework/integration/splitter/DynamicExpressionSplitterIntegrationTests-context.xml b/spring-integration-core/src/test/java/org/springframework/integration/splitter/DynamicExpressionSplitterIntegrationTests-context.xml new file mode 100644 index 0000000000..bd5fc433d1 --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/splitter/DynamicExpressionSplitterIntegrationTests-context.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + diff --git a/spring-integration-core/src/test/java/org/springframework/integration/splitter/DynamicExpressionSplitterIntegrationTests.java b/spring-integration-core/src/test/java/org/springframework/integration/splitter/DynamicExpressionSplitterIntegrationTests.java new file mode 100644 index 0000000000..b51b8fa181 --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/splitter/DynamicExpressionSplitterIntegrationTests.java @@ -0,0 +1,89 @@ +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.integration.splitter; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.integration.Message; +import org.springframework.integration.MessageChannel; +import org.springframework.integration.core.PollableChannel; +import org.springframework.integration.support.MessageBuilder; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * @author Mark Fisher + */ +@ContextConfiguration +@RunWith(SpringJUnit4ClassRunner.class) +public class DynamicExpressionSplitterIntegrationTests { + + @Autowired + private MessageChannel input; + + @Autowired + private PollableChannel output; + + + @Test + public void simple() { + Message message = MessageBuilder.withPayload(new TestBean()).setHeader("foo", "foo").build(); + this.input.send(message); + Message one = output.receive(0); + Message two = output.receive(0); + Message three = output.receive(0); + Message four = output.receive(0); + assertEquals(new Integer(1), one.getPayload()); + assertEquals("foo", one.getHeaders().get("foo")); + assertEquals(new Integer(2), two.getPayload()); + assertEquals("foo", two.getHeaders().get("foo")); + assertEquals(new Integer(3), three.getPayload()); + assertEquals("foo", three.getHeaders().get("foo")); + assertEquals(new Integer(4), four.getPayload()); + assertEquals("foo", four.getHeaders().get("foo")); + assertNull(output.receive(0)); + } + + + static class TestBean { + + private final List numbers = new ArrayList(); + + public TestBean() { + for (int i = 1; i <= 10; i++) { + this.numbers.add(i); + } + } + + public List getNumbers() { + return this.numbers; + } + + public String[] split(String s) { + return s.split(","); + } + } + +} diff --git a/spring-integration-core/src/test/java/org/springframework/integration/splitter/expressions.properties b/spring-integration-core/src/test/java/org/springframework/integration/splitter/expressions.properties new file mode 100644 index 0000000000..9bfa728289 --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/splitter/expressions.properties @@ -0,0 +1 @@ +split.lessThan5=payload.numbers.?[#this < 5] \ No newline at end of file