You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/10/20 14:17:47 UTC
[camel] branch main updated: CAMEL-20008 - Improve assertion to compare xml (java 21 fix) (#11788)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new d599de23707 CAMEL-20008 - Improve assertion to compare xml (java 21 fix) (#11788)
d599de23707 is described below
commit d599de23707e0851d47fa84d70fa1e802c2c49c0
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Oct 20 16:17:40 2023 +0200
CAMEL-20008 - Improve assertion to compare xml (java 21 fix) (#11788)
---
.../XMLTokenExpressionIteratorGroupingTest.java | 8 +-
.../XMLTokenizeExpressionIteratorWModeTest.java | 8 +-
.../XMLTokenizeLanguageGroupingTest.java | 76 ++++++++-------
.../XMLTokenizeLanguageStreamingFileTest.java | 24 ++++-
.../xtokenizer/XMLTokenizeLanguageTest.java | 65 +++++++------
.../XMLTokenizeWrapLanguageGroupingTest.java | 97 ++++++++++---------
.../xtokenizer/XMLTokenizeWrapLanguageTest.java | 104 +++++++++++----------
7 files changed, 221 insertions(+), 161 deletions(-)
diff --git a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenExpressionIteratorGroupingTest.java b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenExpressionIteratorGroupingTest.java
index 3394a77d181..47fc659ecb7 100644
--- a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenExpressionIteratorGroupingTest.java
+++ b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenExpressionIteratorGroupingTest.java
@@ -28,6 +28,7 @@ import java.util.Map;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.xmlunit.assertj3.XmlAssert;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -430,7 +431,12 @@ public class XMLTokenExpressionIteratorGroupingTest {
assertEquals(expected.length, results.size(), "token count");
for (int i = 0; i < expected.length; i++) {
- assertEquals(expected[i], results.get(i), "mismatch [" + i + "]");
+ String expectedToken = expected[i];
+ if (expectedToken.startsWith("<")) {
+ XmlAssert.assertThat(results.get(i)).and(expectedToken).areIdentical();
+ } else {
+ assertEquals(expectedToken, results.get(i), "mismatch [" + i + "]");
+ }
}
}
}
diff --git a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeExpressionIteratorWModeTest.java b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeExpressionIteratorWModeTest.java
index 2722e690290..7b330c0b829 100644
--- a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeExpressionIteratorWModeTest.java
+++ b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeExpressionIteratorWModeTest.java
@@ -29,6 +29,7 @@ import java.util.Map;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.xmlunit.assertj3.XmlAssert;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -143,7 +144,12 @@ public class XMLTokenizeExpressionIteratorWModeTest {
assertEquals(expected.length, results.size(), "token count");
for (int i = 0; i < expected.length; i++) {
- assertEquals(expected[i], results.get(i), "mismatch [" + i + "]");
+ String expectedToken = expected[i];
+ if (expectedToken.startsWith("<")) {
+ XmlAssert.assertThat(results.get(i)).and(expectedToken).areIdentical();
+ } else {
+ assertEquals(expectedToken, results.get(i), "mismatch [" + i + "]");
+ }
}
}
diff --git a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageGroupingTest.java b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageGroupingTest.java
index ee7bfcd0b07..6fd4822be08 100644
--- a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageGroupingTest.java
+++ b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageGroupingTest.java
@@ -21,119 +21,125 @@ import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.support.builder.Namespaces;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
+import org.xmlunit.assertj3.XmlAssert;
public class XMLTokenizeLanguageGroupingTest extends CamelTestSupport {
@Test
public void testSendClosedTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived("<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"></c:child>"
- + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"></c:child></group>");
+ String expected = "<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"></c:child>"
+ + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"></c:child></group>";
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendClosedTagWithLineBreaksMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived("<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\">\n</c:child>"
- + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\">\n</c:child></group>");
+ String expected = "<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\">\n</c:child>"
+ + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\">\n</c:child></group>";
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?>\n" + "<c:parent xmlns:c='urn:c'>\n"
+ "<c:child some_attr='a' anotherAttr='a'>\n" + "</c:child>\n"
+ "<c:child some_attr='b' anotherAttr='b'>\n" + "</c:child>\n" + "</c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendSelfClosingTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived("<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"/>"
- + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"/></group>");
+ String expected = "<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"/>"
+ + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"/></group>";
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a' /><c:child some_attr='b' anotherAttr='b' /></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMixedClosingTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived("<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\">ha</c:child>"
- + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"/></group>",
- "<group><c:child some_attr='c' xmlns:c=\"urn:c\"></c:child></group>");
+ String[] expected = new String[] {
+ "<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\">ha</c:child>"
+ + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"/></group>",
+ "<group><c:child some_attr='c' xmlns:c=\"urn:c\"></c:child></group>" };
template.sendBody(
"direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'>ha</c:child>"
+ "<c:child some_attr='b' anotherAttr='b' /><c:child some_attr='c'></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMixedClosingTagInsideMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<group><c:child name='child1' xmlns:c=\"urn:c\"><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>"
- + "<c:child name='child2' xmlns:c=\"urn:c\"><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></group>");
+ String expected
+ = "<group><c:child name='child1' xmlns:c=\"urn:c\"><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>"
+ + "<c:child name='child2' xmlns:c=\"urn:c\"><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></group>";
template.sendBody(
"direct:start",
"<c:parent xmlns:c='urn:c'><c:child name='child1'><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>"
+ "<c:child name='child2'><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendNamespacedChildMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<group><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child><c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></group>");
+ String expected
+ = "<group><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child><c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></group>";
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child>"
+ "<c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendNamespacedParentMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<group><c:child some_attr='a' anotherAttr='a' xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"></c:child>"
- + "<c:child some_attr='b' anotherAttr='b' xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"/></group>");
+ String expected = "<group><c:child some_attr='a' anotherAttr='a' xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"></c:child>"
+ + "<c:child some_attr='b' anotherAttr='b' xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"/></group>";
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='a' anotherAttr='a'></c:child>"
+ "<c:child some_attr='b' anotherAttr='b'/></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMoreParentsMessageToTokenize() throws Exception {
- MockEndpoint result = getMockEndpoint("mock:result");
- result.expectedBodiesReceived(
- "<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"></c:child>"
- + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"/></group>");
+ String expected
+ = "<group><c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"></c:child>"
+ + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"/></group>";
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ "<c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'/></c:parent></grandparent></g:greatgrandparent>");
+ verify(expected);
+ }
+
+ private void verify(String... expected) throws Exception {
+ getMockEndpoint("mock:result").expectedMessageCount(expected.length);
+
MockEndpoint.assertIsSatisfied(context);
+
+ int i = 0;
+ for (String target : expected) {
+ String body = getMockEndpoint("mock:result").getReceivedExchanges().get(i).getMessage().getBody(String.class);
+ XmlAssert.assertThat(body).and(target).areIdentical();
+ i++;
+ }
}
@Override
diff --git a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageStreamingFileTest.java b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageStreamingFileTest.java
index 1cade1f395c..7b39662d63c 100644
--- a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageStreamingFileTest.java
+++ b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageStreamingFileTest.java
@@ -26,6 +26,7 @@ import org.apache.camel.test.junit5.CamelTestSupport;
import org.apache.camel.test.junit5.TestSupport;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
+import org.xmlunit.assertj3.XmlAssert;
public class XMLTokenizeLanguageStreamingFileTest extends CamelTestSupport {
@TempDir
@@ -33,11 +34,11 @@ public class XMLTokenizeLanguageStreamingFileTest extends CamelTestSupport {
@Test
public void testFromFile() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived("<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"></c:child>",
- "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"></c:child>",
- "<c:child some_attr='c' anotherAttr='c' xmlns:c=\"urn:c\"></c:child>",
- "<c:child some_attr='d' anotherAttr='d' xmlns:c=\"urn:c\"></c:child>");
+ String[] expected = new String[] {
+ "<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"></c:child>",
+ "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"></c:child>",
+ "<c:child some_attr='c' anotherAttr='c' xmlns:c=\"urn:c\"></c:child>",
+ "<c:child some_attr='d' anotherAttr='d' xmlns:c=\"urn:c\"></c:child>" };
String body
= "<?xml version='1.0' encoding='UTF-8'?>" + "<c:parent xmlns:c='urn:c'>"
@@ -47,7 +48,20 @@ public class XMLTokenizeLanguageStreamingFileTest extends CamelTestSupport {
template.sendBodyAndHeader(TestSupport.fileUri(testDirectory), body, Exchange.FILE_NAME, "myxml.xml");
+ verify(expected);
+ }
+
+ private void verify(String... expected) throws Exception {
+ getMockEndpoint("mock:result").expectedMessageCount(expected.length);
+
MockEndpoint.assertIsSatisfied(context);
+
+ int i = 0;
+ for (String target : expected) {
+ String body = getMockEndpoint("mock:result").getReceivedExchanges().get(i).getMessage().getBody(String.class);
+ XmlAssert.assertThat(body).and(target).areIdentical();
+ i++;
+ }
}
@Override
diff --git a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageTest.java b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageTest.java
index e6953f83f91..09c2c601082 100644
--- a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageTest.java
+++ b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguageTest.java
@@ -21,117 +21,130 @@ import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.support.builder.Namespaces;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
+import org.xmlunit.assertj3.XmlAssert;
public class XMLTokenizeLanguageTest extends CamelTestSupport {
@Test
public void testSendClosedTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived(
+ String[] expected = new String[] {
"<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"></c:child>",
- "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"></c:child>");
+ "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"></c:child>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendClosedTagWithLineBreaksMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived(
+ String[] expected = new String[] {
"<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\">\n</c:child>",
- "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\">\n</c:child>");
+ "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\">\n</c:child>" };
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?>\n" + "<c:parent xmlns:c='urn:c'>\n"
+ "<c:child some_attr='a' anotherAttr='a'>\n" + "</c:child>\n"
+ "<c:child some_attr='b' anotherAttr='b'>\n" + "</c:child>\n" + "</c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendSelfClosingTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived("<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"/>",
- "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"/>");
+ String[] expected = new String[] {
+ "<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\"/>",
+ "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"/>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a' /><c:child some_attr='b' anotherAttr='b' /></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMixedClosingTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived(
+ String[] expected = new String[] {
"<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\">ha</c:child>",
"<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\"/>",
- "<c:child some_attr='c' xmlns:c=\"urn:c\"></c:child>");
+ "<c:child some_attr='c' xmlns:c=\"urn:c\"></c:child>" };
template.sendBody(
"direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'>ha</c:child>"
+ "<c:child some_attr='b' anotherAttr='b' /><c:child some_attr='c'></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMixedClosingTagInsideMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<c:child name='child1' xmlns:c=\"urn:c\"><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>",
- "<c:child name='child2' xmlns:c=\"urn:c\"><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child>");
+ String[] expected = new String[] {
+ "<c:child name='child1' xmlns:c=\"urn:c\"><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>",
+ "<c:child name='child2' xmlns:c=\"urn:c\"><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child>" };
template.sendBody(
"direct:start",
"<c:parent xmlns:c='urn:c'><c:child name='child1'><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>"
+ "<c:child name='child2'><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendNamespacedChildMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived(
+ String[] expected = new String[] {
"<c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child>",
- "<c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' />");
+ "<c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' />" };
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child>"
+ "<c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendNamespacedParentMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived(
+ String[] expected = new String[] {
"<c:child some_attr='a' anotherAttr='a' xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"></c:child>",
- "<c:child some_attr='b' anotherAttr='b' xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"/>");
+ "<c:child some_attr='b' anotherAttr='b' xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"/>" };
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='a' anotherAttr='a'></c:child>"
+ "<c:child some_attr='b' anotherAttr='b'/></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMoreParentsMessageToTokenize() throws Exception {
- MockEndpoint result = getMockEndpoint("mock:result");
- result.expectedBodiesReceived(
+ String[] expected = new String[] {
"<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"></c:child>",
- "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"/>");
+ "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"/>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ "<c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'/></c:parent></grandparent></g:greatgrandparent>");
+ verify(expected);
+ }
+
+ private void verify(String... expected) throws Exception {
+ getMockEndpoint("mock:result").expectedMessageCount(expected.length);
+
MockEndpoint.assertIsSatisfied(context);
+
+ int i = 0;
+ for (String target : expected) {
+ String body = getMockEndpoint("mock:result").getReceivedExchanges().get(i).getMessage().getBody(String.class);
+ XmlAssert.assertThat(body).and(target).areIdentical();
+ i++;
+ }
}
@Override
diff --git a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeWrapLanguageGroupingTest.java b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeWrapLanguageGroupingTest.java
index 1d8f6ff4c8c..d56f9b2abde 100644
--- a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeWrapLanguageGroupingTest.java
+++ b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeWrapLanguageGroupingTest.java
@@ -21,139 +21,148 @@ import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.support.builder.Namespaces;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
+import org.xmlunit.assertj3.XmlAssert;
public class XMLTokenizeWrapLanguageGroupingTest extends CamelTestSupport {
@Test
public void testSendClosedTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'></c:child>"
- + "<c:child some_attr='b' anotherAttr='b'></c:child></c:parent>");
+ String expected
+ = "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'></c:child>"
+ + "<c:child some_attr='b' anotherAttr='b'></c:child></c:parent>";
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendClosedTagWithLineBreaksMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?>\n<c:parent xmlns:c='urn:c'>\n<c:child some_attr='a' anotherAttr='a'>\n</c:child>"
- + "<c:child some_attr='b' anotherAttr='b'>\n</c:child></c:parent>");
+ String expected
+ = "<?xml version='1.0' encoding='UTF-8'?>\n<c:parent xmlns:c='urn:c'>\n<c:child some_attr='a' anotherAttr='a'>\n</c:child>"
+ + "<c:child some_attr='b' anotherAttr='b'>\n</c:child></c:parent>";
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?>\n" + "<c:parent xmlns:c='urn:c'>\n"
+ "<c:child some_attr='a' anotherAttr='a'>\n" + "</c:child>\n"
+ "<c:child some_attr='b' anotherAttr='b'>\n" + "</c:child>\n" + "</c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendSelfClosingTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a' />"
- + "<c:child some_attr='b' anotherAttr='b' /></c:parent>");
+ String expected
+ = "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a' />"
+ + "<c:child some_attr='b' anotherAttr='b' /></c:parent>";
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a' /><c:child some_attr='b' anotherAttr='b' /></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMixedClosingTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result").expectedBodiesReceived(
+ String[] expected = new String[] {
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'>ha</c:child>"
- + "<c:child some_attr='b' anotherAttr='b' /></c:parent>",
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='c'></c:child></c:parent>");
+ + "<c:child some_attr='b' anotherAttr='b' /></c:parent>",
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='c'></c:child></c:parent>" };
template.sendBody(
"direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'>ha</c:child>"
+ "<c:child some_attr='b' anotherAttr='b' /><c:child some_attr='c'></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMixedClosingTagInsideMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<c:parent xmlns:c='urn:c'><c:child name='child1'><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>"
- + "<c:child name='child2'><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></c:parent>");
+ String expected
+ = "<c:parent xmlns:c='urn:c'><c:child name='child1'><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>"
+ + "<c:child name='child2'><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></c:parent>";
template.sendBody(
"direct:start",
"<c:parent xmlns:c='urn:c'><c:child name='child1'><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>"
+ "<c:child name='child2'><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendNamespacedChildMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child>"
- + "<c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></c:parent>");
+ String expected
+ = "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child>"
+ + "<c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></c:parent>";
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child>"
+ "<c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendNamespacedParentMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='a' anotherAttr='a'></c:child>"
- + "<c:child some_attr='b' anotherAttr='b'/></c:parent>");
+ String expected
+ = "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='a' anotherAttr='a'></c:child>"
+ + "<c:child some_attr='b' anotherAttr='b'/></c:parent>";
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'/></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMoreParentsMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
- + "<c:child some_attr='a' anotherAttr='a'></c:child>"
- + "<c:child some_attr='b' anotherAttr='b'/></c:parent></grandparent></g:greatgrandparent>");
+ String expected
+ = "<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ + "<c:child some_attr='a' anotherAttr='a'></c:child>"
+ + "<c:child some_attr='b' anotherAttr='b'/></c:parent></grandparent></g:greatgrandparent>";
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ "<c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'/></c:parent></grandparent></g:greatgrandparent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendParentMessagesWithDifferentAttributesToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='e' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
- + "<c:child some_attr='a' anotherAttr='a'></c:child></c:parent></g:grandparent>",
- "<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='f' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
- + "<c:child some_attr='b' anotherAttr='b'/></c:parent></g:grandparent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='e' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ + "<c:child some_attr='a' anotherAttr='a'></c:child></c:parent></g:grandparent>",
+ "<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='f' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ + "<c:child some_attr='b' anotherAttr='b'/></c:parent></g:grandparent>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='e' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ "<c:child some_attr='a' anotherAttr='a'></c:child></c:parent><c:parent name='f' xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='b' anotherAttr='b'/>"
+ "</c:parent></g:grandparent>");
+
+ verify(expected);
+ }
+
+ private void verify(String... expected) throws Exception {
+ getMockEndpoint("mock:result").expectedMessageCount(expected.length);
+
MockEndpoint.assertIsSatisfied(context);
+
+ int i = 0;
+ for (String target : expected) {
+ String body = getMockEndpoint("mock:result").getReceivedExchanges().get(i).getMessage().getBody(String.class);
+ XmlAssert.assertThat(body).and(target).areIdentical();
+ i++;
+ }
}
@Override
diff --git a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeWrapLanguageTest.java b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeWrapLanguageTest.java
index 98b7a2dae2b..fa184a1a824 100644
--- a/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeWrapLanguageTest.java
+++ b/components/camel-stax/src/test/java/org/apache/camel/language/xtokenizer/XMLTokenizeWrapLanguageTest.java
@@ -21,143 +21,149 @@ import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.support.builder.Namespaces;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
+import org.xmlunit.assertj3.XmlAssert;
public class XMLTokenizeWrapLanguageTest extends CamelTestSupport {
@Test
public void testSendClosedTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'></c:child></c:parent>",
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='b' anotherAttr='b'></c:child></c:parent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'></c:child></c:parent>",
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='b' anotherAttr='b'></c:child></c:parent>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendClosedTagWithLineBreaksMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?>\n<c:parent xmlns:c='urn:c'>\n<c:child some_attr='a' anotherAttr='a'>\n</c:child></c:parent>",
- "<?xml version='1.0' encoding='UTF-8'?>\n<c:parent xmlns:c='urn:c'>\n<c:child some_attr='b' anotherAttr='b'>\n</c:child></c:parent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?>\n<c:parent xmlns:c='urn:c'>\n<c:child some_attr='a' anotherAttr='a'>\n</c:child></c:parent>",
+ "<?xml version='1.0' encoding='UTF-8'?>\n<c:parent xmlns:c='urn:c'>\n<c:child some_attr='b' anotherAttr='b'>\n</c:child></c:parent>" };
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?>\n" + "<c:parent xmlns:c='urn:c'>\n"
+ "<c:child some_attr='a' anotherAttr='a'>\n" + "</c:child>\n"
+ "<c:child some_attr='b' anotherAttr='b'>\n" + "</c:child>\n" + "</c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendSelfClosingTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a' /></c:parent>",
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='b' anotherAttr='b' /></c:parent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a' /></c:parent>",
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='b' anotherAttr='b' /></c:parent>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a' /><c:child some_attr='b' anotherAttr='b' /></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMixedClosingTagMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'>ha</c:child></c:parent>",
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='b' anotherAttr='b' /></c:parent>",
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='c'></c:child></c:parent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'>ha</c:child></c:parent>",
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='b' anotherAttr='b' /></c:parent>",
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='c'></c:child></c:parent>" };
template.sendBody(
"direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child some_attr='a' anotherAttr='a'>ha</c:child>"
+ "<c:child some_attr='b' anotherAttr='b' /><c:child some_attr='c'></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMixedClosingTagInsideMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<c:parent xmlns:c='urn:c'><c:child name='child1'><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child></c:parent>",
- "<c:parent xmlns:c='urn:c'><c:child name='child2'><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></c:parent>");
+ String[] expected = new String[] {
+ "<c:parent xmlns:c='urn:c'><c:child name='child1'><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child></c:parent>",
+ "<c:parent xmlns:c='urn:c'><c:child name='child2'><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></c:parent>" };
template.sendBody(
"direct:start",
"<c:parent xmlns:c='urn:c'><c:child name='child1'><grandchild name='grandchild1'/> <grandchild name='grandchild2'/></c:child>"
+ "<c:child name='child2'><grandchild name='grandchild1'></grandchild><grandchild name='grandchild2'></grandchild></c:child></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendNamespacedChildMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child></c:parent>",
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></c:parent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child></c:parent>",
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></c:parent>" };
template.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c'><c:child xmlns:c='urn:c' some_attr='a' anotherAttr='a'></c:child>"
+ "<c:child xmlns:c='urn:c' some_attr='b' anotherAttr='b' /></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendNamespacedParentMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='a' anotherAttr='a'></c:child></c:parent>",
- "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='b' anotherAttr='b'/></c:parent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='a' anotherAttr='a'></c:child></c:parent>",
+ "<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='b' anotherAttr='b'/></c:parent>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'/></c:parent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendMoreParentsMessageToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
- + "<c:child some_attr='a' anotherAttr='a'></c:child></c:parent></grandparent></g:greatgrandparent>",
- "<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
- + "<c:child some_attr='b' anotherAttr='b'/></c:parent></grandparent></g:greatgrandparent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ + "<c:child some_attr='a' anotherAttr='a'></c:child></c:parent></grandparent></g:greatgrandparent>",
+ "<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ + "<c:child some_attr='b' anotherAttr='b'/></c:parent></grandparent></g:greatgrandparent>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ "<c:child some_attr='a' anotherAttr='a'></c:child><c:child some_attr='b' anotherAttr='b'/></c:parent></grandparent></g:greatgrandparent>");
- MockEndpoint.assertIsSatisfied(context);
+ verify(expected);
}
@Test
public void testSendParentMessagesWithDifferentAttributesToTokenize() throws Exception {
- getMockEndpoint("mock:result")
- .expectedBodiesReceived(
- "<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='e' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
- + "<c:child some_attr='a' anotherAttr='a'></c:child></c:parent></g:grandparent>",
- "<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='f' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
- + "<c:child some_attr='b' anotherAttr='b'/></c:parent></g:grandparent>");
+ String[] expected = new String[] {
+ "<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='e' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ + "<c:child some_attr='a' anotherAttr='a'></c:child></c:parent></g:grandparent>",
+ "<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='f' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ + "<c:child some_attr='b' anotherAttr='b'/></c:parent></g:grandparent>" };
template
.sendBody("direct:start",
"<?xml version='1.0' encoding='UTF-8'?><g:grandparent xmlns:g='urn:g'><c:parent name='e' xmlns:c='urn:c' xmlns:d=\"urn:d\">"
+ "<c:child some_attr='a' anotherAttr='a'></c:child></c:parent><c:parent name='f' xmlns:c='urn:c' xmlns:d=\"urn:d\"><c:child some_attr='b' anotherAttr='b'/>"
+ "</c:parent></g:grandparent>");
+
+ verify(expected);
+ }
+
+ private void verify(String... expected) throws Exception {
+ getMockEndpoint("mock:result").expectedMessageCount(expected.length);
+
MockEndpoint.assertIsSatisfied(context);
+
+ int i = 0;
+ for (String target : expected) {
+ String body = getMockEndpoint("mock:result").getReceivedExchanges().get(i).getMessage().getBody(String.class);
+ XmlAssert.assertThat(body).and(target).areIdentical();
+ i++;
+ }
}
@Override