Repository: camel Updated Branches: refs/heads/camel-2.18.x 6d68dac3d -> 8351873ee refs/heads/master 586f1413a -> e8cfbec69
CAMEL-10431: camel-elslq Fix lookup for named parameter from headers Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e8cfbec6 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e8cfbec6 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e8cfbec6 Branch: refs/heads/master Commit: e8cfbec699da0efa89c13c4fef0cc7e90d1b8aef Parents: 586f141 Author: Tomas Turek <ttu...@redhat.com> Authored: Tue Nov 1 16:26:05 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Nov 1 12:08:52 2016 -0400 ---------------------------------------------------------------------- .../component/elsql/ElsqlSqlMapSource.java | 2 +- .../elsql/ElSqlProducerBodySimpleTest.java | 42 ++++++++++++++++++++ .../src/test/resources/elsql/projects.elsql | 4 ++ 3 files changed, 47 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/e8cfbec6/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlSqlMapSource.java ---------------------------------------------------------------------- diff --git a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlSqlMapSource.java b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlSqlMapSource.java index eb489af..263ed8c 100644 --- a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlSqlMapSource.java +++ b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlSqlMapSource.java @@ -67,7 +67,7 @@ public class ElsqlSqlMapSource extends AbstractSqlParameterSource { } else { answer = bodyMap.get(paramName); if (answer == null) { - headersMap.get(paramName); + answer = headersMap.get(paramName); } } return answer; http://git-wip-us.apache.org/repos/asf/camel/blob/e8cfbec6/components/camel-elsql/src/test/java/org/apache/camel/component/elsql/ElSqlProducerBodySimpleTest.java ---------------------------------------------------------------------- diff --git a/components/camel-elsql/src/test/java/org/apache/camel/component/elsql/ElSqlProducerBodySimpleTest.java b/components/camel-elsql/src/test/java/org/apache/camel/component/elsql/ElSqlProducerBodySimpleTest.java index 63f2ed9..5fab274 100644 --- a/components/camel-elsql/src/test/java/org/apache/camel/component/elsql/ElSqlProducerBodySimpleTest.java +++ b/components/camel-elsql/src/test/java/org/apache/camel/component/elsql/ElSqlProducerBodySimpleTest.java @@ -16,11 +16,13 @@ */ package org.apache.camel.component.elsql; +import java.util.Collections; import java.util.List; import java.util.Map; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.component.sql.SqlConstants; import org.apache.camel.impl.JndiRegistry; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.After; @@ -68,6 +70,42 @@ public class ElSqlProducerBodySimpleTest extends CamelTestSupport { assertEquals("Linux", row.get("PROJECT")); } + @Test + public void testBodyParameter() throws InterruptedException { + MockEndpoint mock = getMockEndpoint("mock:result"); + mock.expectedMessageCount(1); + mock.message(0).body().isInstanceOf(List.class); + mock.message(0).header(SqlConstants.SQL_ROW_COUNT).isEqualTo(1); + + template.sendBody("direct:parameters", Collections.singletonMap("id", 1)); + + mock.assertIsSatisfied(); + + List<?> received = mock.getReceivedExchanges().get(0).getIn().getBody(List.class); + + Map<?, ?> row = assertIsInstanceOf(Map.class, received.get(0)); + + assertEquals("Camel", row.get("PROJECT")); + } + + @Test + public void testHeadersParameter() throws InterruptedException { + MockEndpoint mock = getMockEndpoint("mock:result"); + mock.expectedMessageCount(1); + mock.message(0).body().isInstanceOf(List.class); + mock.message(0).header(SqlConstants.SQL_ROW_COUNT).isEqualTo(1); + + template.sendBodyAndHeader("direct:parameters", "", "id", 1); + + mock.assertIsSatisfied(); + + List<?> received = mock.getReceivedExchanges().get(0).getIn().getBody(List.class); + + Map<?, ?> row = assertIsInstanceOf(Map.class, received.get(0)); + + assertEquals("Camel", row.get("PROJECT")); + } + @After public void tearDown() throws Exception { super.tearDown(); @@ -82,6 +120,10 @@ public class ElSqlProducerBodySimpleTest extends CamelTestSupport { from("direct:simple") .to("elsql:projectsByIdBody:elsql/projects.elsql?dataSource=#dataSource") .to("mock:result"); + + from("direct:parameters") + .to("elsql:projectById:elsql/projects.elsql?dataSource=#dataSource") + .to("mock:result"); } }; } http://git-wip-us.apache.org/repos/asf/camel/blob/e8cfbec6/components/camel-elsql/src/test/resources/elsql/projects.elsql ---------------------------------------------------------------------- diff --git a/components/camel-elsql/src/test/resources/elsql/projects.elsql b/components/camel-elsql/src/test/resources/elsql/projects.elsql index 74f16b9..470a33f 100644 --- a/components/camel-elsql/src/test/resources/elsql/projects.elsql +++ b/components/camel-elsql/src/test/resources/elsql/projects.elsql @@ -12,3 +12,7 @@ SELECT * FROM projects ORDER BY id +@NAME(projectById) + SELECT * + FROM projects + WHERE id = :id