public void testDocLitInput() throws Exception {
ByteArrayOutputStream baos;
Binding<?> binding = getBinding("HelloWorld-DOC.wsdl");
PhaseInterceptorChain phaseIn = new PhaseInterceptorChain();
phaseIn.add(binding.getInterceptors(Phase.ServerIn));
Message msg = new MessageImpl();
msg.put(Binding.class, binding);
msg.setContent(InputStream.class, getClass().getResourceAsStream("HelloWorld-DOC-Input.xml"));
msg.put(MessageExchangeFactory.class, new MockExchangeFactory());
phaseIn.doIntercept(msg);
NormalizedMessage nm = msg.getContent(NormalizedMessage.class);
Document doc = DomUtil.parse(nm.getContent());
baos = new ByteArrayOutputStream();
DomUtil.getTransformerFactory().newTransformer().transform(nm.getContent(), new StreamResult(baos));
log.info(baos.toString());
// check jbi message element
Element root = DomUtil.getFirstChildElement(doc);
assertNotNull(root);
assertEquals(JbiConstants.WSDL11_WRAPPER_NAMESPACE, root.getNamespaceURI());
assertEquals("message", root.getLocalName());
assertEquals("Hello", root.getAttribute("name"));
// check body part
Element part = DomUtil.getFirstChildElement(root);
assertNotNull(part);
assertEquals(JbiConstants.WSDL11_WRAPPER_NAMESPACE, part.getNamespaceURI());
assertEquals("part", part.getLocalName());
// check body element
Element hello = DomUtil.getFirstChildElement(part);
assertNotNull(hello);
assertEquals("uri:HelloWorld", hello.getNamespaceURI());
assertEquals("HelloRequest", hello.getLocalName());
// check body content
Element e = DomUtil.getFirstChildElement(hello);
assertNotNull(e);
assertEquals("uri:HelloWorld", e.getNamespaceURI());
assertEquals("text", e.getLocalName());
assertEquals("hello", e.getTextContent());
// check header part
Element part2 = DomUtil.getNextSiblingElement(part);
assertNotNull(part2);
assertEquals(JbiConstants.WSDL11_WRAPPER_NAMESPACE, part2.getNamespaceURI());
assertEquals("part", part2.getLocalName());
// check header element
Element header = DomUtil.getFirstChildElement(part2);
assertNotNull(header);
assertEquals("uri:HelloWorld", header.getNamespaceURI());
assertEquals("HelloHeader", header.getLocalName());
// check header content
e = DomUtil.getFirstChildElement(header);
assertNotNull(e);
assertEquals("uri:HelloWorld", e.getNamespaceURI());
assertEquals("id", e.getLocalName());
assertEquals("1234567890", e.getTextContent());
PhaseInterceptorChain phaseOut = new PhaseInterceptorChain();
phaseOut.add(binding.getInterceptors(Phase.ClientOut));
baos = new ByteArrayOutputStream();
Message msgOut = new MessageImpl();
msgOut.put(Binding.class, binding);
msgOut.setContent(OutputStream.class, baos);
msgOut.setContent(MessageExchange.class, msg.getContent(MessageExchange.class));
msgOut.setContent(NormalizedMessage.class, nm);
msgOut.put(SoapVersion.class, msg.get(SoapVersion.class));
phaseOut.doIntercept(msgOut);
log.info(baos.toString());
Document node = DomUtil.parse(new ByteArrayInputStream(baos.toByteArray()));
Element envelope = DomUtil.getFirstChildElement(node);