/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.axis2.handlers.addressing; import org.apache.axiom.soap.RolePlayer; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.AddressingConstants; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.ArrayList; import java.util.List; public class AddressingSubmissionInHandlerTest extends AddressingInHandlerTestBase { private static Log log = LogFactory.getLog(AddressingSubmissionInHandlerTest.class); /** @param testName */ public AddressingSubmissionInHandlerTest(String testName) { super(testName); } protected void setUp() throws Exception { super.setUp(); inHandler = new AddressingInHandler(); addressingNamespace = AddressingConstants.Submission.WSA_NAMESPACE; versionDirectory = "submission"; fromAddress = "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"; secondRelationshipType = "axis2:some.custom.relationship"; } public void testExtractAddressingInformationFromHeaders() throws Exception { Options options = extractAddressingInformationFromHeaders(null); assertNotNull(options); assertNotNull(options.getTo()); } public void testExtractAddressingInformationFromHeadersCustomRole() throws Exception { testFileName = "soapmessage.customrole.xml"; extractAddressingInformationFromHeaders(new RolePlayer() { public List getRoles() { ArrayList al = new ArrayList(); al.add("http://my/custom/role"); return al; } public boolean isUltimateDestination() { return false; } }); } public void testMessageWithOmittedAction() throws Exception { try { testMessageWithOmittedHeaders("noAction"); fail("An AxisFault should have been thrown due to a missing Action header."); } catch (AxisFault af) { //test passed } } public void testMessageWithOmittedFaultTo() throws Exception { try { Options options = testMessageWithOmittedHeaders("noFaultTo"); EndpointReference epr = options.getFaultTo(); assertNull("The FaultTo endpoint reference is not null.", epr); } catch (AxisFault af) { af.printStackTrace(); log.error(af.getMessage()); fail("An unexpected AxisFault was thrown due to a missing FaultTo header."); } } public void testMessageWithOmittedFrom() throws Exception { try { Options options = testMessageWithOmittedHeaders("noFrom"); EndpointReference epr = options.getFrom(); assertNull("The From endpoint reference is not null.", epr); } catch (AxisFault af) { af.printStackTrace(); log.error(af.getMessage()); fail("An unexpected AxisFault was thrown due to a missing From header."); } } public void testMessageWithOmittedMessageID() throws Exception { try { testMessageWithOmittedHeaders("noMessageID"); fail("An AxisFault should have been thrown due to a missing MessageID header."); } catch (AxisFault af) { //test passed } } public void testMessageWithOmittedMessageIDReplyToAndFaultTo() throws Exception { try { Options options = testMessageWithOmittedHeaders("noMessageIDNoReplyToNoFaultTo"); String messageID = options.getMessageId(); assertNull("The message id is not null.", messageID); } catch (AxisFault af) { af.printStackTrace(); log.error(af.getMessage()); fail("An unexpected AxisFault was thrown due to missing MessageID, ReplyTo, and FaultTo headers."); } } public void testMessageWithOmittedReplyTo() throws Exception { try { Options options = testMessageWithOmittedHeaders("noReplyTo"); EndpointReference epr = options.getReplyTo(); String address = epr.getAddress(); assertEquals("The address of the ReplyTo endpoint reference is not the none URI.", AddressingConstants.Final.WSA_NONE_URI, address); } catch (AxisFault af) { af.printStackTrace(); log.error(af.getMessage()); fail("An unexpected AxisFault was thrown due to a missing ReplyTo header."); } } public void testMessageWithOmittedTo() throws Exception { try { testMessageWithOmittedHeaders("noTo"); fail("An AxisFault should have been thrown due to a missing To header."); } catch (AxisFault af) { //test passed } } }