blob: 915de6a71524b98b03d4d8282a8fdff330360e64 [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.context.tests;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.axis2.jaxws.context.sei.MessageContext;
import org.apache.axis2.jaxws.context.sei.MessageContextService;
import org.apache.axis2.jaxws.framework.AbstractTestCase;
import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.Holder;
import javax.xml.ws.WebServiceClient;
public class MessageContextTests extends AbstractTestCase {
static final WebServiceClient wsc = MessageContextService.class.getAnnotation(WebServiceClient.class);
String axisEndpoint = "http://localhost:6060/axis2/services/MessageContextService.MessageContextPort";
public static Test suite() {
return getTestSetup(new TestSuite(MessageContextTests.class));
}
public void testWSCtxt_WSDL_SERVICE_read() {
String type_expected = QName.class.getName();
String value_expected = "{" + wsc.targetNamespace() + "}" + wsc.name();
runTest(javax.xml.ws.handler.MessageContext.WSDL_SERVICE, type_expected, value_expected, false);
}
public void testWSCtxt_WSDL_PORT_read() {
String type_expected = QName.class.getName();
String value_expected = "{" + wsc.targetNamespace() + "}MessageContextPort";
runTest(javax.xml.ws.handler.MessageContext.WSDL_PORT, type_expected, value_expected, false);
}
public void testWSCtxt_WSDL_OPERATION_read() {
String type_expected = QName.class.getName();
String value_expected = "isPropertyPresent";
runTest(javax.xml.ws.handler.MessageContext.WSDL_OPERATION, type_expected, value_expected, false);
}
public void testWSCtxt_WSDL_INTERFACE_read() {
String type_expected = QName.class.getName();
String value_expected = "{" + wsc.targetNamespace() + "}MessageContext";
runTest(javax.xml.ws.handler.MessageContext.WSDL_INTERFACE, type_expected, value_expected, false);
}
public void testWSCtxt_WSDL_DESCRIPTION_read() {
String type_expected = java.net.URI.class.getName();
String value_expected = "META-INF/MessageContext.wsdl";
runTest(javax.xml.ws.handler.MessageContext.WSDL_DESCRIPTION, type_expected, value_expected, false);
}
private void runTest(String propName, String exType, String exValue, boolean isValueFullySpecified) {
MessageContext port = getPort();
Holder<String> type = new Holder<String>();
Holder<String> value = new Holder<String>();
Holder<Boolean> isFound = new Holder<Boolean>();
Holder<String> propertyName = new Holder<String>(propName);
port.isPropertyPresent(propertyName, value, type, isFound);
System.out.println("Property = " + propName + " found=" + isFound.value);
System.out.println("Value = " + value.value + "/" + exValue);
System.out.println("Type = " + type.value + "/" + exType);
assertTrue("WebServiceContext did not expose " + propertyName.value, isFound.value);
if (exType != null)
assertTrue("Type of " + propertyName.value + " does not match [" + type.value + ", " + exType + "]",
type.value != null && type.value.indexOf(exType) > -1);
if (exValue != null) {
if (isValueFullySpecified) {
assertEquals("Value of " + propertyName.value + " does not match", exValue, value.value);
} else {
assertTrue("Value of " + propertyName.value + " does not contain " + exValue, value.value.indexOf(exValue) != -1);
}
}
}
public MessageContext getPort() {
MessageContextService service = new MessageContextService();
MessageContext port = service.getMessageContextPort();
BindingProvider p = (BindingProvider) port;
p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, axisEndpoint);
return port;
}
}