Ejemplo n.º 1
0
  @Validated
  @Test
  public void testAddHeaderElements() throws Exception {
    javax.xml.soap.SOAPMessage soapMessage =
        javax.xml.soap.MessageFactory.newInstance().createMessage();
    javax.xml.soap.SOAPEnvelope soapEnv = soapMessage.getSOAPPart().getEnvelope();
    javax.xml.soap.SOAPHeader header = soapEnv.getHeader();
    try {
      header.addChildElement("ebxmlms1");
    } catch (Exception e) {
      assertTrue(e instanceof SOAPException);
    }

    assertTrue(
        header.addChildElement("ebxmlms1", "ns-prefix", "http://test.apache.org")
            instanceof SOAPHeaderElement);
    ((SOAPHeaderElement) header.getFirstChild()).addTextNode("test add");

    assertTrue(
        header.addHeaderElement(
                soapEnv.createName("ebxmlms2", "ns-prefix", "http://test2.apache.org"))
            != null);
    assertTrue(
        header.addHeaderElement(
                new PrefixedQName("http://test3.apache.org", "ebxmlms3", "ns-prefix"))
            != null);

    SOAPHeaderElement firstChild = (SOAPHeaderElement) header.getFirstChild();
    assertEquals("ebxmlms1", firstChild.getLocalName());
    assertEquals("ns-prefix", firstChild.getPrefix());
    assertEquals("http://test.apache.org", firstChild.getNamespaceURI());

    SOAPHeaderElement secondChild = (SOAPHeaderElement) firstChild.getNextSibling();
    assertEquals("ebxmlms2", secondChild.getLocalName());
    assertEquals("ns-prefix", secondChild.getPrefix());
    assertEquals("http://test2.apache.org", secondChild.getNamespaceURI());

    SOAPHeaderElement lastChild = (SOAPHeaderElement) header.getLastChild();
    assertEquals("ebxmlms3", lastChild.getLocalName());
    assertEquals("ns-prefix", lastChild.getPrefix());
    assertEquals("http://test3.apache.org", lastChild.getNamespaceURI());

    SOAPHeaderElement fourthChild = (SOAPHeaderElement) lastChild.getPreviousSibling();
    assertEquals("ebxmlms2", fourthChild.getLocalName());
    assertEquals("ns-prefix", fourthChild.getPrefix());
    assertEquals("http://test2.apache.org", fourthChild.getNamespaceURI());

    Iterator it = header.getChildElements();
    int numOfHeaderElements = 0;
    while (it.hasNext()) {
      Object o = it.next();
      assertTrue(o instanceof SOAPHeaderElement);
      SOAPHeaderElement el = (SOAPHeaderElement) o;
      String lName = el.getLocalName();
      assertTrue(lName.equals("ebxmlms" + ++numOfHeaderElements));
    }
    assertEquals(3, numOfHeaderElements);
  }