blob: 9e6fca943208cac7e249da4d83e91357e6c9f283 [file] [log] [blame]
/*
* 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.jaxws.description;
import junit.framework.TestCase;
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.namespace.QName;
import javax.xml.ws.Holder;
/**
* Validate that the information needed to resolve an incoming Doc/Lit/Bare message is setup
* correctly via annotations.
*/
public class DocLitBareResolveOperationTests extends TestCase {
private ServiceDescription svcDesc;
private EndpointDescription endpointDesc;
private AxisService axisService;
protected void setUp() {
if (svcDesc == null) {
svcDesc = DescriptionFactory.createServiceDescription(DLBResolveOperation.class);
assertNotNull(svcDesc);
EndpointDescription[] epDescs = svcDesc.getEndpointDescriptions();
assertNotNull(epDescs);
assertEquals(1, epDescs.length);
endpointDesc = epDescs[0];
axisService = endpointDesc.getAxisService();
assertNotNull(axisService);
}
}
public void testDocLitBareSingleInParam() {
QName operationQName = new QName("", "op1");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op1param1PartName");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNotNull(axisOperationFromElement);
assertEquals(axisOperationFromOpName, axisOperationFromElement);
QName wrongMessageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"wrongElementName");
AxisOperation axisOperationFromWrongElement =
axisService.getOperationByMessageElementQName(wrongMessageElementQName);
assertNull(axisOperationFromWrongElement);
QName wrongMessageElementNSQName = new QName("wrong.namespace",
"op1param1PartName");
AxisOperation axisOperationFromWrongElementNS =
axisService.getOperationByMessageElementQName(wrongMessageElementNSQName);
assertNull(axisOperationFromWrongElementNS);
}
public void testDocLitBareSingleInOutParam() {
QName operationQName = new QName("", "op2");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op2param1PartName");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNotNull(axisOperationFromElement);
assertEquals(axisOperationFromOpName, axisOperationFromElement);
}
public void testDocLitBareTwoInParams() {
QName operationQName = new QName("", "op3");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op3param1PartName");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNotNull(axisOperationFromElement);
assertEquals(axisOperationFromOpName, axisOperationFromElement);
QName wrongMessageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op3param2PartName");
AxisOperation axisOperationFromWrongElement =
axisService.getOperationByMessageElementQName(wrongMessageElementQName);
assertNull(axisOperationFromWrongElement);
}
public void testDocLitBareOutParamOnly() {
QName operationQName = new QName("", "op4");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op4param1PartName");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNull(axisOperationFromElement);
}
public void testDocLitBareOutParamFirst() {
QName operationQName = new QName("", "op5");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op5param2PartName");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNotNull(axisOperationFromElement);
assertEquals(axisOperationFromOpName, axisOperationFromElement);
QName wrongMessageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op5param1PartName");
AxisOperation axisOperationFromWrongElement =
axisService.getOperationByMessageElementQName(wrongMessageElementQName);
assertNull(axisOperationFromWrongElement);
}
public void testDocLitBareDefaultPartAnno() {
QName operationQName = new QName("", "op6");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName = new QName("http://description.jaxws.axis2.apache.org/",
"op6");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNotNull(axisOperationFromElement);
assertEquals(axisOperationFromOpName, axisOperationFromElement);
}
public void testDocLitBareNoParams() {
QName operationQName = new QName("", "op7");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName = new QName("http://description.jaxws.axis2.apache.org/",
"op7");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNull(axisOperationFromElement);
}
public void testDocLitBareHeaderParamFirst() {
QName operationQName = new QName("", "op8");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op8param2PartName");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNotNull(axisOperationFromElement);
assertEquals(axisOperationFromOpName, axisOperationFromElement);
QName wrongMessageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op8param1PartName");
AxisOperation axisOperationFromWrongElement =
axisService.getOperationByMessageElementQName(wrongMessageElementQName);
assertNull(axisOperationFromWrongElement);
}
public void testDocLitWrapped() {
QName operationQName = new QName("", "op10");
AxisOperation axisOperationFromOpName = axisService.getOperation(operationQName);
assertNotNull(axisOperationFromOpName);
QName messageElementQName =
new QName("org.apache.axis2.jaxws.description.DLBResolveOperation",
"op10param1PartName");
AxisOperation axisOperationFromElement =
axisService.getOperationByMessageElementQName(messageElementQName);
assertNull(axisOperationFromElement);
}
}
@WebService
class DLBResolveOperation {
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
public void op1(
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op1param1PartName") int param1) {
}
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
public void op2(
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op2param1PartName",
mode = WebParam.Mode.INOUT) Holder<Integer> param1) {
}
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
public void op3(
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op3param1PartName",
mode = WebParam.Mode.INOUT) Holder<Integer> param1,
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op3param2PartName",
mode = WebParam.Mode.IN) int param2) {
}
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
public void op4(
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op4param1PartName",
mode = WebParam.Mode.OUT) Holder<Integer> param1) {
}
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
public void op5(
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op5param1PartName",
mode = WebParam.Mode.OUT) Holder<Integer> param1,
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op5param2PartName",
mode = WebParam.Mode.IN) int param2) {
}
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
public void op6(
@WebParam int param1) {
}
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
public void op7() {
}
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.BARE)
public void op8(
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op8param1PartName",
mode = WebParam.Mode.IN,
header = true) Integer param1,
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op8param2PartName",
mode = WebParam.Mode.IN) int param2) {
}
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public void op10(
@WebParam(targetNamespace = "org.apache.axis2.jaxws.description.DLBResolveOperation",
name = "op10param1PartName") int param1) {
}
}