From 6561836eb77f51b8882be7d6f87c71fa536260d0 Mon Sep 17 00:00:00 2001 From: Andrea Gazzarini Date: Fri, 27 Feb 2009 13:35:21 +0000 Subject: QPID-1579 : WSDMADapter is no longer a big test case. Instead there's a separated test case class for each WSDM Interface. As conseguence of that, WSDM is simply a grouping suite. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@748515 13f79535-47bb-0310-9956-ffa450edef68 --- .../management/wsdm/BaseWsDmAdapterTestCase.java | 42 --------- .../GetMultipleResourcePropertiesTestCase.java | 3 +- .../wsdm/GetResourcePropertiesTestCase.java | 105 +++++++++++++++++++++ .../wsdm/MetadataExchangeInterfaceTestCase.java | 26 +++++ .../wsdm/OperationInvocationInterfaceTestCase.java | 19 +--- .../wsdm/SetResourcePropertiesTestCase.java | 2 - .../qpid/management/wsdm/WsDmAdapterTest.java | 1 + 7 files changed, 134 insertions(+), 64 deletions(-) create mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertiesTestCase.java diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/BaseWsDmAdapterTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/BaseWsDmAdapterTestCase.java index 34f359e56b..900d14c72e 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/BaseWsDmAdapterTestCase.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/BaseWsDmAdapterTestCase.java @@ -21,15 +21,12 @@ package org.apache.qpid.management.wsdm; import java.lang.management.ManagementFactory; -import java.lang.reflect.Array; import java.net.URI; import java.util.UUID; -import javax.management.MBeanAttributeInfo; import javax.management.MBeanInfo; import javax.management.MBeanServer; import javax.management.ObjectName; -import javax.xml.namespace.QName; import junit.framework.TestCase; @@ -112,46 +109,7 @@ public abstract class BaseWsDmAdapterTestCase extends TestCase implements TestCo 0, members.length); } - - /** - * Test the WS-RP GetResourceProperty interface of the WS-DM adapter. - * - *
precondition : a ws resource exists and is registered. - *
postcondition : property values coming from WS-DM resource are the same of the JMX interface. - */ - public void testGetResourcePropertiesOK() throws Exception - { - MBeanAttributeInfo [] attributesMetadata = _mbeanInfo.getAttributes(); - for (MBeanAttributeInfo attributeMetadata : attributesMetadata) - { - String name = attributeMetadata.getName(); - Object propertyValues = _resourceClient.getPropertyAsObject( - new QName( - Names.NAMESPACE_URI, - name, - Names.PREFIX), - Class.forName(attributeMetadata.getType())); - - int length = Array.getLength(propertyValues); - if (length != 0) - { - Object propertyValue = Array.get(propertyValues, 0); - assertEquals( - "Comparison failed for property "+name, - _managementServer.getAttribute(_resourceObjectName,name), - propertyValue); - } else { - assertNull( - String.format( - "\"%s\" property value shouldn't be null. Its value is %s", - name, - _managementServer.getAttribute(_resourceObjectName,name)), - _managementServer.getAttribute(_resourceObjectName,name)); - } - } - } - /** * Creates a service group client reference. * diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetMultipleResourcePropertiesTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetMultipleResourcePropertiesTestCase.java index 2481d4a406..d59e7a39e5 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetMultipleResourcePropertiesTestCase.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetMultipleResourcePropertiesTestCase.java @@ -54,8 +54,7 @@ public class GetMultipleResourcePropertiesTestCase extends BaseWsDmAdapterTestCa try { _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); - _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); - _resourceClient.setTrace(true); + _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); _resourceClient.getMultipleResourceProperties(new QName[]{}); } catch(SoapFault expected) diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertiesTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertiesTestCase.java new file mode 100644 index 0000000000..e18e928cf4 --- /dev/null +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertiesTestCase.java @@ -0,0 +1,105 @@ +/* + * + * 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.qpid.management.wsdm; + +import java.lang.reflect.Array; + +import javax.management.MBeanAttributeInfo; +import javax.xml.namespace.QName; + +import org.apache.muse.ws.addressing.soap.SoapFault; +import org.apache.muse.ws.resource.WsrfConstants; +import org.apache.qpid.management.Names; + +/** + * Test case for Web Service Resource Properties interfaces. + * Those interfaces are defined on http://docs.oasis-open.org/wsrf/wsrf-ws_resource_properties-1.2-spec-os.pdf + * (Web Services Resource Properties 1.2 - (WS-ResourceProperties). + * For a better explanation see chapter 5 of the specification above. + * + * @author Andrea Gazzarini + */ +public class GetResourcePropertiesTestCase extends BaseWsDmAdapterTestCase +{ + + /** + * Test the WS-RP GetResourceProperty interface of the WS-DM adapter. + * + *
precondition : a ws resource exists and is registered. + *
postcondition : property values coming from WS-DM resource are the same of the JMX interface. + */ + public void testGetResourcePropertiesOK() throws Exception + { + MBeanAttributeInfo [] attributesMetadata = _mbeanInfo.getAttributes(); + for (MBeanAttributeInfo attributeMetadata : attributesMetadata) + { + String name = attributeMetadata.getName(); + Object propertyValues = _resourceClient.getPropertyAsObject( + new QName( + Names.NAMESPACE_URI, + name, + Names.PREFIX), + Class.forName(attributeMetadata.getType())); + + int length = Array.getLength(propertyValues); + if (length != 0) + { + Object propertyValue = Array.get(propertyValues, 0); + + assertEquals( + "Comparison failed for property "+name, + _managementServer.getAttribute(_resourceObjectName,name), + propertyValue); + } else { + assertNull( + String.format( + "\"%s\" property value shouldn't be null. Its value is %s", + name, + _managementServer.getAttribute(_resourceObjectName,name)), + _managementServer.getAttribute(_resourceObjectName,name)); + } + } + } + + /** + * Tests the GetMultipleResourceProperties interface when the request contains + * an unknwon target resource. + * + *
precondition : the GetMultipleResourceProperties request contains an unknwon resource. + *
postcondition : a SoapFault is thrown and the corresponding detail contains an + * UnknownResourceFault element. + */ + public void testGetResourcePropertiesKO_WithUnknownResourceFault() throws Exception + { + try + { + _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); + _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); + + _resourceClient.getResourceProperty(new QName("a","b","c")); + } catch(SoapFault expected) + { + assertEquals( + WsrfConstants.RESOURCE_UNKNOWN_QNAME.getLocalPart(), + expected.getDetail().getLocalName()); + } + } +} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/MetadataExchangeInterfaceTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/MetadataExchangeInterfaceTestCase.java index d22c51f57e..046f2226e6 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/MetadataExchangeInterfaceTestCase.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/MetadataExchangeInterfaceTestCase.java @@ -25,8 +25,11 @@ import javax.xml.namespace.QName; import org.apache.muse.core.proxy.ProxyHandler; import org.apache.muse.core.proxy.ReflectionProxyHandler; import org.apache.muse.util.xml.XmlUtils; +import org.apache.muse.ws.addressing.soap.SoapFault; import org.apache.muse.ws.metadata.WsxConstants; +import org.apache.muse.ws.resource.WsrfConstants; import org.apache.muse.ws.resource.metadata.WsrmdConstants; +import org.apache.qpid.management.Names; import org.w3c.dom.Element; /** @@ -124,6 +127,29 @@ public class MetadataExchangeInterfaceTestCase extends BaseWsDmAdapterTestCase assertEquals(0,metadata.length); } + /** + * Test the MetadataExchange interface with an unknown metadata dialect. + * + *
precondition : the GetMetadata request contains an unknown dialect. + *
postcondition : the returned metadata section is empty. + */ + @SuppressWarnings("unchecked") + public void testGetMetadataKO_WithoutUnknownResourceFault() throws Exception + { + try + { + _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); + _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); + + _resourceClient.invoke(getProxyHandler(), new Object[]{""}); + } catch(SoapFault expected) + { + assertEquals( + WsrfConstants.RESOURCE_UNKNOWN_QNAME.getLocalPart(), + expected.getDetail().getLocalName()); + } + } + /** * Returns a proxy handler used for working with metadata exchange * interface. diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/OperationInvocationInterfaceTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/OperationInvocationInterfaceTestCase.java index 76d3775334..afc4a62085 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/OperationInvocationInterfaceTestCase.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/OperationInvocationInterfaceTestCase.java @@ -44,7 +44,6 @@ import org.apache.qpid.management.wsdm.capabilities.Result; */ public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCase { - private final Long _retCodeOk = new Long(0); private Map _invocationHandlers = createInvocationHandlers(); /** @@ -66,10 +65,8 @@ public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCas _invocationHandlers.get("echoWithByteArray"), new Object[]{expectedByteResult}); - Method getStatusCode = result.getClass().getMethod("getStatusCode"); Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - assertEquals(_retCodeOk,getStatusCode.invoke(result)); Map out = (Map) getOutputParameters.invoke(result); assertEquals("Output parameters must be 1.",1,out.size()); @@ -91,11 +88,7 @@ public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCas _invocationHandlers.get("voidWithoutArguments"), null); - Method getStatusCode = result.getClass().getMethod("getStatusCode"); - assertEquals( - "Something was wrong...expected return code is "+_retCodeOk, - _retCodeOk, - getStatusCode.invoke(result)); + assertNotNull(result); } /** @@ -137,10 +130,8 @@ public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCas _invocationHandlers.get("echoWithUUID"), new Object[]{expectedUuid}); - Method getStatusCode = result.getClass().getMethod("getStatusCode"); Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - assertEquals(_retCodeOk,getStatusCode.invoke(result)); Map out = (Map) getOutputParameters.invoke(result); assertEquals("Output parameters must be 1.",1,out.size()); @@ -176,10 +167,8 @@ public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCas _invocationHandlers.get("echoWithMap"), new Object[]{expectedMap}); - Method getStatusCode = result.getClass().getMethod("getStatusCode"); Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - assertEquals(_retCodeOk,getStatusCode.invoke(result)); Map out = (Map) ((Map) getOutputParameters.invoke(result)).get("map"); assertEquals("Output parameters must be 10.",10,out.size()); @@ -245,9 +234,7 @@ public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCas expectedUriResult, expectedDateResult}); - Method getStatusCode = result.getClass().getMethod("getStatusCode"); Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - assertEquals(_retCodeOk,getStatusCode.invoke(result)); Map out = (Map) getOutputParameters.invoke(result); assertEquals("Output parameters must be 9.",9,out.size()); @@ -315,9 +302,7 @@ public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCas expectedUriResult, expectedDateResult}); - Method getStatusCode = result.getClass().getMethod("getStatusCode"); Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - assertEquals(_retCodeOk,getStatusCode.invoke(result)); Map out = (Map) getOutputParameters.invoke(result); assertEquals("Output parameters must be 9.",9,out.size()); @@ -372,9 +357,7 @@ public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCas expectedIntegerResult, expectedShortResult}); - Method getStatusCode = result.getClass().getMethod("getStatusCode"); Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - assertEquals(_retCodeOk,getStatusCode.invoke(result)); Map out = (Map) getOutputParameters.invoke(result); assertEquals("Output parameters must be 6.",6,out.size()); diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/SetResourcePropertiesTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/SetResourcePropertiesTestCase.java index eed8a00508..87f8905e01 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/SetResourcePropertiesTestCase.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/SetResourcePropertiesTestCase.java @@ -173,7 +173,6 @@ public class SetResourcePropertiesTestCase extends BaseWsDmAdapterTestCase { _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); - _resourceClient.setTrace(true); _resourceClient.updateResourceProperty( new QName( @@ -203,7 +202,6 @@ public class SetResourcePropertiesTestCase extends BaseWsDmAdapterTestCase { _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); - _resourceClient.setTrace(true); _resourceClient.insertResourceProperty( new QName( diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java index 631beb7488..07395b3be9 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java @@ -131,6 +131,7 @@ public class WsDmAdapterTest suite.addTestSuite(GetResourcePropertyDocumentTestCase.class); suite.addTestSuite(SetResourcePropertiesTestCase.class); suite.addTestSuite(GetMultipleResourcePropertiesTestCase.class); + suite.addTestSuite(GetResourcePropertiesTestCase.class); return new WsDmAdapterTestSetup(suite); } -- cgit v1.2.1