blob: 205c8712bd981401b7c62230dbfbb9d7336a3491 [file] [log] [blame]
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed 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.addressing.wsdl;
import java.io.File;
import java.net.URL;
import java.util.List;
import javax.wsdl.Definition;
import javax.wsdl.Fault;
import javax.wsdl.Input;
import javax.wsdl.Operation;
import javax.wsdl.Output;
import javax.wsdl.PortType;
import javax.wsdl.factory.WSDLFactory;
import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
import junit.framework.TestCase;
public class WSDL11ActionHelperTest extends TestCase {
String testWSDLFile = "/target/test-resources/wsdl/actionTests.wsdl";
Definition definition;
protected void setUp() throws Exception {
super.setUp();
WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
reader.setFeature("javax.wsdl.importDocuments", false);
reader.setFeature("javax.wsdl.verbose", false);
URL wsdlFile = new File(System.getProperty("basedir")+testWSDLFile).toURL();//getClass().getClassLoader().getResource(testWSDLFile);
definition = reader.readWSDL(wsdlFile.toString());
}
// Test DefaultActionPattern (no names in WSDL)
// Test not required for Fault as Fault elements MUST have naes per the WSDL 1.1 spec
// portType=withoutWSAWActionNoName
// operation=echo
public void testGenerateInputActionNoNames(){
String expectedAction = "http://ws.apache.org/axis2/actiontest/withoutWSAWActionNoName/echoRequest";
PortType pt = definition.getPortType(new QName("http://ws.apache.org/axis2/actiontest/","withoutWSAWActionNoName"));
List operations = pt.getOperations();
Operation op = (Operation)operations.get(0);
Input in = op.getInput();
String actualAction = WSDL11ActionHelper.getActionFromInputElement(definition,pt,op,in);
assertEquals(expectedAction, actualAction);
}
public void testGenerateOutputActionNoNames(){
String expectedAction = "http://ws.apache.org/axis2/actiontest/withoutWSAWActionNoName/echoResponse";
PortType pt = definition.getPortType(new QName("http://ws.apache.org/axis2/actiontest/","withoutWSAWActionNoName"));
List operations = pt.getOperations();
Operation op = (Operation)operations.get(0);
Output out = op.getOutput();
String actualAction = WSDL11ActionHelper.getActionFromOutputElement(definition,pt,op,out);
assertEquals(expectedAction, actualAction);
}
// Test DefaultActionPattern (names explicitly set in WSDL)
// portType=withoutWSAWAction
// operation=echo
public void testGenerateInputAction(){
String expectedAction = "http://ws.apache.org/axis2/actiontest/withoutWSAWAction/NamedInput";
PortType pt = definition.getPortType(new QName("http://ws.apache.org/axis2/actiontest/","withoutWSAWAction"));
List operations = pt.getOperations();
Operation op = (Operation)operations.get(0);
Input in = op.getInput();
String actualAction = WSDL11ActionHelper.getActionFromInputElement(definition,pt,op,in);
assertEquals(expectedAction, actualAction);
}
public void testGenerateOutputAction(){
String expectedAction = "http://ws.apache.org/axis2/actiontest/withoutWSAWAction/NamedOutput";
PortType pt = definition.getPortType(new QName("http://ws.apache.org/axis2/actiontest/","withoutWSAWAction"));
List operations = pt.getOperations();
Operation op = (Operation)operations.get(0);
Output out = op.getOutput();
String actualAction = WSDL11ActionHelper.getActionFromOutputElement(definition,pt,op,out);
assertEquals(expectedAction, actualAction);
}
public void testGenerateFaultAction(){
String expectedAction = "http://ws.apache.org/axis2/actiontest/withoutWSAWAction/echo/Fault/echoFault";
PortType pt = definition.getPortType(new QName("http://ws.apache.org/axis2/actiontest/","withoutWSAWAction"));
List operations = pt.getOperations();
Operation op = (Operation)operations.get(0);
Fault fault = op.getFault("echoFault");
String actualAction = WSDL11ActionHelper.getActionFromFaultElement(definition,pt,op,fault);
assertEquals(expectedAction, actualAction);
}
// Test reading wsaw:Action values
// portType=withWSAWAction
// operation=echo
public void testGetWSAWInputAction(){
String expectedAction = "http://example.org/action/echoIn";
PortType pt = definition.getPortType(new QName("http://ws.apache.org/axis2/actiontest/","withWSAWAction"));
List operations = pt.getOperations();
Operation op = (Operation)operations.get(0);
Input in = op.getInput();
String actualAction = WSDL11ActionHelper.getActionFromInputElement(definition,pt,op,in);
assertEquals(expectedAction, actualAction);
}
public void testGetWSAWOutputAction(){
String expectedAction = "http://example.org/action/echoOut";
PortType pt = definition.getPortType(new QName("http://ws.apache.org/axis2/actiontest/","withWSAWAction"));
List operations = pt.getOperations();
Operation op = (Operation)operations.get(0);
Output out = op.getOutput();
String actualAction = WSDL11ActionHelper.getActionFromOutputElement(definition,pt,op,out);
assertEquals(expectedAction, actualAction);
}
public void testGetWSAWFaultAction(){
String expectedAction = "http://example.org/action/echoFault";
PortType pt = definition.getPortType(new QName("http://ws.apache.org/axis2/actiontest/","withWSAWAction"));
List operations = pt.getOperations();
Operation op = (Operation)operations.get(0);
Fault fault = op.getFault("echoFault");
String actualAction = WSDL11ActionHelper.getActionFromFaultElement(definition,pt,op,fault);
assertEquals(expectedAction, actualAction);
}
}