如何使用camel mock 获取full XML?
How to use camel mock to get full XML?
在 camel 的单元测试中,我可以使用 xpath 进行断言以检查输出 xml 是否正确。但是,我想使用 XMLUnit 来针对另一个整个 xml 文件验证 xml。那可能吗?以下测试成功,但我想调整它以获得实际的 XML.
@Test
public void testSupplierSwitch() throws Exception
{
MockEndpoint mock = getMockEndpoint("mock:market-out");
mock.expectedMessageCount(1);
EdielBean edielBean = (EdielBean)context.getBean("edielbean");
edielBean.startSupplierSwitch(createCustomer(), createOrder(), "54", "43");
assertMockEndpointsSatisfied();
}
这是一个如何解决它的例子,使用 mockEndpoint.getExchanges()
public class XmlUnitTest extends CamelTestSupport{
@EndpointInject(uri = "mock:market-out")
MockEndpoint marketOut;
@Override
@Before
public void setUp() throws Exception {
super.setUp();
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:in")
.setBody(constant("<xml>data</xml>"))
.to(marketOut.getEndpointUri());
}
});
}
@Test
public void sameXml() throws Exception {
marketOut.expectedMessageCount(1);
template.sendBody("direct:in", "body");
marketOut.assertIsSatisfied();
final String actual = marketOut.getExchanges().get(0).getIn().getBody(String.class);
final Diff diff = XMLUnit.compareXML("<xml>data</xml>", actual);
assertTrue(diff.similar());
assertTrue(diff.identical());
}
@Test()
public void notSameXml() throws Exception {
marketOut.expectedMessageCount(1);
template.sendBody("direct:in", "body");
marketOut.assertIsSatisfied();
final String actual = marketOut.getExchanges().get(0).getIn().getBody(String.class);
final Diff diff = XMLUnit.compareXML("<xml>invalid</xml>", actual);
assertFalse(diff.similar());
assertFalse(diff.identical());
}
}
在 camel 的单元测试中,我可以使用 xpath 进行断言以检查输出 xml 是否正确。但是,我想使用 XMLUnit 来针对另一个整个 xml 文件验证 xml。那可能吗?以下测试成功,但我想调整它以获得实际的 XML.
@Test
public void testSupplierSwitch() throws Exception
{
MockEndpoint mock = getMockEndpoint("mock:market-out");
mock.expectedMessageCount(1);
EdielBean edielBean = (EdielBean)context.getBean("edielbean");
edielBean.startSupplierSwitch(createCustomer(), createOrder(), "54", "43");
assertMockEndpointsSatisfied();
}
这是一个如何解决它的例子,使用 mockEndpoint.getExchanges()
public class XmlUnitTest extends CamelTestSupport{
@EndpointInject(uri = "mock:market-out")
MockEndpoint marketOut;
@Override
@Before
public void setUp() throws Exception {
super.setUp();
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:in")
.setBody(constant("<xml>data</xml>"))
.to(marketOut.getEndpointUri());
}
});
}
@Test
public void sameXml() throws Exception {
marketOut.expectedMessageCount(1);
template.sendBody("direct:in", "body");
marketOut.assertIsSatisfied();
final String actual = marketOut.getExchanges().get(0).getIn().getBody(String.class);
final Diff diff = XMLUnit.compareXML("<xml>data</xml>", actual);
assertTrue(diff.similar());
assertTrue(diff.identical());
}
@Test()
public void notSameXml() throws Exception {
marketOut.expectedMessageCount(1);
template.sendBody("direct:in", "body");
marketOut.assertIsSatisfied();
final String actual = marketOut.getExchanges().get(0).getIn().getBody(String.class);
final Diff diff = XMLUnit.compareXML("<xml>invalid</xml>", actual);
assertFalse(diff.similar());
assertFalse(diff.identical());
}
}