From 5eb354b338bb8d8fcd35b6ac3fb33f8103e757c3 Mon Sep 17 00:00:00 2001 From: "Stephen D. Huston" Date: Thu, 20 Oct 2011 18:42:46 +0000 Subject: Merge trunk to QPID-2519 branch git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/QPID-2519@1186990 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/management/TestConstants.java | 67 --- .../configuration/ConfigurationTest.java | 181 ------- .../management/configuration/ConfiguratorTest.java | 163 ------ .../configuration/MappingParsersTest.java | 79 --- .../base/ContentIndicationMessageHandlerTest.java | 59 --- .../domain/model/BaseDomainModelTestCase.java | 44 -- .../model/BaseQpidFeatureBuilderTestCase.java | 96 ---- .../management/domain/model/DomainModelTest.java | 55 -- .../domain/model/OptionalPropertiesTest.java | 187 ------- .../management/domain/model/QpidClassTest.java | 408 --------------- .../management/domain/model/QpidEventTest.java | 293 ----------- .../domain/model/QpidMethodBuilderTest.java | 147 ------ .../domain/model/QpidNumberPropertyTest.java | 171 ------ .../management/domain/model/QpidPackageTest.java | 53 -- .../domain/model/QpidPropertyBuilderTest.java | 269 ---------- .../domain/model/QpidStatisticBuilderTest.java | 159 ------ .../domain/model/QpidStringPropertyTest.java | 127 ----- .../management/domain/model/type/BinaryTest.java | 59 --- .../domain/services/BrokerMessageListenerTest.java | 241 --------- .../domain/services/MessageTokenizerTest.java | 140 ----- .../management/wsdm/BaseWsDmAdapterTestCase.java | 143 ----- .../wsdm/EnhancedReflectionProxyHandler.java | 72 --- .../GetMultipleResourcePropertiesTestCase.java | 125 ----- .../wsdm/GetResourcePropertiesTestCase.java | 105 ---- .../wsdm/GetResourcePropertyDocumentTestCase.java | 134 ----- .../wsdm/MetadataExchangeInterfaceTestCase.java | 169 ------ .../wsdm/OperationInvocationInterfaceTestCase.java | 580 --------------------- .../apache/qpid/management/wsdm/ServerThread.java | 118 ----- .../wsdm/SetResourcePropertiesTestCase.java | 219 -------- .../wsdm/WebApplicationLifeCycleListener.java | 61 --- .../qpid/management/wsdm/WsDmAdapterTest.java | 156 ------ .../capabilities/MBeanCapabilityBuilderTest.java | 335 ------------ .../wsdm/capabilities/MBeanCapabilityTest.java | 204 -------- .../capabilities/QManAdapterCapabilityTest.java | 81 --- .../wsdm/capabilities/RmdBuilderTest.java | 110 ---- .../java/org/apache/qpid/management/wsdm/web.xml | 32 -- 36 files changed, 5642 deletions(-) delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfigurationTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfiguratorTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/configuration/MappingParsersTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandlerTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseDomainModelTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseQpidFeatureBuilderTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/DomainModelTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/OptionalPropertiesTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidClassTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidEventTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidMethodBuilderTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidNumberPropertyTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPackageTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPropertyBuilderTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStatisticBuilderTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStringPropertyTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/model/type/BinaryTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/services/BrokerMessageListenerTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/domain/services/MessageTokenizerTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/BaseWsDmAdapterTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetMultipleResourcePropertiesTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertiesTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertyDocumentTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/MetadataExchangeInterfaceTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/OperationInvocationInterfaceTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/SetResourcePropertiesTestCase.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/WebApplicationLifeCycleListener.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapabilityTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/RmdBuilderTest.java delete mode 100644 java/management/client/src/test/java/org/apache/qpid/management/wsdm/web.xml (limited to 'java/management/client/src/test') diff --git a/java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java b/java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java deleted file mode 100644 index 9abcd08eef..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * - * 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; - -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import org.apache.qpid.management.domain.handler.impl.MethodOrEventDataTransferObject; -import org.apache.qpid.management.domain.model.DomainModel; -import org.apache.qpid.management.domain.model.type.Binary; - -/** - * Collects all literal constants used in test cases. - */ -public interface TestConstants -{ - UUID BROKER_ID = UUID.randomUUID(); - Binary OBJECT_ID = new Binary(new byte []{1,2,3,2,1,1,2,3}); - - DomainModel DOMAIN_MODEL = new DomainModel(BROKER_ID); - - String AGE_ATTRIBUTE_NAME = "age"; - String AGE_ATTRIBUTE_DESCRIPTION = "The age of a person."; - String SURNAME_ATTRIBUTE_NAME = "surname"; - String SURNAME_ATTRIBUTE_DESCRIPTION = "The surname of a person."; - Integer _1 = new Integer(1); - - byte [] TEST_RAW_DATA= new byte []{1,4,5,7,8,9,4,44}; - long NOW = System.currentTimeMillis(); - int SEVERITY = _1; - - String QPID_PACKAGE_NAME = "qpid"; - String EXCHANGE_CLASS_NAME = "exchange"; - String BIND_EVENT_NAME = "bind"; - Binary HASH = new Binary(new byte []{1,2,3,4,5,6,7,8,9}); - int VALID_CODE = _1; - - List> EMPTY_PROPERTIES_SCHEMA = new LinkedList>(); - List> EMPTY_STATISTICS_SCHEMA = new LinkedList>(); - List EMPTY_METHODS_SCHEMA = new LinkedList(); - List> EMPTY_ARGUMENTS_SCHEMA = new LinkedList>(); - int _0 = 0; - int SAMPLE_ACCESS_CODE = 1; - String YEARS = "years"; - int SAMPLE_MIN_VALUE = 1; - int SAMPLE_MAX_VALUE = 120; -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfigurationTest.java b/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfigurationTest.java deleted file mode 100644 index 72bd45f70f..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfigurationTest.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * - * 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.configuration; - -import java.util.Map; -import java.util.UUID; - -import junit.framework.TestCase; - -import org.apache.qpid.management.TestConstants; -import org.apache.qpid.management.domain.handler.base.IMessageHandler; -import org.apache.qpid.management.domain.handler.impl.ConfigurationMessageHandler; -import org.apache.qpid.management.domain.handler.impl.InstrumentationMessageHandler; -import org.apache.qpid.management.domain.handler.impl.SchemaResponseMessageHandler; - -/** - * Test case for Configuration singleton. - */ -public class ConfigurationTest extends TestCase -{ - /** - * Tests the singleton behaviour of the configuration object. - */ - public void testSingleton() - { - assertSame(Configuration.getInstance(),Configuration.getInstance()); - } - - /** - * Tests the execution of getType() method when a unknown code is supplied. - * - *
precondition : the requested type doesn't exist on the configuration. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testGetTypeKO() - { - try - { - Configuration.getInstance().getType(TestConstants.VALID_CODE*10001); - fail("If an unknwon code is supplied an exception must be thrown."); - } catch (UnknownTypeCodeException expected) - { - assertEquals(TestConstants.VALID_CODE*10001,expected.getCode()); - } - } - - /** - * Tests the execution of getAccessMode() method when a unknown code is supplied. - * - *
precondition : the requested access mode doesn't exist on the configuration. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testGetAccessModeKO() - { - try - { - Configuration.getInstance().getAccessMode(TestConstants.VALID_CODE*1528); - fail("If an unknwon code is supplied an exception must be thrown."); - } catch (UnknownAccessCodeException expected) - { - assertEquals(TestConstants.VALID_CODE*1528,expected.getCode()); - } - } - - /** - * Tests the execution of the getBrokerConnectionData when a valid broker id is supplied. - * - *
precondition : on configuration a connection data is stored and associated with the supplied id. - *
postcondition : the requested connection data is returned and no exception is thrown. - */ - public void testGetBrokerConnectionDataOK() throws Exception - { - BrokerConnectionData connectionData = new BrokerConnectionData(); - connectionData.setHost("host"); - connectionData.setPort("7001"); - connectionData.setInitialPoolCapacity("0"); - connectionData.setMaxPoolCapacity("10"); - connectionData.setMaxWaitTimeout("1"); - Configuration.getInstance().addBrokerConnectionData(TestConstants.BROKER_ID, connectionData); - - BrokerConnectionData result = Configuration.getInstance().getBrokerConnectionData(TestConstants.BROKER_ID); - assertSame(connectionData, result); - } - - /** - * Tests the execution of the getBrokerConnectionData when a unknown broker id is supplied. - * - *
precondition : on configuration there's no connection data associated with the supplied id. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testGetBrokerConnectionDataKO_withUnknownBrokerId() - { - UUID brokerId = UUID.randomUUID(); - try - { - Configuration.getInstance().getBrokerConnectionData(brokerId); - fail("If an unknown broker id is supplied then an exception must be thrown."); - } catch(UnknownBrokerException expected) - { - assertEquals(brokerId.toString(),expected.getMessage()); - } - } - - /** - * Tests the execution of the getBrokerConnectionData when a null id is supplied. - * - *
precondition : a null broker is given. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testGetBrokerConnectionDataKO_withNullBrokerId() - { - try - { - Configuration.getInstance().getBrokerConnectionData(null); - fail("If a null broker id is supplied then an exception must be thrown."); - } catch(UnknownBrokerException expected) - { - } - } - - /** - * Tests the behaviour of the getManagementQueueHandlers() method. - * - *
precondition: 2 management handlers are in stored configuration - *
postcondition : 2 management handlers are returned. - */ - public void testGetManagementQueueHandlersOk() - { - IMessageHandler instrMessageHandler = new InstrumentationMessageHandler(); - IMessageHandler configMessageHandler = new ConfigurationMessageHandler(); - - MessageHandlerMapping instrMapping = new MessageHandlerMapping('i',instrMessageHandler); - MessageHandlerMapping configMapping = new MessageHandlerMapping('c',configMessageHandler); - - Configuration.getInstance().addManagementMessageHandlerMapping(instrMapping); - Configuration.getInstance().addManagementMessageHandlerMapping(configMapping); - - Map handlerMappings = Configuration.getInstance().getManagementQueueHandlers(); - - assertEquals(2,handlerMappings.size()); - assertEquals(instrMessageHandler,handlerMappings.get(instrMapping.getOpcode())); - assertEquals(configMessageHandler,handlerMappings.get(configMapping.getOpcode())); - } - - /** - * Tests the behaviour of the getManagementQueueHandlers() method. - * - *
precondition: 2 management handlers are in stored configuration - *
postcondition : 2 management handlers are returned. - */ - public void testGetMethodReplyQueueHandlersOk() - { - IMessageHandler schemaMessageHandler = new SchemaResponseMessageHandler(); - - MessageHandlerMapping schemaMapping = new MessageHandlerMapping('s',schemaMessageHandler); - - Configuration.getInstance().addMethodReplyMessageHandlerMapping(schemaMapping); - - Map handlerMappings = Configuration.getInstance().getMethodReplyQueueHandlers(); - - assertEquals(schemaMessageHandler,handlerMappings.get(schemaMapping.getOpcode())); - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfiguratorTest.java b/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfiguratorTest.java deleted file mode 100644 index 1e464bf6ae..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/configuration/ConfiguratorTest.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * - * 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.configuration; - -import java.util.Map; -import java.util.UUID; - -import junit.framework.TestCase; - -import org.apache.qpid.management.Protocol; -import org.apache.qpid.management.domain.handler.base.IMessageHandler; -import org.apache.qpid.management.domain.handler.impl.ConfigurationMessageHandler; -import org.apache.qpid.management.domain.handler.impl.EventContentMessageHandler; -import org.apache.qpid.management.domain.handler.impl.HeartBeatIndicationMessageHandler; -import org.apache.qpid.management.domain.handler.impl.InstrumentationMessageHandler; -import org.apache.qpid.management.domain.handler.impl.MethodResponseMessageHandler; -import org.apache.qpid.management.domain.handler.impl.SchemaResponseMessageHandler; -import org.apache.qpid.management.domain.model.AccessMode; -import org.apache.qpid.management.domain.model.type.AbsTime; -import org.apache.qpid.management.domain.model.type.DeltaTime; -import org.apache.qpid.management.domain.model.type.ObjectReference; -import org.apache.qpid.management.domain.model.type.Str16; -import org.apache.qpid.management.domain.model.type.Str8; -import org.apache.qpid.management.domain.model.type.Uint16; -import org.apache.qpid.management.domain.model.type.Uint32; -import org.apache.qpid.management.domain.model.type.Uint64; -import org.apache.qpid.management.domain.model.type.Uint8; -import org.xml.sax.SAXException; - -/** - * Test case for configurator. - * - * @author Andrea Gazzarini - * - */ -public class ConfiguratorTest extends TestCase -{ - /** - * Tests the execution of the configure() method when no configuration file is given. - * - *
precondition : configuration file option is not set - *
postcondition : no exception is thrown, the configuration is holding no broker data and the predefined mappings are - * stored in configuration. - */ - public void testConfigureOK_WithNoConfigurationFile() throws Exception - { - Configurator configurator = new Configurator(); - configurator.configure(); - Configuration configuration = Configuration.getInstance(); - - assertEquals(new Uint8(), configuration.getType(1)); - assertEquals(new Uint16(), configuration.getType(2)); - assertEquals(new Uint32(), configuration.getType(3)); - assertEquals(new Uint64(), configuration.getType(4)); - assertEquals(new Str8(), configuration.getType(6)); - assertEquals(new Str16(), configuration.getType(7)); - assertEquals(new AbsTime(), configuration.getType(8)); - assertEquals(new DeltaTime(), configuration.getType(9)); - assertEquals(new ObjectReference(), configuration.getType(10)); - assertEquals(new org.apache.qpid.management.domain.model.type.Boolean(), configuration.getType(11)); - assertEquals(new org.apache.qpid.management.domain.model.type.Uuid(), configuration.getType(14)); - assertEquals(new org.apache.qpid.management.domain.model.type.Map(), configuration.getType(15)); - - assertEquals(AccessMode.RC,configuration.getAccessMode(1)); - assertEquals(AccessMode.RW,configuration.getAccessMode(2)); - assertEquals(AccessMode.RO,configuration.getAccessMode(3)); - - Map managementHandlers = configuration.getManagementQueueHandlers(); - assertEquals(4,managementHandlers.size()); - assertEquals( - InstrumentationMessageHandler.class, - managementHandlers.get(Protocol.INSTRUMENTATION_CONTENT_RESPONSE_OPCODE).getClass()); - - assertEquals( - ConfigurationMessageHandler.class, - managementHandlers.get(Protocol.CONFIGURATION_CONTENT_RESPONSE_OPCDE).getClass()); - - assertEquals( - EventContentMessageHandler.class, - managementHandlers.get(Protocol.EVENT_CONTENT_RESPONSE_OPCDE).getClass()); - - assertEquals( - HeartBeatIndicationMessageHandler.class, - managementHandlers.get(Protocol.HEARTBEAT_INDICATION_RESPONSE_OPCODE).getClass()); - - Map methodReplyHandlers = configuration.getMethodReplyQueueHandlers(); - assertEquals(2, methodReplyHandlers.size()); - - assertEquals( - MethodResponseMessageHandler.class, - methodReplyHandlers.get(Protocol.OPERATION_INVOCATION_RESPONSE_OPCODE).getClass()); - - assertEquals( - SchemaResponseMessageHandler.class, - methodReplyHandlers.get(Protocol.SCHEMA_RESPONSE_OPCODE).getClass()); - } - - /** - * Tests the changes of the configurator internal state while configuration file is parsed. - * - *
precondition: N.A. - *
postcondition: N.A. - */ - public void testDirectorParsing() throws SAXException{ - Configurator configurator = new Configurator(); - - assertSame(Configurator.DEFAULT_PARSER,configurator._currentParser); - - configurator.startElement(null, null, Tag.BROKERS.toString(), null); - assertSame(configurator._brokerConfigurationParser,configurator._currentParser); - } - - /** - * It's not possibile to add twice the same broker connection data. - * Is so an exception must be thrown indicating that the given broker is already connected. - * - *
precondition : the given data identifies an already connected broker. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testAddTwoIdenticalBrokers() throws ConfigurationException, BrokerConnectionException - { - Configurator configurator = new Configurator(); - configurator.configure(); - - BrokerConnectionData data = new BrokerConnectionData("sofia.gazzax.com",5672,"virtualHost","user","pwd",1,4,-1); - - Configuration.getInstance()._brokerConnectionInfos.put(UUID.randomUUID(),data); - - try { - configurator.createAndReturnBrokerConnectionData( - UUID.randomUUID(), - data.getHost(), - data.getPort(), - "anotherUser", - "anotherPassword", - data.getVirtualHost(), - 33, - 12, - 1000); - fail("If a broker is added twice an exception must be thrown."); - } catch (BrokerAlreadyConnectedException expected) { - assertEquals(data,expected.getBrokerConnectionData()); - } - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/configuration/MappingParsersTest.java b/java/management/client/src/test/java/org/apache/qpid/management/configuration/MappingParsersTest.java deleted file mode 100644 index af261024bd..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/configuration/MappingParsersTest.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * - * 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.configuration; - -import java.util.UUID; - -import junit.framework.TestCase; - -import org.apache.qpid.management.TestConstants; - -/** - * Test case for mapping parsers. - * - * @author Andrea Gazzarini. - */ -public class MappingParsersTest extends TestCase -{ - /** - * Tests the execution of the broker connection data mapping parser. - * - *
precondition: A broker connection datamapping is built by the parser; - *
postcondition: the corresponding connection data is available on the configuration. - */ - public void testBrokerConnectionDataParser() throws UnknownBrokerException - { - String host = "127.0.0.1"; - String port = "7001"; - String virtualHost = "test"; - String username = "username_guest"; - String password ="password_guest"; - - BrokerConnectionDataParser parser = new BrokerConnectionDataParser() - { - @Override - UUID getUUId () - { - return TestConstants.BROKER_ID; - } - }; - - parser.setCurrrentAttributeValue(host); - parser.setCurrentAttributeName(Tag.HOST.toString()); - parser.setCurrrentAttributeValue(port); - parser.setCurrentAttributeName(Tag.PORT.toString()); - parser.setCurrrentAttributeValue(virtualHost); - parser.setCurrentAttributeName(Tag.VIRTUAL_HOST.toString()); - parser.setCurrrentAttributeValue(username); - parser.setCurrentAttributeName(Tag.USER.toString()); - parser.setCurrrentAttributeValue(password); - parser.setCurrentAttributeName(Tag.PASSWORD.toString()); - parser.setCurrentAttributeName(Tag.BROKER.toString()); - - BrokerConnectionData result = Configuration.getInstance().getBrokerConnectionData(TestConstants.BROKER_ID); - - assertEquals(host,result.getHost()); - assertEquals(Integer.parseInt(port),result.getPort()); - assertEquals(virtualHost,result.getVirtualHost()); - assertEquals(username,result.getUsername()); - assertEquals(password,result.getPassword()); - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandlerTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandlerTest.java deleted file mode 100644 index d6b51b64fc..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/handler/base/ContentIndicationMessageHandlerTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - * 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.domain.handler.base; - -import junit.framework.TestCase; - -import org.apache.qpid.management.domain.model.type.Binary; - -/** - * Test case for Content indication message handler (base class). - * - * @author Andrea Gazzarini - */ -public class ContentIndicationMessageHandlerTest extends TestCase -{ - /** - * Tests the behaviour of the objectHasBeenRemoved method(). - */ - public void testObjectHasBeenRemoved() - { - ContentIndicationMessageHandler mockHandler = new ContentIndicationMessageHandler() - { - @Override - protected void updateDomainModel (String packageName, String className, Binary classHash, Binary objectId, - long timeStampOfCurrentSample, long timeObjectWasCreated, long timeObjectWasDeleted, byte[] contentData) - { - } - }; - - long deletionTimestamp = 0; - long now = System.currentTimeMillis(); - - assertFalse(mockHandler.objectHasBeenRemoved(deletionTimestamp, now)); - - deletionTimestamp = now + 1000; - assertFalse(mockHandler.objectHasBeenRemoved(deletionTimestamp, now)); - - deletionTimestamp = now - 1000; - assertTrue(mockHandler.objectHasBeenRemoved(deletionTimestamp, now)); - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseDomainModelTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseDomainModelTestCase.java deleted file mode 100644 index c528392a93..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseDomainModelTestCase.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * - * 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.domain.model; - -import org.apache.qpid.management.configuration.Configurator; - -import junit.framework.TestCase; - -/** - * Layer supertype for all domain model related test cases. - * - * @author Andrea Gazzarini - */ -public abstract class BaseDomainModelTestCase extends TestCase -{ - /** - * Set up fixture for this test case. - * In order to execute tests on domain model we need to build the configuration. - */ - @Override - protected void setUp () throws Exception - { - Configurator configurator = new Configurator(); - configurator.configure(); - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseQpidFeatureBuilderTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseQpidFeatureBuilderTestCase.java deleted file mode 100644 index 3d3783eb04..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/BaseQpidFeatureBuilderTestCase.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * - * 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.domain.model; - -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.desc; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.name; - -import java.util.HashMap; -import java.util.Map; - -import junit.framework.TestCase; - -import org.apache.qpid.management.configuration.Configurator; -import org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute; - -/** - * Layer supertype for feature builder test cases. - * - * @author Andrea Gazzarini - */ -public abstract class BaseQpidFeatureBuilderTestCase extends TestCase -{ - protected final static String NAME = "aName"; - - protected final static String DESCRIPTION = "A description."; - - protected Map _featureDefinition; - protected QpidFeatureBuilder _builder; - - /** - * Set up fixture for all concrete builder test cases. - */ - @Override - protected void setUp () throws Exception - { - Configurator configurator = new Configurator(); - configurator.configure(); - _featureDefinition = new HashMap(); - _featureDefinition.put(name.name(),NAME); - _featureDefinition.put(desc.name(), DESCRIPTION); - } - - // Internal test used to avoid code duplication. - protected void internalTestForMissingMandatoryAttribute(Attribute ...toBeRemoved) - { - try - { - for (Attribute attribute : toBeRemoved) - { - _featureDefinition.remove(attribute.name()); - } - _builder.build(); - fail("If a mandatory attribute is missing an exception must be thrown!"); - } catch (UnableToBuildFeatureException expected) - { - assertTrue(expected instanceof MissingFeatureAttributesException); - for (Attribute attribute : toBeRemoved) - { - assertTrue(expected.getMessage().contains(attribute.name())); - } - } - } - - // Internal test used to avoid code duplication. - protected void internalTestForMissingOptionalAttribute(Attribute ...toBeRemoved) throws UnableToBuildFeatureException - { - for (Attribute attribute : toBeRemoved) - { - _featureDefinition.remove(attribute.name()); - } - _builder.build(); - - assertNotNull(_builder.getQpidFeature()); - assertNotNull(_builder.getManagementFeature()); - } - - -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/DomainModelTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/DomainModelTest.java deleted file mode 100644 index 578fa36bc7..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/DomainModelTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * 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.domain.model; - -import java.util.UUID; - -import org.apache.qpid.management.TestConstants; - -/** - * Test case for domain model entity. - * - * @author Andrea Gazzarini - */ -public class DomainModelTest extends BaseDomainModelTestCase -{ - private DomainModel _model; - - @Override - protected void setUp () throws Exception - { - _model = new DomainModel(UUID.randomUUID()); - } - - /** - * Tests the execution of the getPackage() method. - */ - public void testGetPackage() - { - assertFalse(_model.containsPackage(TestConstants.QPID_PACKAGE_NAME)); - - QpidPackage qpidPackage = _model.getPackageByName(TestConstants.QPID_PACKAGE_NAME); - assertEquals(TestConstants.QPID_PACKAGE_NAME,qpidPackage.getName()); - - QpidPackage theSameAsPreviousOne = _model.getPackageByName(TestConstants.QPID_PACKAGE_NAME); - assertSame(qpidPackage, theSameAsPreviousOne); - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/OptionalPropertiesTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/OptionalPropertiesTest.java deleted file mode 100644 index 553c1c21de..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/OptionalPropertiesTest.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * - * 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.domain.model; - -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -import junit.framework.TestCase; - -import org.apache.qpid.management.domain.model.type.Uint64; -import org.apache.qpid.transport.codec.BBDecoder; - -public class OptionalPropertiesTest extends TestCase -{ - public void testDecoderStateChange() - { - QpidProperty property = new QpidProperty(); - assertSame( - "Default decoder for properties is the one for mandatory properties.", - property._mandatoryPropertyDecoder, - property._decoder); - - property.markAsOptional(1); - assertSame( - "After a property has been marked as optional the corresponding decoder must be installed.", - property._optionalPropertyDecoder, - property._decoder); - } - - /** - * Tests the execution of the decode() method when the current property is optional but in the presence bitmask - * there's no the corresponding bit set. - * - *
precondition : property is optional and corresponding presence bit is not set. - *
postcondition : result must be null. - */ - public void testDecodeValueWithOptionalPropertyAndMissingValue() - { - byte [] presenceBytes = {2}; - - QpidProperty property = new QpidProperty(); - - // We don't need a decoder so in order to be sure that it won't be invoked set it to null. - BBDecoder nullDecoder = null; - - for (int i = 0; i < 8; i++) - { - // Property number 1 is declaring a value so skip it! - if (i != 1) - { - property.markAsOptional(i); - assertNull(property.decodeValue(nullDecoder, presenceBytes)); - } - } - } - - /** - * Tests the execution of the decode() method when the current property is optional but in the presence bitmask - * there's no the corresponding bit set. - * - *
precondition : property is optional and corresponding presence bit is not set. - *
postcondition : result must be null. - */ - public void testDecodeValueWithOptionalPropertyAndDeclaredValue() - { - byte [] presenceBytes = {4}; - Long _44 = new Long(44); - - QpidProperty property = new QpidProperty(); - property.setType(new Uint64()); - property.markAsOptional(2); - - ByteBuffer buffer = ByteBuffer.allocate(8); - buffer.putLong(_44); - buffer.rewind(); - BBDecoder decoder = new BBDecoder(); - - decoder.init(buffer); - assertEquals(_44,property.decodeValue(decoder, presenceBytes)); - } - - /** - * Tests the execution of the decode() method with a real scenario where there are mandatory and optional - * properties. - */ - public void testDecodeValueWithOptionalAndMandatoryProperties() - { - // With this bitset : - // - // 1th opt property is null; - // 2th opt property is null; - // 3th opt property is not null; - // 4th opt property is null; - // 5th opt propertyis null; - // 6th opt property is null; - // 7th opt property is null; - // 8th opt property is not null; - byte [] presenceBytes = {4,1}; - - List properties = new LinkedList(); - - properties.add(createProperty(false, -1)); - properties.add(createProperty(false, -1)); - properties.add(createProperty(true, 0)); - properties.add(createProperty(false, -1)); - properties.add(createProperty(false, -1)); - properties.add(createProperty(true, 1)); - properties.add(createProperty(false, -1)); - properties.add(createProperty(false, -1)); - properties.add(createProperty(true, 2)); - properties.add(createProperty(true, 3)); - properties.add(createProperty(true, 4)); - properties.add(createProperty(true, 5)); - properties.add(createProperty(true, 6)); - properties.add(createProperty(true, 7)); - properties.add(createProperty(false, -1)); - properties.add(createProperty(true, 8)); - - Long expectedResults [] = { - 1L, // p1 - 22L, // p2 - null, // p3 - 232L, // p4 - 211L, // p5 - null, // p6 - 232L, // p7 - 211L, // p8 - 999L, // p9 - null, // p10 - null, // p11 - null, // p12 - null, // p13 - null, // p14 - 626L, // p15 - 969L // p16 - }; - - - ByteBuffer buffer = ByteBuffer.allocate(expectedResults.length * 8); - for (Long expected : expectedResults) - { - if (expected != null) - { - buffer.putLong(expected); - } - } - buffer.rewind(); - BBDecoder decoder = new BBDecoder(); - - decoder.init(buffer); - int index = 0; - for (QpidProperty property : properties) - { - assertEquals(expectedResults[index++],property.decodeValue(decoder, presenceBytes)); - } - } - - private QpidProperty createProperty(boolean isOptional, int optionalIndex) - { - QpidProperty property = new QpidProperty(); - property.setType(new Uint64()); - if (isOptional) - { - property.markAsOptional(optionalIndex); - } - return property; - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidClassTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidClassTest.java deleted file mode 100644 index 9d6e176912..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidClassTest.java +++ /dev/null @@ -1,408 +0,0 @@ -/* -* - * 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.domain.model; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import javax.management.MBeanAttributeInfo; -import javax.management.MBeanInfo; - -import junit.framework.TestCase; - -import org.apache.qpid.management.TestConstants; -import org.apache.qpid.management.configuration.ConfigurationException; -import org.apache.qpid.management.configuration.Configurator; -import org.apache.qpid.management.domain.handler.impl.MethodOrEventDataTransferObject; -import org.apache.qpid.management.domain.model.QpidClass.QManManagedObject; - -/** - * Test case for Qpid Class. - * - * @author Andrea Gazzarini - */ -public class QpidClassTest extends TestCase -{ - private QpidClass _class; - private QpidPackage _package; - - @Override - protected void setUp () throws ConfigurationException - { - Configurator configurator = new Configurator(); - configurator.configure(); - _package = new QpidPackage(TestConstants.QPID_PACKAGE_NAME,TestConstants.DOMAIN_MODEL); - _class = new QpidClass(TestConstants.EXCHANGE_CLASS_NAME,TestConstants.HASH,_package); - } - - /** - * Tests the execution of the getObjectInstance() method. - * Basically it tests the addition of a new object instance. - * - *
precondition: class has no object instances. - *
precondition : class contains the added object instance. - */ - public void testGetObjectInstance() - { - assertFalse ( - "Nobody set instance #"+TestConstants.OBJECT_ID+" into this class so why is it there?", - _class._objectInstances.containsKey(TestConstants.OBJECT_ID)); - - QManManagedObject instance = _class.getObjectInstance(TestConstants.OBJECT_ID, false); - - assertTrue ( - "Now the instance #"+TestConstants.OBJECT_ID+" should be there...", - _class._objectInstances.containsKey(TestConstants.OBJECT_ID)); - - assertEquals(instance,_class.getObjectInstance(TestConstants.OBJECT_ID, false)); - } - - /** - * Tests the injection of instrumentation and configuration data (related to a specific object instance) before the - * schema is installed. - * - *
precondition : the schema hasn't yet installed on this class. - *
postcondition : incoming configuration & instrumentation data is stored into the corresponding object instance. - */ - public void testAddInstrumentationAndConfigurationDataBeforeSchemaInstallation() - { - _class._state = _class._schemaRequestedButNotYetInjected; - QManManagedObject objectInstance = _class.getObjectInstance(TestConstants.OBJECT_ID,false); - - assertTrue( - "This object instance is a new one so how is it possible that it has already instrumentation data? ", - objectInstance._rawInstrumentationData.isEmpty()); - assertTrue( - "This object instance is a new one so how is it possible that it has already configuration data? ", - objectInstance._rawConfigurationData.isEmpty()); - - byte [] dummyConfigurationData = {1,2,3,4,5,6,7,8}; - byte [] dummyInstrumentationData = {11,21,31,41,51,61,71,81}; - - _class.addConfigurationData(TestConstants.OBJECT_ID, dummyConfigurationData); - _class.addInstrumentationData(TestConstants.OBJECT_ID, dummyInstrumentationData); - - assertEquals("Now configuration data should be there...",1,objectInstance._rawConfigurationData.size()); - assertEquals("Now instrumentation data should be there...",1,objectInstance._rawInstrumentationData.size()); - - assertTrue( - "Object instance configuration data should be the previously set...", - Arrays.equals(objectInstance._rawConfigurationData.get(0), - dummyConfigurationData)); - - assertTrue( - "Object instance instrumentation data should be the previously set...", - Arrays.equals(objectInstance._rawInstrumentationData.get(0), - dummyInstrumentationData)); - } - - /** - * Tests the internal state change of a class definition. - */ - public void testStateChange() throws UnableToBuildFeatureException - { - _class = new QpidClass(TestConstants.EXCHANGE_CLASS_NAME,TestConstants.HASH,_package) - { - @Override - void requestSchema() throws Exception { - _state = _schemaRequestedButNotYetInjected; - } - - @Override - void setSchema(List> propertyDefinitions, - List> statisticDefinitions, - List methodDefinitions) throws UnableToBuildFeatureException { - _state = _schemaInjected; - } - }; - - assertSame( - "Initial state doesn't match.", - _class._schemaNotRequested, - _class._state); - - _class.addConfigurationData(TestConstants.OBJECT_ID, TestConstants.TEST_RAW_DATA); - _class.addInstrumentationData(TestConstants.OBJECT_ID, TestConstants.TEST_RAW_DATA); - - assertSame( - "Request schema has been requested but not yet injected. The current state is not indicating that!", - _class._schemaRequestedButNotYetInjected, - _class._state); - - _class.setSchema( - TestConstants.EMPTY_PROPERTIES_SCHEMA, - TestConstants.EMPTY_STATISTICS_SCHEMA, - new LinkedList()); - - assertSame( - "Request schema has been injected. The current state is not indicating that!", - _class._schemaInjected, - _class._state); - } - - /** - * Tests the injection of a valid schema on a QpidClass. - * - *
precondition : a valid arguments is injected on the qpid class. - *
postcondition : class definition is built successfully. - */ - public void testSchemaInjectionOk() throws UnableToBuildFeatureException - { - _class = new QpidClass(TestConstants.EXCHANGE_CLASS_NAME,TestConstants.HASH,_package) - { - @Override - void requestSchema() throws Exception - { - // DO NOTHING : QMan is not running and therefore the schema will be manually injected. - } - - @Override - void updateInstanceWithConfigurationData(QManManagedObject instance, byte[] rawData) - { - // DO NOTHING Given raw data is not valid so it cannot be converted. - } - }; - - // Incoming configuration data : that will fire the schema request and a state change - // from schema-not-requested to schema-requested-but-not-injected - _class.addConfigurationData(TestConstants.OBJECT_ID, TestConstants.TEST_RAW_DATA); - - // I must be sure that what is obvious for me it's obvious for QMan... :) - assertSame( - "Request schema has been requested but not yet injected. The current state is not indicating that!", - _class._schemaRequestedButNotYetInjected, - _class._state); - - List> propertyDefinitions = new ArrayList>(2); - propertyDefinitions.add( - createProperty( - TestConstants.AGE_ATTRIBUTE_NAME, - 1, - TestConstants.YEARS, - TestConstants.SAMPLE_MIN_VALUE, - TestConstants.SAMPLE_MAX_VALUE, - null, - TestConstants.AGE_ATTRIBUTE_DESCRIPTION, - TestConstants._1, - false, - TestConstants._0)); - - propertyDefinitions.add( - createProperty( - TestConstants.SURNAME_ATTRIBUTE_NAME, - TestConstants.SAMPLE_ACCESS_CODE, - null, - null, - null, - TestConstants.SAMPLE_MAX_VALUE, - TestConstants.SURNAME_ATTRIBUTE_DESCRIPTION, - TestConstants._1, - true, - TestConstants._1)); - - _class.setSchema(propertyDefinitions, TestConstants.EMPTY_STATISTICS_SCHEMA, TestConstants.EMPTY_METHODS_SCHEMA); - - assertEquals(2,_class._properties.size()); - - QpidProperty property = _class._properties.get(TestConstants.AGE_ATTRIBUTE_NAME); - assertEquals(TestConstants.AGE_ATTRIBUTE_NAME,property.getName()); - assertEquals(AccessMode.RC,property.getAccessMode()); - assertEquals(TestConstants.YEARS,property.getUnit()); - assertEquals(TestConstants.SAMPLE_MIN_VALUE,property.getMinValue()); - assertEquals(TestConstants.SAMPLE_MAX_VALUE,property.getMaxValue()); - assertEquals(Integer.MIN_VALUE,property.getMaxLength()); - assertEquals(TestConstants.AGE_ATTRIBUTE_DESCRIPTION,property.getDescription()); - assertEquals(Short.class,property.getJavaType()); - assertFalse(property.isOptional()); - - property = _class._properties.get(TestConstants.SURNAME_ATTRIBUTE_NAME); - assertEquals(TestConstants.SURNAME_ATTRIBUTE_NAME,property.getName()); - assertEquals(AccessMode.RC,property.getAccessMode()); - assertNull(property.getUnit()); - assertEquals(Integer.MIN_VALUE,property.getMinValue()); - assertEquals(Integer.MIN_VALUE,property.getMaxValue()); - assertEquals(TestConstants.SAMPLE_MAX_VALUE,property.getMaxLength()); - assertEquals(TestConstants.SURNAME_ATTRIBUTE_DESCRIPTION,property.getDescription()); - assertEquals(Short.class,property.getJavaType()); - assertTrue(property.isOptional()); - - MBeanInfo mbeanInfo = _class._metadata; - assertEquals(TestConstants.EXCHANGE_CLASS_NAME,mbeanInfo.getClassName()); - - MBeanAttributeInfo [] attributes = mbeanInfo.getAttributes(); - assertEquals(2,attributes.length); - - MBeanAttributeInfo attribute = attributes[0]; - assertEquals(TestConstants.AGE_ATTRIBUTE_NAME,attribute.getName()); - assertEquals(TestConstants.AGE_ATTRIBUTE_DESCRIPTION,attribute.getDescription()); - assertFalse(attribute.isWritable()); - assertTrue(attribute.isReadable()); - assertEquals(Short.class.getName(),attribute.getType()); - - attribute = attributes[1]; - assertEquals(TestConstants.SURNAME_ATTRIBUTE_NAME,attribute.getName()); - assertEquals(TestConstants.SURNAME_ATTRIBUTE_DESCRIPTION,attribute.getDescription()); - assertFalse(attribute.isWritable()); - assertTrue(attribute.isReadable()); - assertEquals(Short.class.getName(),attribute.getType()); - } - - /** - * Tests the behaviour of the class when a schema request can't be made. - * - *
precondition : class must be in "schema-not-requested" state when incoming data arrives. - *
postcondition : no exception is thrown and no state transition happens. - */ - public void testStateChange_withRequestSchemaFailure() - { - _class= new QpidClass(TestConstants.EXCHANGE_CLASS_NAME,TestConstants.HASH,_package) - { - @Override - void requestSchema() throws Exception { - throw new Exception(); - } - - @Override - void setSchema( - List> propertyDefinitions, - List> statisticDefinitions, - List methodDefinitions) throws UnableToBuildFeatureException - { - } - }; - - assertSame( - "Initial state must be schema-not-requested.", - _class._schemaNotRequested, - _class._state); - - _class.addInstrumentationData(TestConstants.OBJECT_ID, TestConstants.TEST_RAW_DATA); - - assertSame( - "Current state must be still schema-not-requested.", - _class._schemaNotRequested, - _class._state); - } - - /** - * Tests the behaviour of the class when a schema injection fails. - * - *
precondition : class must be in "schema-not-requested" state when incoming data arrives. - *
postcondition : an exception is thrown and no state transition happens. - */ - public void testStateChange_withSchemaInjectionFailure() - { - _class = new QpidClass(TestConstants.EXCHANGE_CLASS_NAME,TestConstants.HASH,_package) - { - @Override - void requestSchema() throws Exception - { - // DO NOTHING. - } - - @Override - void setSchema(List> propertyDefinitions, - List> statisticDefinitions, - List methodDefinitions) - throws UnableToBuildFeatureException - { - throw new UnableToBuildFeatureException(""); - } - }; - - assertSame( - "Initial state must be schema-not-requested.", - _class._schemaNotRequested, - _class._state); - - _class.addInstrumentationData(TestConstants.OBJECT_ID, TestConstants.TEST_RAW_DATA); - - assertSame( - "Request schema has been requested but not yet injected. The current state is not indicating that!", - _class._schemaRequestedButNotYetInjected, - _class._state); - - try { - _class.setSchema( - TestConstants.EMPTY_PROPERTIES_SCHEMA, - TestConstants.EMPTY_STATISTICS_SCHEMA, - TestConstants.EMPTY_METHODS_SCHEMA); - fail("If we are here something was wrong becuase the setSchema() of this event is throwing an exception..."); - } catch (UnableToBuildFeatureException expected) { - assertSame( - "Request schema has been requested but not yet injected. The current state is not indicating that!", - _class._schemaRequestedButNotYetInjected, - _class._state); - } - } - - private Map createProperty( - String name, - Integer accessCode, - String unit, - Integer min, - Integer max, - Integer maxLength, - String description, - Integer type, - boolean optional, - Integer index) - { - Map result = new HashMap(); - result.put(QpidFeatureBuilder.Attribute.name.name(),name); - result.put(QpidFeatureBuilder.Attribute.access.name(), accessCode); - - if (unit != null) - { - result.put(QpidFeatureBuilder.Attribute.unit.name(),unit); - } - - if (min != null) - { - result.put(QpidFeatureBuilder.Attribute.min.name(), min); - } - - if (max != null) - { - result.put(QpidFeatureBuilder.Attribute.max.name(),max); - } - - if (maxLength != null) - { - result.put(QpidFeatureBuilder.Attribute.maxlen.name(),maxLength); - } - - result.put(QpidFeatureBuilder.Attribute.desc.name(), description); - result.put(QpidFeatureBuilder.Attribute.type.name(), type); - result.put(QpidFeatureBuilder.Attribute.optional.name(),optional ? 1 : 0); - - if (index != null) - { - result.put(QpidFeatureBuilder.Attribute.index.name(), index); - } - return result; - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidEventTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidEventTest.java deleted file mode 100644 index 4b36d9e5cc..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidEventTest.java +++ /dev/null @@ -1,293 +0,0 @@ -/* - * - * 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.domain.model; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.management.InstanceNotFoundException; -import javax.management.MBeanException; -import javax.management.ObjectName; -import javax.management.ReflectionException; - -import junit.framework.TestCase; - -import org.apache.qpid.management.TestConstants; -import org.apache.qpid.management.configuration.ConfigurationException; -import org.apache.qpid.management.configuration.Configurator; -import org.apache.qpid.management.domain.model.QpidEvent.QManManagedEvent; - -/** - * Test case for qpid class entity. - * - * @author Andrea Gazzarini - */ -public class QpidEventTest extends TestCase -{ - private QpidEvent _event; - private QpidPackage _qpidPackage; - - @Override - protected void setUp () throws Exception - { - _qpidPackage = new QpidPackage(TestConstants.QPID_PACKAGE_NAME,TestConstants.DOMAIN_MODEL); - _event = new QpidEvent(TestConstants.BIND_EVENT_NAME,TestConstants.HASH,_qpidPackage); - } - - /** - * Tests the execution of the createEventInstance() method. - * Basically it tests the addition of a new event instance. - * - *
precondition: event deifinition has no object instances. - *
precondition : event definition contains the new object instance. - */ - public void testCreateEventInstance() - { - assertTrue( - "A just created event should be empty. I mean there shouldn't be event instances inside.", - _event.hasNoInstances()); - - QManManagedEvent instance = createEventInstance(); - - assertFalse ( - "Now a new instance should be there...", - _event.hasNoInstances()); - - assertEquals(TestConstants.TEST_RAW_DATA,instance._rawEventData); - assertEquals(TestConstants.NOW,instance._timestamp); - assertEquals(TestConstants.SEVERITY, instance._severity); - } - - /** - * Tests the internal state change of an event definition. - */ - public void testStateChange() throws UnableToBuildFeatureException - { - // Let's override this class because this is not an online tests and therefore - // QMan is not supposed to be up. - _event = new QpidEvent(TestConstants.BIND_EVENT_NAME,TestConstants.HASH,_qpidPackage) - { - @Override - void requestSchema() throws Exception { - // Do Nothing. - } - - @Override - void setSchema(List> argumentDefinitions)throws UnableToBuildFeatureException { - _state = _schemaInjected; - } - }; - - assertSame( - "Initial state doesn't match.", - _event._schemaNotRequested, - _event._state); - - _event.addEventData(TestConstants.TEST_RAW_DATA, TestConstants.NOW, TestConstants.SEVERITY); - - assertSame( - "Request schema has been requested but not yet injected. The current state is not indicating that!", - _event._schemaRequestedButNotYetInjected, - _event._state); - - _event.setSchema(TestConstants.EMPTY_ARGUMENTS_SCHEMA); - - assertSame( - "Request schema has been injected. The current state is not indicating that!", - _event._schemaInjected, - _event._state); - } - - /** - * Tests the injection of a valid schema on a QpidEvent. - * - *
precondition : a valid arguments is injected on the qpid event. - *
postcondition : event definition is built successfully. - */ - public void testSchemaInjectionOK() throws UnableToBuildFeatureException, ConfigurationException, InstanceNotFoundException, MBeanException, ReflectionException - { - _event = new QpidEvent(TestConstants.BIND_EVENT_NAME,TestConstants.HASH,_qpidPackage) - { - @Override - void requestSchema() throws Exception - { - // DO NOTHING : QMan is not running and therefore the schema will be manually injected. - } - - @Override - void updateEventInstanceWithData(QManManagedEvent instance) - { - // DO NOTHING : otherwise we should supply a valid raw data to be converted. ;-) - } - }; - - Configurator configurator = new Configurator(); - configurator.configure(); - - List> arguments = new ArrayList>(); - arguments.add(createArgument(TestConstants.AGE_ATTRIBUTE_NAME, TestConstants.AGE_ATTRIBUTE_DESCRIPTION)); - arguments.add(createArgument(TestConstants.SURNAME_ATTRIBUTE_NAME, TestConstants.SURNAME_ATTRIBUTE_DESCRIPTION)); - - // Incoming data : that will fire the schema request and a state change from schema-not-requested to schema-requested-but-not-injected - _event.addEventData(TestConstants.TEST_RAW_DATA, TestConstants.NOW, TestConstants.SEVERITY); - - // I must be sure that what is obvious for me it's obvious for QMan... :) - assertSame( - "Request schema has been requested but not yet injected. The current state is not indicating that!", - _event._schemaRequestedButNotYetInjected, - _event._state); - - // Inject schema - _event.setSchema(arguments); - - // Arguments must be 2 + 2 (severity) - assertEquals(2,_event._arguments.size()); - - QpidProperty argument = _event._arguments.get(TestConstants.AGE_ATTRIBUTE_NAME); - assertEquals(TestConstants.AGE_ATTRIBUTE_NAME,argument.getName()); - assertEquals(AccessMode.RO,argument.getAccessMode()); - assertEquals(TestConstants.AGE_ATTRIBUTE_DESCRIPTION,argument.getDescription()); - assertEquals(Short.class,argument.getJavaType()); - assertFalse(argument.isOptional()); - - argument = _event._arguments.get(TestConstants.SURNAME_ATTRIBUTE_NAME); - assertEquals(TestConstants.SURNAME_ATTRIBUTE_NAME,argument.getName()); - assertEquals(AccessMode.RO,argument.getAccessMode()); - assertEquals(TestConstants.SURNAME_ATTRIBUTE_DESCRIPTION,argument.getDescription()); - assertEquals(Short.class,argument.getJavaType()); - assertFalse(argument.isOptional()); - - assertEquals(1,_event._eventInstances.size()); - - JmxService service = new JmxService(); - Set objectNames = service.getEventMBeans(); - - assertEquals(1,objectNames.size()); - } - - /** - * Tests the behaviour of the event class when a schema request can't be made. - * - *
precondition : event must be in "schema-not-requested" state when incoming data arrives. - *
postcondition : no exception is thrown and no state transition happens. - */ - public void testStateChange_withRequestSchemaFailure() - { - _event = new QpidEvent(TestConstants.BIND_EVENT_NAME,TestConstants.HASH,_qpidPackage) - { - @Override - void requestSchema() throws Exception { - throw new Exception(); - } - - @Override - void setSchema(List> argumentDefinitions)throws UnableToBuildFeatureException { - _state = _schemaInjected; - } - }; - - assertSame( - "Initial state must be schema-not-requested.", - _event._schemaNotRequested, - _event._state); - - _event.addEventData(TestConstants.TEST_RAW_DATA, TestConstants.NOW, TestConstants.SEVERITY); - - assertSame( - "Current state must be still schema-not-requested.", - _event._schemaNotRequested, - _event._state); - } - - /** - * Tests the behaviour of the event class when a schema injection fails. - * - *
precondition : event must be in "schema-not-requested" state when incoming data arrives. - *
postcondition : an exception is thrown and no state transition happens. - */ - public void testStateChange_withSchemaInjectionFailure() - { - _event = new QpidEvent(TestConstants.BIND_EVENT_NAME,TestConstants.HASH,_qpidPackage) - { - @Override - void requestSchema() throws Exception { - // DO NOTHING. - } - - @Override - void setSchema(List> argumentDefinitions)throws UnableToBuildFeatureException { - throw new UnableToBuildFeatureException(""); - } - }; - - assertSame( - "Initial state must be schema-not-requested.", - _event._schemaNotRequested, - _event._state); - - _event.addEventData(TestConstants.TEST_RAW_DATA, TestConstants.NOW, TestConstants.SEVERITY); - - assertSame( - "Request schema has been requested but not yet injected. The current state is not indicating that!", - _event._schemaRequestedButNotYetInjected, - _event._state); - - try { - _event.setSchema(TestConstants.EMPTY_ARGUMENTS_SCHEMA); - fail("If we are here something was wrong becuase the setSchema() of this event is throwing an exception..."); - } catch (UnableToBuildFeatureException expected) { - assertSame( - "Request schema has been requested but not yet injected. The current state is not indicating that!", - _event._schemaRequestedButNotYetInjected, - _event._state); - } - } - - /** - * Factory method for qpid managed event instances. - * - * @return a new QpidManagedEvent with test data inside. - */ - private QManManagedEvent createEventInstance() - { - return _event.createEventInstance( - TestConstants.TEST_RAW_DATA, - TestConstants.NOW, - TestConstants.SEVERITY); - } - - /** - * Factory method for event argument. - * - * @return a new argument metadata. - */ - private Map createArgument(String name,String desc) - { - Map argument = new HashMap(); - argument.put(QpidFeatureBuilder.Attribute.name.name(),name); - argument.put(QpidFeatureBuilder.Attribute.desc.name(), desc); - argument.put(QpidFeatureBuilder.Attribute.type.name(), TestConstants._1); - return argument; - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidMethodBuilderTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidMethodBuilderTest.java deleted file mode 100644 index 06dc35b0b1..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidMethodBuilderTest.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * - * 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.domain.model; - -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.dir; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.name; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.type; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.unit; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.management.MBeanOperationInfo; - -import org.apache.qpid.management.Names; -import org.apache.qpid.management.domain.handler.impl.MethodOrEventDataTransferObject; -import org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute; - -/** - * Test case for Qpid Statistic builder. - * - * @author Andrea Gazzarini - */ -public class QpidMethodBuilderTest extends BaseQpidFeatureBuilderTestCase -{ - private final static Integer ARG_COUNT = 3; - private MethodOrEventDataTransferObject _methodDefinition; - - private List> _argumentsDefinitons = new ArrayList>(); - - @Override - protected void setUp () throws Exception - { - super.setUp(); - _featureDefinition.put(Names.ARG_COUNT_PARAM_NAME, ARG_COUNT); - - Map arg1 = new HashMap(); - arg1.put(name.name(), "arg1"); - arg1.put(type.name(),1); - arg1.put(dir.name(),Direction.I.name()); - arg1.put(unit.name(), "bytes"); - - Map arg2 = new HashMap(); - arg2.put(name.name(), "arg2"); - arg2.put(type.name(),1); - arg2.put(dir.name(),Direction.O.name()); - arg2.put(unit.name(), "bytes"); - - Map arg3 = new HashMap(); - arg3.put(name.name(), "arg3"); - arg3.put(type.name(),1); - arg3.put(dir.name(),Direction.IO.name()); - arg3.put(unit.name(), "bytes"); - - /* - dir yes no yes Direction code for method arguments - unit yes yes yes Units for numeric values (i.e. seconds, bytes, etc.) - min yes no yes Minimum value for numerics - max yes no yes Maximum value for numerics - maxlen yes no yes Maximum length for strings - desc yes yes yes Description of the argument - default yes no yes Default value for the argument - */ - _argumentsDefinitons.add(arg1); - _argumentsDefinitons.add(arg2); - - _methodDefinition = new MethodOrEventDataTransferObject(_featureDefinition,_argumentsDefinitons); - _builder = QpidFeatureBuilder.createMethodBuilder(_methodDefinition); - } - - /** - * Tests the build process for a statistic when the definition map doesn't contains type attribute. - * - *
precondition: definition map doesn't contains type attribute. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attribute. - */ - public void testMethodBuilderKO_WithMissingName() - { - internalTestForMissingMandatoryAttribute(Attribute.name); - } - - /** - * Tests the build process for a statistic when the definition map doesn't contain type, name, index & optional attributes. - * - *
precondition: definition map doesn't contain type, name, index & optional attributes. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attributes. - */ - public void testMethodBuilderOK_WithMissingUnit() throws UnableToBuildFeatureException - { - internalTestForMissingOptionalAttribute(Attribute.unit); - } - - /** - * Tests the build process for a statistic when the definition map doesn't unit attribute. - * Note that this attribute is optional and therefore the build must succeed. - * - *
precondition: definition map doesn't contain unit attribute. - *
postcondition : no exception is thrown and the statistic is built. - */ - public void testMethodBuilderOK_WithMissingDescription() throws UnableToBuildFeatureException - { - internalTestForMissingOptionalAttribute(Attribute.desc); - } - - /** - * Tests the build process for a statistic when the definition map contains valid values. - * - *
precondition : the statistic definiton map contains valid values. - *
postcondition : no exception is thrown and the statistisc is built as expected. - */ - public void testMethodBuilderOK() throws UnableToBuildFeatureException - { - _builder.build(); - - QpidMethod method = (QpidMethod) _builder.getQpidFeature(); - MBeanOperationInfo info = (MBeanOperationInfo) _builder.getManagementFeature(); - - assertEquals(NAME,method.getName()); - - assertEquals(DESCRIPTION,method.getDescription()); - - assertEquals(method.getDescription(),info.getDescription()); - assertEquals(method.getName(),info.getName()); - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidNumberPropertyTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidNumberPropertyTest.java deleted file mode 100644 index 374011d150..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidNumberPropertyTest.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * - * 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.domain.model; - -import junit.framework.TestCase; - -import org.apache.qpid.management.configuration.Configurator; -import org.apache.qpid.management.domain.model.type.Uint8; - -public class QpidNumberPropertyTest extends TestCase -{ - private QpidProperty _property; - private Long _value = 55432L; - - @Override - protected void setUp () throws Exception - { - Configurator configurator = new Configurator(); - configurator.configure(); - _property = new QpidProperty(); - _property.setName("average"); - _property.setAccessMode(AccessMode.RW); - _property.setType(new Uint8()); - } - - /** - * Tests the validation of a qpid property when the type is a number and no constraint has been set. - * - *
precondition : property type is a string, no constraint has been set. - *
postcondition : no exception is thrown and the validation succeeds. - */ - public void testValidationWithoutConstraints() { - try - { - _property.validate(_value); - } catch (ValidationException notExpected) - { - fail("If no constraint has been set on this property why the validation is failing?"); - } - } - - /** - * Tests the validation of a qpid property when the type is a number and a max value constraint has been set. - * - *
precondition : property type is a number, max value has been set and property value is greater than max value. - *
postcondition : an exception is thrown indicating the validation failure. - */ - public void testValidationKO_withMaxValue() { - int maxValue = (int)(_value-1); - _property.setMaxValue(maxValue); - - try - { - _property.validate(_value); - fail("The given value is violating the installed constraint so an exception must be thrown."); - } catch (ValidationException expected) - { - assertEquals(ValidationException.MAX_VALUE,expected.getConstraintName()); - assertEquals(maxValue,expected.getConstraintValue()); - assertEquals((double)_value,expected.getFeatureValue()); - assertEquals(_property.getName(),expected.getFeatureName()); - } - } - - /** - * Tests the validation of a qpid property when the type is a number and a min value constraint has been set. - * - *
precondition : property type is a number, min value has been set and property value is lesser than min value. - *
postcondition : an exception is thrown indicating the validation failure. - */ - public void testValidationKO_withMinValue() { - int minValue = (int)(_value+1); - _property.setMinValue(minValue); - - try - { - _property.validate(_value); - fail("The given value is violating the installed constraint so an exception must be thrown."); - } catch (ValidationException expected) - { - assertEquals(ValidationException.MIN_VALUE,expected.getConstraintName()); - assertEquals(minValue,expected.getConstraintValue()); - assertEquals((double)_value,expected.getFeatureValue()); - assertEquals(_property.getName(),expected.getFeatureName()); - } - } - - - /** - * Tests the validation of a qpid property when the number is a string and the property value is null. - * - *
precondition : property type is a number and property value is null.. - *
postcondition : no exception is thrown. That is : the validation succeeds. - */ - public void testValidationOK_withNullValue() { - try - { - _property.validate(null); - } catch (ValidationException notExpected) - { - fail("No constraint has been violated so validate() shouldn't raise an exception."); - } - - _property.setMinValue(1); - _property.setMaxValue(10); - - try - { - _property.validate(null); - } catch (ValidationException notExpected) - { - fail("No constraint has been violated so validate() shouldn't raise an exception."); - } - } - - /** - * Tests the validation of a qpid property when the type is a number and a max / min constraints have been set. - * - *
precondition : property type is a number, max / min constraint have been set and property value is wrong. - *
postcondition : an exception is thrown indicating the validation failure. - */ - public void testValidationOK_withMinAndMaxConstraint() { - int minValue = (int)(_value+1); - int maxValue = (int)(_value-1); - _property.setMinValue(minValue); - _property.setMaxValue(maxValue); - - try - { - _property.validate(_value); - fail("The given value is violating the installed constraint so an exception must be thrown."); - } catch (ValidationException expected) - { - assertEquals(ValidationException.MIN_VALUE,expected.getConstraintName()); - assertEquals(minValue,expected.getConstraintValue()); - assertEquals((double)_value,expected.getFeatureValue()); - assertEquals(_property.getName(),expected.getFeatureName()); - } - - _property.setMinValue(0); - try - { - _property.validate(_value); - fail("The given value is violating the installed constraint so an exception must be thrown."); - } catch (ValidationException expected) - { - assertEquals(ValidationException.MAX_VALUE,expected.getConstraintName()); - assertEquals(maxValue,expected.getConstraintValue()); - assertEquals((double)_value,expected.getFeatureValue()); - assertEquals(_property.getName(),expected.getFeatureName()); - } - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPackageTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPackageTest.java deleted file mode 100644 index b7eb9055ba..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPackageTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * - * 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.domain.model; - -import org.apache.qpid.management.TestConstants; - -/** - * Test case for Qpid package entity. - * - * @author Andrea Gazzarini - */ -public class QpidPackageTest extends BaseDomainModelTestCase -{ - private QpidPackage _qpidPackage; - - @Override - protected void setUp () throws Exception - { - _qpidPackage = new QpidPackage(TestConstants.QPID_PACKAGE_NAME, TestConstants.DOMAIN_MODEL); - } - - /** - * Tests the association of a new class with a qpid package. - * - *
precondition : the package is not associated with any class. - *
postcondition : the package is now associated with the given class. - */ - public void testAddClass() throws UnableToBuildFeatureException { - assertFalse(_qpidPackage.alreadyContainsClassDefinition(TestConstants.EXCHANGE_CLASS_NAME, TestConstants.HASH)); - - _qpidPackage.getQpidClass(TestConstants.EXCHANGE_CLASS_NAME, TestConstants.HASH, true); - - assertTrue(_qpidPackage.alreadyContainsClassDefinition(TestConstants.EXCHANGE_CLASS_NAME, TestConstants.HASH)); - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPropertyBuilderTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPropertyBuilderTest.java deleted file mode 100644 index 8ad177645c..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidPropertyBuilderTest.java +++ /dev/null @@ -1,269 +0,0 @@ -/* - * - * 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.domain.model; - -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.access; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.index; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.max; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.min; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.optional; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.type; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.unit; - -import javax.management.MBeanAttributeInfo; - -import org.apache.qpid.management.configuration.UnknownTypeCodeException; -import org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute; - -/** - * Test case for Qpid Property builder. - * - * @author Andrea Gazzarini - */ -public class QpidPropertyBuilderTest extends BaseQpidFeatureBuilderTestCase -{ - private final static Integer MIN = 0; - private final static Integer MAX = 120; - private final static String UNIT = "bytes"; - - private Integer _access; - - @Override - protected void setUp () throws Exception - { - super.setUp(); - - _access = 1; - _featureDefinition.put(access.name(), _access); - _featureDefinition.put(unit.name(),UNIT); - _featureDefinition.put(min.name(), MIN); - _featureDefinition.put(max.name(),MAX); - - _featureDefinition.put(type.name(), 1); - _featureDefinition.put(optional.name(),0); - _featureDefinition.put(index.name(), 0); - - _builder = QpidFeatureBuilder.createPropertyBuilder(_featureDefinition); - } - - /** - * Tests the build process for a statistic when the definition map contains an unknown type code. - * - *
precondition : the statistic definiton map contains an unknown type code. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testStatisticBuilderKO_WithUnknownType() - { - int unknownTypeCode =999; - try - { - _featureDefinition.put(type.name(), unknownTypeCode); - _builder.build(); - fail("An unknown type code should raise an exception to indicate a failure."); - } catch (UnableToBuildFeatureException expected) - { - assertEquals(unknownTypeCode,((UnknownTypeCodeException)expected.getCause()).getCode()); - } - } - - /** - * Tests the build process for a statistic when the definition map contains a null value for a metadata attribute. - * - *
precondition : the statistic definiton map contains a null value for a metadata attribute. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testMethodBuilderKO_WithNullMetadataValue() - { - try - { - _featureDefinition.put(type.name(), null); - _builder.build(); - fail("An null value for a metadata attribute should raise an exception to indicate a failure."); - } catch (UnableToBuildFeatureException expected) - { - assertTrue(expected.getCause() instanceof NullPointerException); - } - } - - /** - * Tests the build process for a property when the definition map contains an invalid metadata type. - * - *
precondition : the property definiton map contains a wrong type for a metadata attribute. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testPropertyBuilderKO_WithClassCastException() - { - try - { - _featureDefinition.put(access.name(), new String("a")); - _builder.build(); - fail("A wrong metadata attribute type should raise an exception to indicate a failure."); - } catch (UnableToBuildFeatureException expected) - { - assertTrue(expected.getCause() instanceof ClassCastException); - } - } - - /** - * Tests the build process for a property when the definition map contains an unknown type code. - * - *
precondition : the property definiton map contains an unknown type code. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testPropertyBuilderKO_WithUnknownType() - { - int unknownTypeCode = 999; - try - { - _featureDefinition.put(type.name(), unknownTypeCode); - _builder.build(); - fail("An unknown type code should raise an exception to indicate a failure."); - } catch (UnableToBuildFeatureException expected) - { - assertEquals(unknownTypeCode,((UnknownTypeCodeException)expected.getCause()).getCode()); - } - } - - /** - * Tests the build process for a property when the definition map doesn't contains type attribute. - * - *
precondition: definition map doesn't contains type attribute. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attribute. - */ - public void testPropertyBuilderKO_WithMissingType() - { - internalTestForMissingMandatoryAttribute(Attribute.type); - } - - /** - * Tests the build process for a property when the definition map doesn't contain type & name attributes. - * - *
precondition: definition map doesn't contain type & name attributes. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attributes. - */ - public void testPropertyBuilderKO_WithMissingTypeAndName() - { - internalTestForMissingMandatoryAttribute(Attribute.type, Attribute.name); - } - - /** - * Tests the build process for a property when the definition map doesn't contain type & name & index attributes. - * - *
precondition: definition map doesn't contain type & name & index attributes. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attributes. - */ - public void testPropertyBuilderKO_WithMissingTypeAndNameAndIndex() - { - internalTestForMissingMandatoryAttribute(Attribute.type, Attribute.name,Attribute.index); - } - - /** - * Tests the build process for a property when the definition map doesn't contain type, name, index & optional attributes. - * - *
precondition: definition map doesn't contain type, name, index & optional attributes. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attributes. - */ - public void testPropertyBuilderKO_WithMissingTypeAndNameAndIndexAndOptional() - { - internalTestForMissingMandatoryAttribute(Attribute.type, Attribute.name,Attribute.index,Attribute.optional); - } - - /** - * Tests the build process for a property when the definition map doesn't contain type, name, index, optional and access - * attributes. - * - *
precondition: definition map doesn't contain type, name, index, optional and access attributes. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attributes. - */ - public void testPropertyBuilderKO_WithMissingTypeAndNameAndIndexAndOptionalAndAccess() - { - internalTestForMissingMandatoryAttribute(Attribute.type, Attribute.name,Attribute.index,Attribute.optional,Attribute.access); - } - - /** - * Tests the build process for a property when the definition map doesn't unit attribute. - * Note that this attribute is optional and therefore the build must succeed. - * - *
precondition: definition map doesn't contain unit attribute. - *
postcondition : no exception is thrown and the property is built. - */ - public void testBuilderOK_WithMissingUnit() throws UnableToBuildFeatureException - { - internalTestForMissingOptionalAttribute(Attribute.unit); - } - - /** - * Tests the build process for a property when the definition map doesn't min and max attributes. - * Note that those attributes are optional and therefore the build must succeed. - * - *
precondition: definition map doesn't contain min and max attributes. - *
postcondition : no exception is thrown and the property is built. - */ - public void testBuilderOK_WithMissingMinAndMax() throws UnableToBuildFeatureException - { - internalTestForMissingOptionalAttribute(Attribute.min,Attribute.max); - } - - /** - * Tests the build process for a property when the definition map doesn't description attribute. - * Note that this attribute is optional and therefore the build must succeed. - * - *
precondition: definition map doesn't contain description attribute. - *
postcondition : no exception is thrown and the property is built. - */ - public void testBuilderOK_WithMissingDescription() throws UnableToBuildFeatureException - { - internalTestForMissingOptionalAttribute(Attribute.desc); - } - - /** - * Tests the build process for a property when the definition map contains valid values. - * - *
precondition : the property definiton map contains valid values. - *
postcondition : no exception is thrown and the property is built as expected. - */ - public void testPropertyBuilderOK() throws UnableToBuildFeatureException - { - _builder.build(); - - QpidProperty property = (QpidProperty) _builder.getQpidFeature(); - MBeanAttributeInfo info = (MBeanAttributeInfo) _builder.getManagementFeature(); - - assertEquals(NAME,property.getName()); - assertEquals(AccessMode.RC,property.getAccessMode()); - assertEquals(UNIT,property.getUnit()); - assertEquals(MIN.intValue(),property.getMinValue()); - assertEquals(MAX.intValue(),property.getMaxValue()); - assertEquals(Integer.MIN_VALUE,property.getMaxLength()); - assertEquals(DESCRIPTION,property.getDescription()); - assertEquals(Short.class,property.getJavaType()); - assertFalse(property.isOptional()); - - assertEquals(property.getDescription(),info.getDescription()); - assertEquals(property.getName(),info.getName()); - assertEquals(property.getJavaType().getName(),info.getType()); - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStatisticBuilderTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStatisticBuilderTest.java deleted file mode 100644 index b7a8540b2d..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStatisticBuilderTest.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * - * 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.domain.model; - -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.type; -import static org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute.unit; - -import javax.management.MBeanAttributeInfo; - -import org.apache.qpid.management.configuration.UnknownTypeCodeException; -import org.apache.qpid.management.domain.model.QpidFeatureBuilder.Attribute; - -/** - * Test case for Qpid Statistic builder. - * - * @author Andrea Gazzarini - */ -public class QpidStatisticBuilderTest extends BaseQpidFeatureBuilderTestCase -{ - private final static String UNIT = "bytes"; - - @Override - protected void setUp () throws Exception - { - super.setUp(); - _featureDefinition.put(unit.name(),UNIT); - _featureDefinition.put(type.name(), 1); - - _builder = QpidFeatureBuilder.createStatisticBuilder(_featureDefinition); - } - - /** - * Tests the build process for a statistic when the definition map contains an unknown type code. - * - *
precondition : the statistic definiton map contains an unknown type code. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testStatisticBuilderKO_WithUnknownType() - { - int unknownTypeCode = 999; - try - { - _featureDefinition.put(type.name(), unknownTypeCode); - _builder.build(); - fail("An unknown type code should raise an exception to indicate a failure."); - } catch (UnableToBuildFeatureException expected) - { - assertEquals(unknownTypeCode,((UnknownTypeCodeException)expected.getCause()).getCode()); - } - } - - /** - * Tests the build process for a statistic when the definition map contains a null value for a metadata attribute. - * - *
precondition : the statistic definiton map contains a null value for a metadata attribute. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testMethodBuilderKO_WithNullMetadataValue() - { - try - { - _featureDefinition.put(type.name(), null); - _builder.build(); - fail("An null value for a metadata attribute should raise an exception to indicate a failure."); - } catch (UnableToBuildFeatureException expected) - { - assertTrue(expected.getCause() instanceof NullPointerException); - } - } - - /** - * Tests the build process for a statistic when the definition map doesn't contains type attribute. - * - *
precondition: definition map doesn't contains type attribute. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attribute. - */ - public void testStatisticBuilderKO_WithMissingType() - { - internalTestForMissingMandatoryAttribute(Attribute.type); - } - - /** - * Tests the build process for a statistic when the definition map doesn't contain type & name attributes. - * - *
precondition: definition map doesn't contain type & name attributes. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attributes. - */ - public void testStatisticBuilderKO_WithMissingTypeAndName() - { - internalTestForMissingMandatoryAttribute(Attribute.type, Attribute.name); - } - - /** - * Tests the build process for a statistic when the definition map doesn't contain type, name, index & optional attributes. - * - *
precondition: definition map doesn't contain type, name, index & optional attributes. - *
postcondition : an exception should be thrown indicating the failure. That exception must contain the name of the - * missing attributes. - */ - public void testStatisticBuilderOK_WithMissingUnit() throws UnableToBuildFeatureException - { - internalTestForMissingOptionalAttribute(Attribute.unit); - } - - /** - * Tests the build process for a statistic when the definition map doesn't unit attribute. - * Note that this attribute is optional and therefore the build must succeed. - * - *
precondition: definition map doesn't contain unit attribute. - *
postcondition : no exception is thrown and the statistic is built. - */ - public void testBuilderOK_WithMissingDescription() throws UnableToBuildFeatureException - { - internalTestForMissingOptionalAttribute(Attribute.desc); - } - - /** - * Tests the build process for a statistic when the definition map contains valid values. - * - *
precondition : the statistic definiton map contains valid values. - *
postcondition : no exception is thrown and the statistisc is built as expected. - */ - public void testStatisticBuilderOK() throws UnableToBuildFeatureException - { - _builder.build(); - - QpidStatistic statistic= (QpidStatistic) _builder.getQpidFeature(); - MBeanAttributeInfo info = (MBeanAttributeInfo) _builder.getManagementFeature(); - - assertEquals(NAME,statistic.getName()); - assertEquals(UNIT,statistic.getUnit()); - assertEquals(DESCRIPTION,statistic.getDescription()); - assertEquals(Short.class,statistic.getJavaType()); - - assertEquals(statistic.getDescription(),info.getDescription()); - assertEquals(statistic.getName(),info.getName()); - assertEquals(statistic.getJavaType().getName(),info.getType()); - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStringPropertyTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStringPropertyTest.java deleted file mode 100644 index 8aeb7c8550..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/QpidStringPropertyTest.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * - * 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.domain.model; - -import junit.framework.TestCase; - -import org.apache.qpid.management.configuration.Configurator; -import org.apache.qpid.management.domain.model.type.Str16; - -public class QpidStringPropertyTest extends TestCase -{ - private QpidProperty _property; - private final String _5LettersString = "12345"; - - @Override - protected void setUp () throws Exception - { - Configurator configurator = new Configurator(); - configurator.configure(); - _property = new QpidProperty(); - _property.setName("name"); - _property.setAccessMode(AccessMode.RW); - _property.setType(new Str16()); - } - - /** - * Tests the validation of a qpid property when the type is a string and a max length constraint hasn't been set. - * - *
precondition : property type is a string, max length hasn't been set. - *
postcondition : no exception is thrown. That is : the validation succeeds. - */ - public void testValidationWithoutMaxLength() { - try - { - _property.validate(_5LettersString); - } catch (ValidationException notExpected) - { - fail("No max length has been set on property so validation must succeed."); - } - } - - /** - * Tests the validation of a qpid property when the type is a string and a max length constraint has been set. - * - *
precondition : property type is a string, max length has been set and property value is longer than max length. - *
postcondition : an exception is thrown indicating the validation failure. - */ - public void testValidationKO_withMaxLength() { - int maxLength = 2; - _property.setMaxLength(maxLength); - - try - { - _property.validate(_5LettersString); - fail("No max length has been set on property so validation must proceed."); - } catch (ValidationException expected) - { - assertEquals(ValidationException.MAX_LENGTH,expected.getConstraintName()); - assertEquals(maxLength,expected.getConstraintValue()); - assertEquals(_5LettersString.length(),expected.getFeatureValue()); - assertEquals(_property.getName(),expected.getFeatureName()); - } - } - - /** - * Tests the validation of a qpid property when the type is a string and the property value is null. - * - *
precondition : property type is a string and property value is null.. - *
postcondition : no exception is thrown. That is : the validation succeeds. - */ - public void testValidationOK_withNullValue() { - try - { - _property.validate(null); - } catch (ValidationException notExpected) - { - fail("No constraint has been violated so validate() shouldn't raise an exception."); - } - - _property.setMaxLength(1); - - try - { - _property.validate(null); - } catch (ValidationException notExpected) - { - fail("No constraint has been violated so validate() shouldn't raise an exception."); - } - } - - /** - * Tests the validation of a qpid property when the type is a string and a max length constraint has been set. - * - *
precondition : property type is a string, max length has been set and property value is not violating that. - *
postcondition : no exception is thrown. That is : the validation succeeds. - */ - public void testValidationOK_withMaxLength() { - int maxLength = (_5LettersString.length()+1); - _property.setMaxLength(maxLength); - - try - { - _property.validate(_5LettersString); - } catch (ValidationException notExpected) - { - fail("No constraint has been violated so validate() shouldn't raise an exception."); - } - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/type/BinaryTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/model/type/BinaryTest.java deleted file mode 100644 index 6636c08710..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/model/type/BinaryTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - * 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.domain.model.type; - -import junit.framework.TestCase; - -/** - * Test case for "Binary" type. - * - * @author Andrea Gazzarini - */ -public class BinaryTest extends TestCase -{ - /** - * Tests the lazy & once hash code computation behaviour of the binary type. - */ - public void testHashCodeComputation(){ - Binary binary = new Binary(new byte[]{1,2,3,4,5,6,7,6,3,3}); - assertSame(binary.state,binary.hashCodeNotYetComputed); - - int firstResult = binary.hashCode(); - assertSame(binary.state,binary.hashCodeAlreadyComputed); - - int secondResult = binary.hashCode(); - assertSame(binary.state,binary.hashCodeAlreadyComputed); - assertEquals(firstResult,secondResult); - } - - /** - * Tests the equals() method of the binary class. - * Two binary must be equals only if they contain the same array (that is, two arrays with the same size & content) - */ - public void testIdentity() { - Binary binary = new Binary(new byte[]{1,2,3,4,5,6,7,6,3,3}); - Binary theSame= new Binary(new byte[]{1,2,3,4,5,6,7,6,3,3}); - Binary aDifferentOne = new Binary(new byte[]{4,2,3,3,4,4,5,3,3,2}); - - assertTrue(binary.equals(theSame)); - assertFalse(binary.equals(aDifferentOne)); - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/services/BrokerMessageListenerTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/services/BrokerMessageListenerTest.java deleted file mode 100644 index 805c039a6f..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/services/BrokerMessageListenerTest.java +++ /dev/null @@ -1,241 +0,0 @@ -/* - * - * 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.domain.services; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Random; - -import junit.framework.TestCase; - -import org.apache.qpid.api.Message; -import org.apache.qpid.management.TestConstants; -import org.apache.qpid.management.domain.handler.base.IMessageHandler; -import org.apache.qpid.management.domain.model.DomainModel; -import org.apache.qpid.nclient.util.ByteBufferMessage; -import org.apache.qpid.transport.codec.Decoder; - -/** - * Test case for Broker Message Listener. - * - * @author Andrea Gazzarini - */ -public class BrokerMessageListenerTest extends TestCase -{ - // An empty message handler user for test. - private IMessageHandler _emptyMessageHandler = new IMessageHandler() - { - public void process (Decoder decoder, int sequenceNumber) - { - } - public void setDomainModel (DomainModel domainModel) - { - } - }; - - // Another empty message handler user for test. - private IMessageHandler _anotherEmptyMessageHandler = new IMessageHandler() - { - public void process (Decoder decoder, int sequenceNumber) - { - } - public void setDomainModel (DomainModel domainModel) - { - } - }; - - private Map _handlers = new HashMap(); - private BrokerMessageListener _listener; - private final char opcode1 = 'x'; - private final char opcode2 = 'y'; - - - @Override - protected void setUp () throws Exception - { - DomainModel domainModel = new DomainModel(TestConstants.BROKER_ID); - _listener = new BrokerMessageListener(domainModel); - - _handlers.put(opcode1, _emptyMessageHandler); - _handlers.put(opcode2, _anotherEmptyMessageHandler); - } - - /** - * Tests the installation of message handlers on a broker message listener. - * - *
precondition : no message handler has been installed on message listener. - *
postcondition : two message handlers are installed on message listener. - */ - public void testSetHandlersOK() - { - assertTrue( - "No handler has yet been installed so how is it possible that the handlers map is not empty?", - _listener._handlers.isEmpty()); - - _listener.setHandlers(_handlers); - - assertEquals("Now we should have two handlers configured.",2,_listener._handlers.size()); - assertSame(_listener._handlers.get(opcode1),_emptyMessageHandler); - assertSame(_listener._handlers.get(opcode2),_anotherEmptyMessageHandler); - } - - /** - * Tests the installation of message handlers on a broker message listener. - * Specifically it tries to install three message handlers and one of them is throwing an exception at installation time. - * - *
precondition : no message handler has been installed on message listener. - *
postcondition : two message handlers are installed on message listener. (the one that thrown exception has been - * discarded). - */ - public void testSetHandlerOK() - { - IMessageHandler wrongMessageHandler = new IMessageHandler() - { - - public void process (Decoder decoder, int sequenceNumber) - { - } - - public void setDomainModel (DomainModel domainModel) - { - throw new RuntimeException(); - } - }; - - char opcodeForWrongHandler = 'k'; - - assertTrue( - "No handler has yet been installed so how is it possible that the handlers map is not empty?", - _listener._handlers.isEmpty()); - - _handlers.put(opcodeForWrongHandler,wrongMessageHandler); - - _listener.setHandlers(_handlers); - - assertEquals("Now we should have two handlers configured.",2,_listener._handlers.size()); - assertSame(_listener._handlers.get(opcode1),_emptyMessageHandler); - assertSame(_listener._handlers.get(opcode2),_anotherEmptyMessageHandler); - assertNull(_listener._handlers.get(opcodeForWrongHandler)); - } - - /** - * Tests the execution of the onMessage() method when a message with a bad magic number is received. - * - *
precondition : a message with a bad magic number is received. - *
postcondition : the processing of the incoming message is skipped and therefore no handler will be called. - */ - public void testOnMessageKO_withBadMagicNumber() throws IOException - { - IMessageHandler neverCallMe = new IMessageHandler() - { - - public void process (Decoder decoder, int sequenceNumber) - { - fail("This test shouldn't never arrive at this point..."); - } - - public void setDomainModel (DomainModel domainModel) - { - } - }; - - String opcodeForNeverCallMeHandler = "w"; - - _handlers.put('w',neverCallMe); - _listener.setHandlers(_handlers); - - Message message = new ByteBufferMessage(); - message.appendData( ("AMG"+opcodeForNeverCallMeHandler).getBytes()); - - _listener.onMessage(message); - } - - /** - * Tests the execution of the onMessage() method when the incoming message is a compound message. - * - *
precondition : the incoming message is a compound message. - *
postcondition : each tokenized message is forwarded to the appropriate handler. - */ - public void testOnMessageOK_WithCompoundMessage() throws Exception - { - final Map handlersMap = new HashMap(); - char [] opcodes = {'a','b','c','d','e'}; - - class MockMessageHandler implements IMessageHandler - { - private final char _opcode; - - public MockMessageHandler(char opcode) - { - this._opcode = opcode; - } - - public void process (Decoder decoder, int sequenceNumber) - { - handlersMap.remove(_opcode); - } - - public void setDomainModel (DomainModel domainModel) - { - // Do nothing here. It's just a mock handler. - } - }; - - for (char opcode : opcodes) - { - handlersMap.put(opcode, new MockMessageHandler(opcode)); - } - - // Removes previously injected handlers (i.e. x & y) - _listener._handlers.clear(); - _listener.setHandlers(handlersMap); - - Message compoundMessage = createCompoundMessage(opcodes); - _listener.onMessage(compoundMessage); - - assertTrue(handlersMap.isEmpty()); - } - - // Creates a (non valid) compound message. - private Message createCompoundMessage(char[] opcodes) throws IOException { - byte [] compoundMessageData = new byte [12 * opcodes.length]; - Random randomizer = new Random(); - int position = 0; - - for (char opcode : opcodes) { - System.arraycopy(MessageTokenizer.MAGIC_NUMBER_BYTES, 0, compoundMessageData, position, MessageTokenizer.MAGIC_NUMBER_BYTES.length); - position+=MessageTokenizer.MAGIC_NUMBER_BYTES.length; - - compoundMessageData[position++] = (byte)opcode; - - for (int c = 4; c < 12; c++) - { - byte aByte = (byte)randomizer.nextInt(127); - compoundMessageData[position++] = aByte; - } - } - - Message compoundMessage = new ByteBufferMessage(); - compoundMessage.appendData(compoundMessageData); - return compoundMessage; - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/domain/services/MessageTokenizerTest.java b/java/management/client/src/test/java/org/apache/qpid/management/domain/services/MessageTokenizerTest.java deleted file mode 100644 index 55b8b17f9d..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/domain/services/MessageTokenizerTest.java +++ /dev/null @@ -1,140 +0,0 @@ -/* -* - * 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.domain.services; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.*; - -import junit.framework.TestCase; - -import org.apache.qpid.api.Message; -import org.apache.qpid.nclient.util.ByteBufferMessage; -import org.apache.qpid.transport.codec.BBDecoder; - -/** - * Tests case for messaeg tokenizer. - * - * @author Andrea Gazzarini - */ -public class MessageTokenizerTest extends TestCase { - - /** - * Tests the execution of the message tokenizer when the given message is not a valid AMQP message. - * - *
precondition : the incoming message is not a valid AMQP message. - *
postcondition : no exception is thrown and there will be exactly one token with the given message. - */ - public void testOK_WithNoMessage() throws IOException{ - byte [] noMessage = {2,10,120,23,23,23,4,10,11,12,2,1,3,-22}; - - Message multiMessage = new ByteBufferMessage(); - multiMessage.appendData(noMessage); - MessageTokenizer tokenizer = new MessageTokenizer(multiMessage); - - assertEquals(1, tokenizer.countTokens()); - assertEquals(tokenizer.nextElement(),noMessage); - assertFalse(tokenizer.hasMoreElements()); - } - - /** - * Tests the execution of the message tokenizer when the given message contains only one message. - * - *
precondition : the incoming message contains only one message. - *
postcondition : no exception is thrown and there will be exactly one token with the given message. - */ - public void testOK_WithOneMessage() throws IOException{ - byte [] oneEncodedMessage = {'A','M','2',23,23,23,4,10,11,12,2,1,3,-22}; - - Message multiMessage = new ByteBufferMessage(); - multiMessage.appendData(oneEncodedMessage); - MessageTokenizer tokenizer = new MessageTokenizer(multiMessage); - - assertEquals(1, tokenizer.countTokens()); - assertEquals(tokenizer.nextElement(),oneEncodedMessage); - assertFalse(tokenizer.hasMoreElements()); - } - - /** - * Tests the execution of the message tokenizer when the given message contains a random number of messages. - * - *
precondition : the incoming message contains a random number of messages. - *
postcondition : no exception is thrown and each built token is a valid message starting with right header. - */ - public void testOK_WithRandomNUmberOfMessages() throws IOException{ - Random randomizer = new Random(); - - int howManyLoops = randomizer.nextInt(10000); - howManyLoops = (howManyLoops == 0) ? 10 : howManyLoops; - byte [] compoundMessageData = new byte [12 * howManyLoops]; - - List messages = new ArrayList(howManyLoops); - - int position = 0; - for (int i = 0; i < howManyLoops; i++) - { - byte [] message = new byte[12]; - System.arraycopy(MessageTokenizer.MAGIC_NUMBER_BYTES, 0, compoundMessageData, position, MessageTokenizer.MAGIC_NUMBER_BYTES.length); - System.arraycopy(MessageTokenizer.MAGIC_NUMBER_BYTES, 0, message, 0, MessageTokenizer.MAGIC_NUMBER_BYTES.length); - position+=MessageTokenizer.MAGIC_NUMBER_BYTES.length; - - for (int c = 3; c < 12; c++) - { - byte aByte = (byte)randomizer.nextInt(127); - aByte = (aByte == 77) ? (byte)c : aByte; - compoundMessageData[position++] = aByte; - message[c] = aByte; - } - messages.add(message); - } - - Message multiMessage = new ByteBufferMessage(); - multiMessage.appendData(compoundMessageData); - MessageTokenizer tokenizer = new MessageTokenizer(multiMessage); - - int howManyTokens = tokenizer.countTokens(); - assertEquals(howManyLoops, howManyTokens); - - int index = 0; - while (tokenizer.hasMoreElements()) - { - assertEquals(tokenizer.nextElement(),messages.get(index++)); - } - - assertEquals((index),howManyTokens); - } - - /** - * Internal method used for comparison of two messages. - * - * @param message the token message just built by the tokenizer. - * @param expected the expected result. - */ - private void assertEquals(Message message, byte [] expected) throws IOException - { - ByteBuffer messageContent = message.readData(); - BBDecoder decoder = new BBDecoder(); - decoder.init(messageContent); - byte [] content = decoder.readReaminingBytes(); - assertTrue(Arrays.equals(content, expected)); - } -} 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 deleted file mode 100644 index 900d14c72e..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/BaseWsDmAdapterTestCase.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * - * 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.management.ManagementFactory; -import java.net.URI; -import java.util.UUID; - -import javax.management.MBeanInfo; -import javax.management.MBeanServer; -import javax.management.ObjectName; - -import junit.framework.TestCase; - -import org.apache.muse.ws.addressing.EndpointReference; -import org.apache.muse.ws.resource.remote.WsResourceClient; -import org.apache.muse.ws.resource.sg.remote.ServiceGroupClient; -import org.apache.qpid.management.Names; -import org.apache.qpid.management.Protocol; -import org.apache.qpid.management.TestConstants; - -/** - * Test case for WS-Resource lifecycle management. - * - * @author Andrea Gazzarini - */ -public abstract class BaseWsDmAdapterTestCase extends TestCase implements TestConstants{ - - protected MBeanServer _managementServer; - protected ObjectName _resourceObjectName; - - protected WsResourceClient _resourceClient; - protected MBeanInfo _mbeanInfo; - - /** - * Set up fixture for this test case. - * - * @throws Exception when the test case intialization fails. - */ - protected void setUp() throws Exception - { - _managementServer = ManagementFactory.getPlatformMBeanServer(); - - ServiceGroupClient serviceGroup = getServiceGroupClient(); - WsResourceClient [] members = serviceGroup.getMembers(); - - assertEquals( - "No resource has been yet created so how is " + - "it possible that service group children list is not empty?", - 0, - members.length); - - _managementServer.invoke( - Names.QPID_EMULATOR_OBJECT_NAME, - "createQueue", - new Object[]{_resourceObjectName = createResourceName()}, - new String[]{ObjectName.class.getName()}); - - members = serviceGroup.getMembers(); - assertEquals( - "One resource has just been created so " + - "I expect to find it on service group children list...", - 1, - members.length); - - _resourceClient = members[0]; - _mbeanInfo = _managementServer.getMBeanInfo(_resourceObjectName); - } - - /** - * Shutdown procedure for this test case. - * - * @throws Exception when either the server or some resource fails to shutdown. - */ - @Override - protected void tearDown() throws Exception - { - ServiceGroupClient serviceGroup = getServiceGroupClient(); - WsResourceClient [] members = serviceGroup.getMembers(); - - _managementServer.invoke( - Names.QPID_EMULATOR_OBJECT_NAME, - "unregister", - new Object[]{_resourceObjectName}, - new String[]{ObjectName.class.getName()}); - - members = serviceGroup.getMembers(); - - assertEquals( - "No resource has been yet created so how is it possible that service group children list is not empty?", - 0, - members.length); - } - - /** - * Creates a service group client reference. - * - * @return a service group client reference. - */ - private ServiceGroupClient getServiceGroupClient() - { - URI address = URI.create( - Protocol.DEFAULT_ENDPOINT_URI.replaceFirst("8080",System.getProperty(Names.ADAPTER_PORT_PROPERTY_NAME))); - return new ServiceGroupClient(new EndpointReference(address)); - } - - /** - * In order to test the behaviour of the WS-DM adapter, at - * least one resource must be created. This is the method that - * returns the name (ObjectName on JMX side, Resource-ID on WSDM side) - * of that resource - * - * @return the name of the MBean instance that will be created. - * @throws Exception when the name if malformed. Practically never. - */ - private ObjectName createResourceName() throws Exception - { - return new ObjectName( - "Q-MAN:objectId="+UUID.randomUUID()+ - ", brokerID="+UUID.randomUUID()+ - ",class=queue"+ - ",package=org.apache.qpid"+ - ",name="+System.currentTimeMillis()); - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java deleted file mode 100644 index 615d744546..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * - * 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 javax.xml.namespace.QName; - -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.qpid.management.wsdm.muse.serializer.ByteArraySerializer; -import org.w3c.dom.Element; - -/** - * Custom implementation of Muse ReflectionProxyHandler - * that uses a base64 serializer for byte arrays. - * Note that this proxy handler is only needed for tests because it provides - * client side Base64 serializer capability. - * In a concrete scenario we don't mind what instrument the client is using in order to - * propertly serialize byte arrays. - * - * @author Andrea Gazzarini - */ -public class EnhancedReflectionProxyHandler extends ReflectionProxyHandler -{ - @Override - protected Element serialize(Object obj, QName qname) throws SoapFault - { - if (obj == null) - { - return XmlUtils.createElement(qname); - } - - if (obj.getClass() == byte[].class) - { - return new ByteArraySerializer().toXML(obj, qname); - } else - { - return super.serialize(obj, qname); - } - } - - @SuppressWarnings("unchecked") - @Override - protected Object deserialize(Element xml, Class theClass) throws SoapFault - { - if (theClass == byte[].class) - { - return new ByteArraySerializer().fromXML(xml); - } else - { - return super.deserialize(xml, theClass); - } - } -} \ No newline at end of file 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 deleted file mode 100644 index d59e7a39e5..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetMultipleResourcePropertiesTestCase.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * - * 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.util.Date; -import java.util.UUID; - -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; -import org.w3c.dom.Element; - -/** - * 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 GetMultipleResourcePropertiesTestCase extends BaseWsDmAdapterTestCase -{ - /** - * 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 testGetMultipleResourcePropertiesKO_WithUnknownResourceFault() throws Exception - { - try - { - _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); - _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); - - _resourceClient.getMultipleResourceProperties(new QName[]{}); - } catch(SoapFault expected) - { - assertEquals( - WsrfConstants.RESOURCE_UNKNOWN_QNAME.getLocalPart(), - expected.getDetail().getLocalName()); - } - } - - /** - * Test the WS-RP GetResourceProperties interface of the WS-DM adapter. - * - *
precondition : a ws resource exists and is registered. - *
postcondition : Properties are correctly returned according to WSRP interface and they (their value) - * are matching with corresponding MBean properties. - */ - public void testGetMultipleResourcePropertiesOK() throws Exception - { - MBeanAttributeInfo [] attributesMetadata = _mbeanInfo.getAttributes(); - QName[] names = new QName[attributesMetadata.length]; - - int index = 0; - for (MBeanAttributeInfo attributeMetadata : _mbeanInfo.getAttributes()) - { - QName qname = new QName(Names.NAMESPACE_URI,attributeMetadata.getName(),Names.PREFIX); - names[index++] = qname; - } - - Element[] properties =_resourceClient.getMultipleResourceProperties(names); - for (Element element : properties) - { - String name = element.getLocalName(); - Object value = _managementServer.getAttribute(_resourceObjectName, name); - if ("Name".equals(name)) - { - assertEquals( - value, - element.getTextContent()); - } else if ("Durable".equals(name)) - { - assertEquals( - value, - Boolean.valueOf(element.getTextContent())); - } else if ("ExpireTime".equals(name)) - { - assertEquals( - value, - new Date(Long.valueOf(element.getTextContent()))); - } else if ("MsgTotalEnqueues".equals(name)) - { - assertEquals( - value, - Long.valueOf(element.getTextContent())); - } else if ("ConsumerCount".equals(name)) - { - assertEquals( - value, - Integer.valueOf(element.getTextContent())); - }else if ("VhostRef".equals(name)) - { - assertEquals( - value, - UUID.fromString(element.getTextContent())); - } - } - } -} 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 deleted file mode 100644 index e18e928cf4..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertiesTestCase.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * - * 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/GetResourcePropertyDocumentTestCase.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertyDocumentTestCase.java deleted file mode 100644 index 862115f841..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/GetResourcePropertyDocumentTestCase.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * - * 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 javax.xml.namespace.QName; - -import org.apache.muse.util.xml.XmlUtils; -import org.apache.muse.ws.addressing.soap.SoapFault; -import org.apache.muse.ws.resource.WsrfConstants; -import org.apache.qpid.management.Names; -import org.w3c.dom.Element; - -/** - * 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 GetResourcePropertyDocumentTestCase extends BaseWsDmAdapterTestCase -{ - /** - * Tests the GetResourcePropertyDocument interface when the request contains - * an unknwon target resource. - * - *
precondition : the GetResourcePropertyDocument contains an unknwon resource. - *
postcondition : a SoapFault is thrown and the corresponding detail contains an - * UnknownResourceFault element. - */ - public void testGetResourcePropertyDocumentKO_WithUnknownResourceFault() throws Exception - { - try - { - _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); - _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); - _resourceClient.setTrace(true); - - _resourceClient.getResourcePropertyDocument(); - } catch(SoapFault expected) - { - assertEquals( - WsrfConstants.RESOURCE_UNKNOWN_QNAME.getLocalPart(), - expected.getDetail().getLocalName()); - } - } - - /** - * Tests the WS-RP PutResourcePropertyDocument interface of the WS-DM adapter. - * - *
precondition : a ws resource exists and is registered. - *
postcondition : A read / write property is correctly set according to WSRP interface. - */ - public void testGetAndPutResourcePropertyDocumentOK() throws Exception - { - String expectedMgmtPubIntervalValue = "4321"; - String propertyName = "MgmtPubInterval"; - - Element propertiesDocument = _resourceClient.getResourcePropertyDocument(); - Element [] properties = XmlUtils.getAllElements(propertiesDocument); - - for (Element element : properties) - { - if (propertyName.equals(element.getLocalName())) { - element.setTextContent(expectedMgmtPubIntervalValue); - } else { - propertiesDocument.removeChild(element); - } - } - - _resourceClient.putResourcePropertyDocument(propertiesDocument); - - Element newProperties = _resourceClient.getResourcePropertyDocument(); - - Element mgmtPubInterval = XmlUtils.getElement( - newProperties, new QName( - Names.NAMESPACE_URI, - propertyName, - Names.PREFIX)); - - assertEquals(expectedMgmtPubIntervalValue,mgmtPubInterval.getTextContent()); - } - - /** - * Tests the WS-RP PutResourcePropertyDocument interface of the WS-DM adapter. - * Specifically it tries to update the value of a read-only property. - * - *
precondition : a ws resource exists, it is registered and has at least one read-only property. - *
postcondition : An exception is thrown indicating the failure. - */ - public void testGetAndPutResourcePropertyDocumentKO_WithReadOnlyProperty() throws Exception - { - String propertyName = "Name"; - - Element propertiesDocument = _resourceClient.getResourcePropertyDocument(); - Element [] properties = XmlUtils.getAllElements(propertiesDocument); - - for (Element element : properties) - { - if (propertyName.equals(element.getLocalName())) { - element.setTextContent("ThisIsTheNewValueOfNameProperty"); - } else { - propertiesDocument.removeChild(element); - } - } - - try - { - _resourceClient.putResourcePropertyDocument(propertiesDocument); - fail("It's not possible to update the value of a read-only property."); - } catch (SoapFault expected) - { - - } - } -} 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 deleted file mode 100644 index 046f2226e6..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/MetadataExchangeInterfaceTestCase.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * - * 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 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; - -/** - * Test case for QMan metadata exchange interface. - * - * @author Andrea Gazzarini - */ -public class MetadataExchangeInterfaceTestCase extends BaseWsDmAdapterTestCase -{ - /** - * Test the MetadataExchange interface when the corresponding - * request doesn't contain a dialect. According to WS-MetadataExchange specs this should be - * intended as a "give-me-all-metadata" for that resource. - * - *
precondition : the GetMetadata request doesn't contain a dialect. - *
postcondition : the whole metadata document is returned with all metadata . - * It will contain both WSDL and RMD. - */ - @SuppressWarnings("unchecked") - public void testGetMetadataOK_WithoutDialect() throws Exception - { - Element[] result = (Element[]) _resourceClient.invoke( - getProxyHandler(), - new Object[]{""}); - - assertEquals(2,result.length); - - Element rmdMetadataSection = result[0]; - Element wsdlMetadataSection = result[1]; - - Element rmd = XmlUtils.getFirstElement(rmdMetadataSection); - Element wsdl = XmlUtils.getFirstElement(wsdlMetadataSection); - - assertEquals("MetadataDescriptor",rmd.getLocalName()); - assertEquals("definitions",wsdl.getLocalName()); - } - - /** - * Test the MetadataExchange interface when the WSDL dialect is specified on the request. - * - *
precondition : the GetMetadata request contains WSDL dialect. - *
postcondition : the resource WSDL metadata document is returned. - */ - @SuppressWarnings("unchecked") - public void testGetMetadataOK_WithWSDLDialect() throws Exception - { - Element[] result = (Element[]) _resourceClient.invoke( - getProxyHandler(), - new Object[]{WsxConstants.WSDL_DIALECT}); - - assertEquals(1,result.length); - - Element wsdlMetadataSection = result[0]; - - Element wsdl = XmlUtils.getFirstElement(wsdlMetadataSection); - - assertEquals("definitions",wsdl.getLocalName()); - } - - /** - * Test the MetadataExchange interface when the RMD dialect is specified on the request. - * - *
precondition : the GetMetadata request contains RMD dialect. - *
postcondition : the RMD metadata document is returned. - */ - @SuppressWarnings("unchecked") - public void testGetMetadataOK_WithRMDDialect() throws Exception - { - Element[] result = (Element[]) _resourceClient.invoke( - getProxyHandler(), - new Object[]{WsrmdConstants.NAMESPACE_URI}); - - assertEquals(1,result.length); - - Element rmdMetadataSection = result[0]; - - Element wsdl = XmlUtils.getFirstElement(rmdMetadataSection); - - assertEquals("MetadataDescriptor",wsdl.getLocalName()); - } - - /** - * 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_WithoutUnknownDialect() throws Exception - { - Element [] metadata = (Element[]) _resourceClient.invoke( - getProxyHandler(), - new Object[]{"HopeThisIsAnUnknownDialect"}); - - 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. - * - * @return a metadata proxy handler. - */ - private ProxyHandler getProxyHandler() - { - ProxyHandler getMetadataHandler = new ReflectionProxyHandler(); - getMetadataHandler.setAction("http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata"); - getMetadataHandler.setRequestName(new QName("http://schemas.xmlsoap.org/ws/2004/09/mex", "GetMetadata", "wsx")); - getMetadataHandler.setRequestParameterNames(new QName[]{new QName("http://schemas.xmlsoap.org/ws/2004/09/mex", "Dialect", "wsx")}); - getMetadataHandler.setResponseName(new QName("http://schemas.xmlsoap.org/ws/2004/09/mex", "Metadata", "wsx")); - getMetadataHandler.setReturnType(Element[].class); - return getMetadataHandler; - } -} \ No newline at end of file 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 deleted file mode 100644 index afc4a62085..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/OperationInvocationInterfaceTestCase.java +++ /dev/null @@ -1,580 +0,0 @@ -/* - * - * 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 java.lang.reflect.Method; -import java.net.URI; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import javax.xml.namespace.QName; - -import org.apache.muse.core.proxy.ProxyHandler; -import org.apache.muse.core.proxy.ReflectionProxyHandler; -import org.apache.muse.ws.addressing.soap.SoapFault; -import org.apache.qpid.management.Names; -import org.apache.qpid.management.wsdm.capabilities.Result; - -/** - * Test case for QMan operation invocation interface. - * - * @author Andrea Gazzarini - */ -public class OperationInvocationInterfaceTestCase extends BaseWsDmAdapterTestCase -{ - private Map _invocationHandlers = createInvocationHandlers(); - - /** - * Test operation invocation on WS-Resource. - * This method tests the exchange of a byte type array between requestor - * and service provider. - * - *
precondition : a WS-Resource exists and is registered and the requested - * operation is available on that. - *
postcondition : invocations are executed successfully, no exception is thrown - * and byte array are correctly returned. - */ - @SuppressWarnings("unchecked") - public void testOperationInvocationOK_withByteArray() throws Exception - { - byte [] expectedByteResult = {1,3,4,2,2,44,22,3,3,55,66}; - - Object result = _resourceClient.invoke( - _invocationHandlers.get("echoWithByteArray"), - new Object[]{expectedByteResult}); - - Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - - Map out = (Map) getOutputParameters.invoke(result); - - assertEquals("Output parameters must be 1.",1,out.size()); - assertArrayEquals(expectedByteResult, out.get(byte[].class.getName())); - } - - /** - * Test a simple operation invocation on a WS-Resource. - * This method tests a simple operation without any input and output parameters. - * - *
precondition : a ws resource exists and is registered and the requested operation - * is available on that. - *
postcondition : invocations are executed successfully an no exception is thrown. - */ - @SuppressWarnings("unchecked") - public void testSimpleOperationInvocationOK() throws Exception - { - Object result = _resourceClient.invoke( - _invocationHandlers.get("voidWithoutArguments"), - null); - - assertNotNull(result); - } - - /** - * Test a the invocation on a WS-Resource with a method that throws an exception.. - * - *
precondition : a ws resource exists and is registered and the requested - * operation is available on that. - *
postcondition : an exception is thrown by the requested method. - */ - @SuppressWarnings("unchecked") - public void testInvocationException_OK() throws Exception - { - try - { - _resourceClient.invoke( - _invocationHandlers.get("throwsException"), - null); - fail("The requested operation has thrown an exception so a Soap Fault is expected..."); - } catch(SoapFault expected) - { - } - } - - /** - * Test operation invocation on WS-Resource. - * This method tests the exchange of UUID type between requestor and service provider. - * - *
precondition : a WS-Resource exists and is registered and the requested operation - * is available on that. - *
postcondition : invocations are executed successfully, no exception is thrown - * and parameters are correctly returned. - */ - @SuppressWarnings("unchecked") - public void testOperationInvocationOK_withUUID() throws Exception - { - UUID expectedUuid = UUID.randomUUID(); - - Object result = _resourceClient.invoke( - _invocationHandlers.get("echoWithUUID"), - new Object[]{expectedUuid}); - - Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - - Map out = (Map) getOutputParameters.invoke(result); - - assertEquals("Output parameters must be 1.",1,out.size()); - assertEquals(expectedUuid, out.get("uuid")); - } - - /** - * Test operation invocation on WS-Resource. - * This method tests the exchange of Map type between requestor and service provider. - * For this test exchanged arrays contain : - * - *
precondition : a ws resource exists and is registered and the requested - * operation is available on that. - *
postcondition : invocations are executed successfully, no exception is - * thrown and parameters are correctly returned. - */ - @SuppressWarnings("unchecked") - public void testOperationInvocationOK_withMap() throws Exception - { - Map expectedMap = new HashMap(); - expectedMap.put("p1", new Long(1)); - expectedMap.put("p2", Boolean.TRUE); - expectedMap.put("p3", 1234d); - expectedMap.put("p4", 11.2f); - expectedMap.put("p5", 1272); - expectedMap.put("p6", (short)12); - expectedMap.put("p7", "aString"); - expectedMap.put("p8", "http://qpid.apache.org"); - expectedMap.put("p9", new Date(12383137128L)); - expectedMap.put("p10", new byte[]{1,2,2,3,3,4}); - - Object result = _resourceClient.invoke( - _invocationHandlers.get("echoWithMap"), - new Object[]{expectedMap}); - - Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - - Map out = (Map) ((Map) getOutputParameters.invoke(result)).get("map"); - - assertEquals("Output parameters must be 10.",10,out.size()); - assertEquals(expectedMap.get("p1"),out.get("p1")); - assertEquals(expectedMap.get("p2"),out.get("p2")); - assertEquals(expectedMap.get("p3"),out.get("p3")); - assertEquals(expectedMap.get("p4"),out.get("p4")); - assertEquals(expectedMap.get("p5"),out.get("p5")); - assertEquals(expectedMap.get("p6"),out.get("p6")); - assertEquals(expectedMap.get("p7"),out.get("p7")); - assertEquals(expectedMap.get("p8"),out.get("p8")); - assertEquals(expectedMap.get("p9"),out.get("p9")); - assertTrue( Arrays.equals((byte[])expectedMap.get("p10"),(byte[])out.get("p10"))); - } - - /** - * Test operation invocation on WS-Resource. - * This method tests the exchange of simple types between requestor and - * service provider. - * - * With simple types we mean : - * - *
    - *
  • java.lang.Long / long (xsd:long) - *
  • java.lang.Integer / int (xsd:int / xsd:integer) - *
  • java.lang.Double/ double (xsd:double) - *
  • java.lang.Float / float (xsd:float) - *
  • java.lang.Short / short (xsd:short) - *
  • java.lang.Boolean / boolean (xsd:boolean) - *
  • java.lang.String (xsd:string) - *
  • java.net.URI (xsd:anyURI) - *
  • java.util.Date(xsd:dateTime) - *
- * - *
precondition : a ws resource exists and is registered and the requested operation is - * available on that. - *
postcondition : invocations are executed successfully, no exception is thrown and - * parameters are correctly returned. - */ - @SuppressWarnings("unchecked") - public void testOperationInvocationOK_withSimpleTypes() throws Exception - { - Long expectedLongResult = new Long(1373); - Boolean expectedBooleanResult = Boolean.TRUE; - Double expectedDoubleResult = new Double(12763.44); - Float expectedFloatResult = new Float(2727.233f); - Integer expectedIntegerResult = new Integer(28292); - Short expectedShortResult = new Short((short)227); - String expectedStringResult = "expectedStringResult"; - URI expectedUriResult = URI.create("http://qpid.apache.org/"); - Date expectedDateResult = new Date(); - - Object result = _resourceClient.invoke( - _invocationHandlers.get("echoWithSimpleTypes"), - new Object[]{ - expectedLongResult, - expectedBooleanResult, - expectedDoubleResult, - expectedFloatResult, - expectedIntegerResult, - expectedShortResult, - expectedStringResult, - expectedUriResult, - expectedDateResult}); - - Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - Map out = (Map) getOutputParameters.invoke(result); - - assertEquals("Output parameters must be 9.",9,out.size()); - assertTrue("Long output parameter not found on result object.",out.containsValue(expectedLongResult)); - assertTrue("Boolean output parameter not found on result object.",out.containsValue(expectedBooleanResult)); - assertTrue("Double output parameter not found on result object.",out.containsValue(expectedDoubleResult)); - assertTrue("Float output parameter not found on result object.",out.containsValue(expectedFloatResult)); - assertTrue("Integer output parameter not found on result object.",out.containsValue(expectedIntegerResult)); - assertTrue("Short output parameter not found on result object.",out.containsValue(expectedShortResult)); - assertTrue("String output parameter not found on result object.",out.containsValue(expectedStringResult)); - assertTrue("URI output parameter not found on result object.",out.containsValue(expectedUriResult)); - assertTrue("Date output parameter not found on result object.",out.containsValue(expectedDateResult)); - } - - /** - * Test operation invocation on WS-Resource. - * This method tests the exchange of arrays between requestor and service provider. - * For this test exchanged arrays contain : - * - *
    - *
  • java.lang.Long (xsd:long) - *
  • java.lang.Integer (xsd:int / xsd:integer) - *
  • java.lang.Double (xsd:double) - *
  • java.lang.Float (xsd:float) - *
  • java.lang.Short (xsd:short) - *
  • java.lang.Boolean (xsd:boolean) - *
  • java.lang.String (xsd:string) - *
  • java.net.URI (xsd:anyURI) - *
  • java.util.Date(xsd:dateTime) - *
- * - *
precondition : a ws resource exists and is registered and the requested operation is available on that. - *
postcondition : invocations are executed successfully, no exception is thrown and parameters are correctly returned. - */ - @SuppressWarnings("unchecked") - public void testOperationInvocationOK_withWrapperArrays() throws Exception - { - Long [] expectedLongResult = {new Long(2),new Long(1),new Long(3),new Long(4)}; - Boolean [] expectedBooleanResult = { Boolean.TRUE,Boolean.FALSE,Boolean.FALSE}; - Double [] expectedDoubleResult = {12763.44d,2832.33d,2292.33d,22293.22d}; - Float [] expectedFloatResult = {2727.233f,1f,2f,4f,5.4f,33.2f}; - Integer [] expectedIntegerResult = {1,2,3,4,55,66,77,88,99}; - Short [] expectedShortResult = {(short)227,(short)23,(short)9}; - String [] expectedStringResult = {"s1","s2","s333","s4"}; - URI [] expectedUriResult = { - URI.create("http://qpid.apache.org/"), - URI.create("http://www.apache.org"), - URI.create("http://projects.apache.org")}; - - Date [] expectedDateResult = { - new Date(), - new Date(38211897), - new Date(903820382)}; - - Object result = _resourceClient.invoke( - _invocationHandlers.get("echoWithArrays"), - new Object[]{ - expectedLongResult, - expectedBooleanResult, - expectedDoubleResult, - expectedFloatResult, - expectedIntegerResult, - expectedShortResult, - expectedStringResult, - expectedUriResult, - expectedDateResult}); - - Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - Map out = (Map) getOutputParameters.invoke(result); - - assertEquals("Output parameters must be 9.",9,out.size()); - assertTrue("Long array doesn't match.",Arrays.equals(expectedLongResult, (Long[])out.get(Long.class.getName()))); - assertTrue("Boolean array doesn't match.",Arrays.equals(expectedBooleanResult, (Boolean[])out.get(Boolean.class.getName()))); - assertTrue("Double array doesn't match.",Arrays.equals(expectedDoubleResult, (Double[])out.get(Double.class.getName()))); - assertTrue("Float array doesn't match.",Arrays.equals(expectedFloatResult, (Float[])out.get(Float.class.getName()))); - assertTrue("Integer array doesn't match.", Arrays.equals(expectedIntegerResult, (Integer[])out.get(Integer.class.getName()))); - assertTrue("Short array doesn't match.",Arrays.equals(expectedShortResult, (Short[])out.get(Short.class.getName()))); - assertTrue("String array doesn't match.",Arrays.equals(expectedStringResult, (String[])out.get(String.class.getName()))); - assertTrue("URI array doesn't match.",Arrays.equals(expectedUriResult, (URI[])out.get(URI.class.getName()))); - assertTrue("Date array doesn't match.",Arrays.equals(expectedDateResult, (Date[])out.get(Date.class.getName()))); - } - - /** - * Test operation invocation on WS-Resource. - * This method tests the exchange of primitive type arrays between requestor and service provider. - * NOte that even the sent array contain primtiive type QMan deals only with objects so in the result - * object you will find the corresponding wrapper types. - * - * For this test exchanged arrays contain : - * - *
    - *
  • java.lang.Long / long (xsd:long) - *
  • java.lang.Integer / int (xsd:int / xsd:integer) - *
  • java.lang.Double/ double (xsd:double) - *
  • java.lang.Float / float (xsd:float) - *
  • java.lang.Short / short (xsd:short) - *
  • java.lang.Boolean / boolean (xsd:boolean) - *
- * - *
precondition : a ws resource exists and is registered and the requested operation is available on that. - *
postcondition : invocations are executed successfully, no exception is thrown and parameters are correctly returned. - */ - @SuppressWarnings("unchecked") - public void testOperationInvocationOK_withPrimitiveArrays() throws Exception - { - long [] expectedLongResult = {1L,2L,3L,4L}; - boolean [] expectedBooleanResult = { true,false,false}; - double [] expectedDoubleResult = {12763.44d,2832.33d,2292.33d,22293.22d}; - float [] expectedFloatResult = {2727.233f,1f,2f,4f,5.4f,33.2f}; - int [] expectedIntegerResult = {1,2,3,4,55,66,77,88,99}; - short [] expectedShortResult = {(short)227,(short)23,(short)9}; - - Object result = _resourceClient.invoke( - _invocationHandlers.get("echoWithSimpleTypeArrays"), - new Object[]{ - expectedLongResult, - expectedBooleanResult, - expectedDoubleResult, - expectedFloatResult, - expectedIntegerResult, - expectedShortResult}); - - Method getOutputParameters = result.getClass().getMethod("getOutputParameters"); - Map out = (Map) getOutputParameters.invoke(result); - - assertEquals("Output parameters must be 6.",6,out.size()); - assertArrayEquals(expectedLongResult, out.get(long.class.getName())); - assertArrayEquals(expectedBooleanResult, out.get(boolean.class.getName())); - assertArrayEquals(expectedDoubleResult, out.get(double.class.getName())); - assertArrayEquals(expectedFloatResult, out.get(float.class.getName())); - assertArrayEquals(expectedIntegerResult, out.get(int.class.getName())); - assertArrayEquals(expectedShortResult, out.get(short.class.getName())); - } - - /** - * Internal method used for array comparison using reflection. - * - * @param expectedArray the expected array. - * @param resultArray the array that must match the expected one. - */ - private void assertArrayEquals(Object expectedArray, Object resultArray) - { - int expectedArrayLength = Array.getLength(expectedArray); - int resultArrayLength = Array.getLength(resultArray); - - assertEquals(expectedArrayLength,resultArrayLength); - - for (int index = 0; index < expectedArrayLength; index++) - { - Object expected = Array.get(expectedArray, index); - Object result = Array.get(resultArray, index); - - assertEquals(expected,result); - } - } - - private Map createInvocationHandlers() - { - Map handlers = new HashMap(); - - ProxyHandler handler = new ReflectionProxyHandler(); - handler.setAction(Names.NAMESPACE_URI+"/"+"voidWithoutArguments"); - handler.setRequestName( - new QName( - Names.NAMESPACE_URI, - "voidWithoutArgumentsRequest", - Names.PREFIX)); - handler.setRequestParameterNames(new QName[]{}); - handler.setResponseName( - new QName( - Names.NAMESPACE_URI, - "voidWithoutArgumentsResponse", - Names.PREFIX)); - handler.setReturnType(Result.class); - - ProxyHandler exceptionHandler = new ReflectionProxyHandler(); - exceptionHandler.setAction(Names.NAMESPACE_URI+"/"+"throwsException"); - exceptionHandler.setRequestName( - new QName( - Names.NAMESPACE_URI, - "throwsExceptionRequest", - Names.PREFIX)); - - exceptionHandler.setRequestParameterNames(new QName[]{}); - exceptionHandler.setResponseName( - new QName( - Names.NAMESPACE_URI, - "throwsExceptionResponse", - Names.PREFIX)); - - exceptionHandler.setReturnType(Result.class); - - ProxyHandler echoWithWrapperTypesHandler = new ReflectionProxyHandler(); - echoWithWrapperTypesHandler.setAction(Names.NAMESPACE_URI+"/"+"echoWithSimpleTypes"); - echoWithWrapperTypesHandler.setRequestName( - new QName( - Names.NAMESPACE_URI, - "echoWithSimpleTypesRequest", - Names.PREFIX)); - - echoWithWrapperTypesHandler.setRequestParameterNames(new QName[]{ - new QName(Names.NAMESPACE_URI,"p1",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p2",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p3",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p4",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p5",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p6",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p7",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p8",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p9",Names.PREFIX), - }); - - echoWithWrapperTypesHandler.setResponseName( - new QName( - Names.NAMESPACE_URI, - "echoWithSimpleTypesResponse", - Names.PREFIX)); - - echoWithWrapperTypesHandler.setReturnType(Result.class); - - ProxyHandler echoWithArrayOfWrapperTypes = new ReflectionProxyHandler(); - echoWithArrayOfWrapperTypes.setAction(Names.NAMESPACE_URI+"/"+"echoWithArrays"); - echoWithArrayOfWrapperTypes.setRequestName( - new QName( - Names.NAMESPACE_URI, - "echoWithArraysRequest", - Names.PREFIX)); - - echoWithArrayOfWrapperTypes.setRequestParameterNames(new QName[]{ - new QName(Names.NAMESPACE_URI,"p1",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p2",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p3",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p4",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p5",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p6",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p7",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p8",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p9",Names.PREFIX), - }); - - echoWithArrayOfWrapperTypes.setResponseName( - new QName( - Names.NAMESPACE_URI, - "echoWithArraysResponse", - Names.PREFIX)); - - echoWithArrayOfWrapperTypes.setReturnType(Result.class); - - ProxyHandler echoWithArrayOfPrimitiveTypes = new ReflectionProxyHandler(); - echoWithArrayOfPrimitiveTypes.setAction(Names.NAMESPACE_URI+"/"+"echoWithSimpleTypeArrays"); - echoWithArrayOfPrimitiveTypes.setRequestName( - new QName( - Names.NAMESPACE_URI, - "echoWithSimpleTypeArraysRequest", - Names.PREFIX)); - - echoWithArrayOfPrimitiveTypes.setRequestParameterNames(new QName[]{ - new QName(Names.NAMESPACE_URI,"p1",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p2",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p3",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p4",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p5",Names.PREFIX), - new QName(Names.NAMESPACE_URI,"p6",Names.PREFIX)}); - - echoWithArrayOfPrimitiveTypes.setResponseName( - new QName( - Names.NAMESPACE_URI, - "echoWithSimpleTypeArraysResponse", - Names.PREFIX)); - - echoWithArrayOfPrimitiveTypes.setReturnType(Result.class); - - ProxyHandler echoWithByteArray = new EnhancedReflectionProxyHandler(); - echoWithByteArray.setAction(Names.NAMESPACE_URI+"/"+"echoWithByteArray"); - echoWithByteArray.setRequestName( - new QName( - Names.NAMESPACE_URI, - "echoWithByteArrayRequest", - Names.PREFIX)); - - echoWithByteArray.setRequestParameterNames( - new QName[]{ - new QName(Names.NAMESPACE_URI,"p1",Names.PREFIX)}); - - echoWithByteArray.setResponseName( - new QName( - Names.NAMESPACE_URI, - "echoWithByteArrayResponse", - Names.PREFIX)); - - echoWithByteArray.setReturnType(Result.class); - - ProxyHandler echoWithUUID = new EnhancedReflectionProxyHandler(); - echoWithUUID.setAction(Names.NAMESPACE_URI+"/"+"echoWithUUID"); - echoWithUUID.setRequestName( - new QName( - Names.NAMESPACE_URI, - "echoWithUUIDRequest", - Names.PREFIX)); - - echoWithUUID.setRequestParameterNames( - new QName[]{ - new QName(Names.NAMESPACE_URI,"p1",Names.PREFIX)}); - - echoWithUUID.setResponseName( - new QName( - Names.NAMESPACE_URI, - "echoWithUUIDResponse", - Names.PREFIX)); - - echoWithUUID.setReturnType(Result.class); - - ProxyHandler echoWithMap = new EnhancedReflectionProxyHandler(); - echoWithMap.setAction(Names.NAMESPACE_URI+"/"+"echoWithMap"); - echoWithMap.setRequestName( - new QName( - Names.NAMESPACE_URI, - "echoWithMapRequest", - Names.PREFIX)); - - echoWithMap.setRequestParameterNames( - new QName[]{ - new QName(Names.NAMESPACE_URI,"p1",Names.PREFIX)}); - - echoWithMap.setResponseName( - new QName( - Names.NAMESPACE_URI, - "echoWithMapResponse", - Names.PREFIX)); - - echoWithMap.setReturnType(Result.class); - - handlers.put("voidWithoutArguments",handler); - handlers.put("echoWithSimpleTypes",echoWithWrapperTypesHandler); - handlers.put("echoWithArrays",echoWithArrayOfWrapperTypes); - handlers.put("echoWithSimpleTypeArrays", echoWithArrayOfPrimitiveTypes); - handlers.put("echoWithByteArray", echoWithByteArray); - handlers.put("echoWithUUID", echoWithUUID); - handlers.put("echoWithMap", echoWithMap); - handlers.put("throwsException",exceptionHandler); - return handlers; - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java deleted file mode 100644 index 6574c278ff..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * - * 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.io.File; - -import org.apache.qpid.management.Names; -import org.mortbay.component.LifeCycle.Listener; -import org.mortbay.jetty.Connector; -import org.mortbay.jetty.Server; -import org.mortbay.jetty.nio.SelectChannelConnector; -import org.mortbay.jetty.webapp.WebAppContext; -import org.mortbay.start.Monitor; - -/** - * Web Server startup thread. - * It is used on adapter test case in order to start the embedded - * web server as a separated thread. - * - * @author Andrea Gazzarini - */ -class ServerThread extends Thread -{ - private final Listener _lifecycleListener; - private Server _server; - - private SelectChannelConnector _connector; - - /** - * Builds a new server thread with the given lifecycle listener. - * - * @param listener the lifecycle listener. - */ - ServerThread(Listener listener) - { - this._lifecycleListener = listener; - } - - /** - * Starts the server. - */ - @Override - public void run() - { - try - { - Monitor.monitor(); - _server = new Server(); - _server.setStopAtShutdown(true); - - _connector=new SelectChannelConnector(); - _connector.setPort(Integer.parseInt(System.getProperty(Names.ADAPTER_PORT_PROPERTY_NAME))); - _connector.setHost(System.getProperty(Names.ADAPTER_HOST_PROPERTY_NAME)); - - - _server.setConnectors(new Connector[]{_connector}); - - WebAppContext webapp = new WebAppContext(); - webapp.setContextPath("/qman"); - - // Additional web application descriptor containing test components. - webapp.setDefaultsDescriptor("/org/apache/qpid/management/wsdm/web.xml"); - - String webApplicationPath = System.getProperty("qman.war"); - File rootFolderPath = (webApplicationPath != null) ? new File(webApplicationPath) : new File("."); - - webapp.setWar(rootFolderPath.toURI().toURL().toExternalForm()); - webapp.addLifeCycleListener(_lifecycleListener); - _server.setHandler(webapp); - _server.start(); - System.setProperty(Names.ADAPTER_PORT_PROPERTY_NAME,String.valueOf( _connector.getLocalPort())); - _server.join(); - - } catch(Exception exception) - { - throw new RuntimeException(exception); - } - } - - /** - * Shutdown the server. - * - * @throws Exception when a problem is encountered during shutdown. - */ - void shutdown() throws Exception - { - _server.stop(); - } - - /** - * Returns the port number where the server is running. - * - * @return the port number where the server is running. - */ - int getPort() - { - return _connector.getLocalPort(); - } - -} 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 deleted file mode 100644 index 87f8905e01..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/SetResourcePropertiesTestCase.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * - * 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 java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -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 Set Resource Properties interfaces. - * - * @author Andrea Gazzarini - */ -public class SetResourcePropertiesTestCase extends BaseWsDmAdapterTestCase -{ - /** - * Test the WS-RP SetResourceProperty interface of the WS-DM adapter. - * - *
precondition : a WS-Resource exists and is registered. - *
postcondition : property values are correctly updated on the target WS-Resource.. - */ - public void testSetResourcePropertiesOK() throws Exception - { - Map sampleMap = new HashMap(); - sampleMap.put("Key1", "BLABALABLABALBAL"); - sampleMap.put("Key2", 182838484l); - sampleMap.put("Key3", -928376362); - sampleMap.put("Key4", 23762736276.33D); - sampleMap.put("Key4", 2327363.2F); - - Map sampleValues = new HashMap(); - sampleValues.put(String.class.getName(),"SAMPLE_STRING"); - sampleValues.put(UUID.class.getName(),UUID.randomUUID()); - sampleValues.put(Boolean.class.getName(),Boolean.FALSE); - sampleValues.put(Map.class.getName(),sampleMap); - sampleValues.put(Long.class.getName(),283781273L); - sampleValues.put(Integer.class.getName(),12727); - sampleValues.put(Short.class.getName(),new Short((short)22)); - sampleValues.put(Date.class.getName(),new Date()); - - MBeanAttributeInfo [] attributesMetadata = _mbeanInfo.getAttributes(); - boolean atLeastThereIsOneWritableProperty = false; - - for (MBeanAttributeInfo attributeMetadata : attributesMetadata) - { - String name = attributeMetadata.getName(); - - if (attributeMetadata.isWritable()) - { - atLeastThereIsOneWritableProperty = true; - Object sampleValue = sampleValues.get(attributeMetadata.getType()); - Object []values = new Object[]{sampleValue}; - - Object result = _managementServer.getAttribute(_resourceObjectName, name); - if (result == null) - { - _resourceClient.insertResourceProperty( - new QName( - Names.NAMESPACE_URI, - name, - Names.PREFIX), - values); - } else - { - _resourceClient.updateResourceProperty( - new QName( - Names.NAMESPACE_URI, - name, - Names.PREFIX), - values); - } - - 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, - sampleValue, - propertyValue); - } else { - assertNull( - String.format( - "\"%s\" property value shouldn't be null. Its value is %s", - name, - _managementServer.getAttribute(_resourceObjectName,name)), - sampleValue); - } - } - } - assertTrue( - "It's not possibile to run successfully this test case if " + - "the target WS-Resource has no at least one writable property", - atLeastThereIsOneWritableProperty); - } - - /** - * Test the WS-RP SetResourceProperty interface of the WS-DM adapter when the - * target property is null. - * According to WS-RP specs this operation is not allowed because in this case a SetResourceProperty with an "Insert" - * message should be sent in order to initialize the property. - * - *
precondition : a ws resource exists and is registered. The value of the target property is null. - *
postcondition : a Soap fault is received indicating the failuire. - */ - public void testSetResourcePropertiesKO() throws Exception - { - Object typePropertyValue = _managementServer.getAttribute(_resourceObjectName, "Type"); - assertNull(typePropertyValue); - - try - { - _resourceClient.updateResourceProperty( - new QName( - Names.NAMESPACE_URI, - "Type", - Names.PREFIX), - new Object[]{"sampleValue"}); - fail( - "If the property is null on the target ws resource, according " + - "to WS-RP specs, an update of its value is not possible."); - } catch(SoapFault expected) - { - - } - } - - /** - * Tests the SetResourceProperties (update) interface when the request contains - * an unknwon target resource. - * - *
precondition : the SetResourceProperties contains an unknwon resource. - *
postcondition : a SoapFault is thrown and the corresponding detail contains an - * UnknownResourceFault element. - */ - public void testUpdateResourcePropertiesKO_WithUnknownResourceFault() throws Exception - { - try - { - _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); - _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); - - _resourceClient.updateResourceProperty( - new QName( - Names.NAMESPACE_URI, - "Type", - Names.PREFIX), - new Object[]{"sampleValue"}); - } catch(SoapFault expected) - { - assertEquals( - WsrfConstants.RESOURCE_UNKNOWN_QNAME.getLocalPart(), - expected.getDetail().getLocalName()); - } - } - - /** - * Tests the SetResourceProperties (insert) interface when the request contains - * an unknwon target resource. - * - *
precondition : the SetResourceProperties contains an unknwon resource. - *
postcondition : a SoapFault is thrown and the corresponding detail contains an - * UnknownResourceFault element. - */ - public void testInsertResourcePropertiesKO_WithUnknownResourceFault() throws Exception - { - try - { - _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME); - _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal"); - - _resourceClient.insertResourceProperty( - new QName( - Names.NAMESPACE_URI, - "Type", - Names.PREFIX), - new Object[]{"sampleValue"}); - } 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/WebApplicationLifeCycleListener.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WebApplicationLifeCycleListener.java deleted file mode 100644 index 91c646467e..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WebApplicationLifeCycleListener.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * - * 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 org.mortbay.component.LifeCycle; -import org.mortbay.component.LifeCycle.Listener; - -/** - * Adapter class used to provide an empty (base) implementation of - * Lifecycle listener interface. - * - * Adapter test case needs to be informed about the lifecycle of the - * deployed QMan application. Only when its deployment is completed the test - * case can run successfully. - * - * So, following the same logic of Swng event model, this is an adapter that provides - * empty implementation of the listener interface (see for example MouseAdapter - * for mouse events listener) - * - * @author Andrea Gazzarini - */ -public class WebApplicationLifeCycleListener implements Listener -{ - public void lifeCycleFailure(LifeCycle event, Throwable cause) - { - } - - public void lifeCycleStarted(LifeCycle event) - { - } - - public void lifeCycleStarting(LifeCycle event) - { - } - - public void lifeCycleStopped(LifeCycle event) - { - } - - public void lifeCycleStopping(LifeCycle event) - { - } -} \ No newline at end of file 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 deleted file mode 100644 index f12288c91d..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * - * 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.io.IOException; -import java.net.ServerSocket; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.apache.muse.core.serializer.SerializerRegistry; -import org.apache.qpid.management.Names; -import org.apache.qpid.management.Protocol; -import org.apache.qpid.management.wsdm.capabilities.Result; -import org.apache.qpid.management.wsdm.muse.serializer.DateSerializer; -import org.apache.qpid.management.wsdm.muse.serializer.InvocationResultSerializer; -import org.apache.qpid.management.wsdm.muse.serializer.MapSerializer; -import org.apache.qpid.management.wsdm.muse.serializer.ObjectSerializer; -import org.apache.qpid.management.wsdm.muse.serializer.UUIDSerializer; -import org.mortbay.component.LifeCycle; -import org.mortbay.component.LifeCycle.Listener; - -import junit.extensions.TestSetup; -import junit.framework.Test; -import junit.framework.TestSuite; - -public class WsDmAdapterTest -{ - - /** - * Test case wide set up. - * Provides Server startup & shutdown global procedure. - * - * @author Andrea Gazzarini - */ - private static class WsDmAdapterTestSetup extends TestSetup - { - private Object _serverMonitor = new Object(); - - Listener listener = new WebApplicationLifeCycleListener() - { - public void lifeCycleStarted(LifeCycle event) - { - synchronized (_serverMonitor) - { - _serverMonitor.notify(); - } - } - }; - - private ServerThread _server; - - /** - * Builds a new test setup with for the given test. - * - * @param test the decorated test. - */ - public WsDmAdapterTestSetup(Test test) - { - super(test); - } - - /** - * Starts up Web server. - * - * @throws Exception when the server startup fails. - */ - @Override - protected void setUp() throws Exception - { - SerializerRegistry.getInstance().registerSerializer(Object.class, new ObjectSerializer()); - SerializerRegistry.getInstance().registerSerializer(Date.class, new DateSerializer()); - SerializerRegistry.getInstance().registerSerializer(Map.class, new MapSerializer()); - SerializerRegistry.getInstance().registerSerializer(HashMap.class, new MapSerializer()); - SerializerRegistry.getInstance().registerSerializer(UUID.class, new UUIDSerializer()); - SerializerRegistry.getInstance().registerSerializer(Result.class, new InvocationResultSerializer()); - - System.setProperty( - Names.ADAPTER_HOST_PROPERTY_NAME, - Protocol.DEFAULT_QMAN_HOSTNAME); - - System.setProperty( - Names.ADAPTER_PORT_PROPERTY_NAME, - String.valueOf(getFreePort())); - - _server = new ServerThread(listener); - _server.start(); - - synchronized(_serverMonitor) { - _serverMonitor.wait(); - Thread.sleep(2000); - } - } - - @Override - protected void tearDown() throws Exception - { - _server.shutdown(); - } - }; - - /** - * Gets the test suite composition. - * - * @return the test suite composition. - */ - public static Test suite() - { - TestSuite suite = new TestSuite("Test suite for QMan WS-DM."); - /*suite.addTestSuite(MetadataExchangeInterfaceTestCase.class); - suite.addTestSuite(OperationInvocationInterfaceTestCase.class); - suite.addTestSuite(GetResourcePropertyDocumentTestCase.class); - suite.addTestSuite(SetResourcePropertiesTestCase.class); - suite.addTestSuite(GetMultipleResourcePropertiesTestCase.class); - suite.addTestSuite(GetResourcePropertiesTestCase.class); */ - return new WsDmAdapterTestSetup(suite); - } - - /** - * Finds a free port that will be used to run the embedded - * web server. - * - * @return a free port that will be used to run the - * embedded web server. - */ - private static int getFreePort() throws IOException { - ServerSocket server = null; - try - { - server = new ServerSocket(0); - return server.getLocalPort(); - } finally - { - server.close(); - } - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java deleted file mode 100644 index 68c9930ecd..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java +++ /dev/null @@ -1,335 +0,0 @@ -/* - * - * 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.capabilities; - -import java.lang.management.ManagementFactory; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import javassist.CtClass; -import javassist.CtMethod; - -import javax.management.MBeanAttributeInfo; -import javax.management.MBeanInfo; -import javax.management.MBeanOperationInfo; -import javax.management.MBeanParameterInfo; -import javax.management.MBeanServer; -import javax.management.ObjectName; -import javax.xml.namespace.QName; - -import junit.framework.TestCase; - -import org.apache.qpid.management.domain.handler.impl.QpidDomainObject; -import org.apache.qpid.management.wsdm.common.EntityInstanceNotFoundFault; -import org.apache.qpid.management.wsdm.common.MethodInvocationFault; -import org.apache.qpid.management.wsdm.common.NoSuchAttributeFault; -import org.apache.qpid.management.wsdm.common.QManFault; - -/** - * Test case for MBean capability builder. - * - * @author Andrea Gazzarini - */ -public class MBeanCapabilityBuilderTest extends TestCase -{ - - /** - * Management interface for an mbean that has no properties and no - * methods. - * - * @author Andrea Gazzarini - */ - public interface NoPropertiesNoMethodsMBean - { - } - - /** - * Implementation of the managenent interface described above. - * - * @author Andrea Gazzarini - */ - public class NoPropertiesNoMethods implements NoPropertiesNoMethodsMBean - { - } - - private MBeanCapabilityBuilder _builder; - private ObjectName _objectName; - - /** - * Set up fixture for this test case. - */ - protected void setUp() throws Exception - { - _builder = new MBeanCapabilityBuilder(); - _objectName = new ObjectName("Test:Name=aName,class=DomainObject"); - } - - /** - * Tests that state change that occcurs on the begin() method when the requested - * class has not been defined. - */ - public void testBegin_withClassNotYetDefined() throws Exception - { - _builder.begin(_objectName); - assertEquals(_builder._state,_builder._classNotAvailable); - } - - /** - * Tests that state change that occcurs on the begin() method when the requested - * class has not been defined. - */ - public void testBegin_withClassAlreadyDefined() throws Exception - { - _objectName = new ObjectName("Test:Name=aString,class=MBeanCapabilityBuilder"); - _builder.begin(_objectName); - - assertTrue(_builder._state instanceof DummyCapabilityBuilder); - assertSame(_builder._endAttributeHandler, _builder._noPropertyHasBeenDefined); - } - - /** - * Tests the generateGetter method(). - */ - public void testGenerateGetter() - { - String name ="MyProperty"; - String type = Long.class.getName(); - String expected = - "public "+ - type+ - " get"+ - name+ - "() throws NoSuchAttributeFault,EntityInstanceNotFoundFault,QManFault { return ("+ - type+ - ") getAttribute(\""+ - name+ - "\"); }"; - - String result = _builder.generateGetter(type, name,name); - assertEquals(expected,result); - } - - /** - * Tests the generateGetter method(). - */ - public void testGenerateSetter() - { - String name ="MyProperty"; - String type = Long.class.getName(); - String expected = - "public void setMyProperty("+ - type+ - " newValue) throws NoSuchAttributeFault,EntityInstanceNotFoundFault,QManFault { setAttribute(\""+ - name+ - "\", newValue); }"; - - String result = _builder.generateSetter(type, name,name); - assertEquals(expected,result); - } - - /** - * Tests buils of a capability that has no properties and methods - * - *
precondition : the incoming entity definition is empty (no properties and no methods) - *
postcondition : the capability class is built successfully and has no props and methods. - * The getPropertyNames returns an empty QName array. - */ - public void testOK_WithNoPropertiesNoMethods() throws Exception { - - ObjectName name = new ObjectName("Test:Name=NoPropertiesNoMethods"); - - MBeanServer server = ManagementFactory.getPlatformMBeanServer(); - server.registerMBean(new NoPropertiesNoMethods(), name); - - _builder.begin(name); - _builder.endAttributes(); - _builder.endOperations(); - Class capabilityClass = _builder.getCapabilityClass(); - - Field[] fields = capabilityClass.getDeclaredFields(); - Method [] methods = capabilityClass.getDeclaredMethods(); - - assertEquals(Arrays.toString(fields),0,fields.length); - assertEquals(Arrays.toString(methods),1,methods.length); - - Method getPropertyNames = methods[0]; - assertEquals("getPropertyNames",getPropertyNames.getName()); - - - MBeanCapability capability = capabilityClass.newInstance(); - QName [] properties = (QName[]) getPropertyNames.invoke(capability); - assertEquals(0,properties.length); - } - - /** - * Tests the whole execution of the builder. - */ - @SuppressWarnings("unchecked") - public void testBuildOK() throws Exception - { - MBeanServer server = ManagementFactory.getPlatformMBeanServer(); - QpidDomainObject mbean = new QpidDomainObject(); - server.registerMBean(mbean, _objectName); - - _builder.begin(_objectName); - - CtClass definition = _builder._capabilityClassDefinition; - assertEquals( - MBeanCapability.class.getName(), - definition.getSuperclass().getName()); - - MBeanInfo metadata = server.getMBeanInfo(_objectName); - - for (MBeanAttributeInfo attribute : metadata.getAttributes()) - { - _builder.onAttribute(attribute); - checkAttribute(attribute, definition); - - assertSame( - _builder._endAttributeHandler, - _builder._atLeastThereIsOneProperty); - } - - for (MBeanOperationInfo operation : metadata.getOperations()) - { - _builder.onOperation(operation); - checkOperation(operation,definition); - } - - _builder.endAttributes(); - _builder.endOperations(); - - assertNotNull(_builder.getCapabilityClass()); - } - - /** - * Checks an operation / method after that it has been declared on - * capability definition. - * - * @param operation the (JMX) operation metadata. - * @param definition the capability class definition. - * @throws Exception when something goes wrong during introspection. - */ - private void checkOperation(MBeanOperationInfo operation, CtClass definition) throws Exception - { - CtMethod method = definition.getDeclaredMethod(operation.getName()); - assertNotNull(method); - - checkExceptionTypes( - method.getExceptionTypes(), - new String[]{ - QManFault.class.getName(), - EntityInstanceNotFoundFault.class.getName(), - MethodInvocationFault.class.getName()}); - - assertEquals(Result.class.getName(),method.getReturnType().getName()); - - CtClass [] parameterTypes = method.getParameterTypes(); - MBeanParameterInfo [] parameterMetadata = operation.getSignature(); - - assertEquals(parameterTypes.length, parameterMetadata.length); - for (int i = 0; i < parameterMetadata.length; i++) - { - assertEquals( - parameterTypes[i].getName(), - Class.forName(parameterMetadata[i].getType()).getCanonicalName()); - } - } - - /** - * Checks the exception types associated with a method. - * - * @param exceptionTypes the exception types actually thrown. - * @param expectedExceptionNames the expected exception types (as strings). - */ - private void checkExceptionTypes(CtClass [] exceptionTypes, String [] expectedExceptionNames) - { - List exceptionNames = new ArrayList(exceptionTypes.length); - for (CtClass exception : exceptionTypes) - { - exceptionNames.add(exception.getName()); - } - - for (String expectedExceptionName : expectedExceptionNames) - { - exceptionNames.remove(expectedExceptionName); - } - - assertTrue(exceptionNames.isEmpty()); - } - - /** - * Checks an attribute after that it has been declared on capability definition. - * - * @param attribute the (JMX) attribute metadata. - * @param definition the capability class definition. - * @throws Exception when something goes wrong during introspection. - */ - private void checkAttribute(MBeanAttributeInfo attribute, CtClass definition) throws Exception - { - String name = _builder.getNameForAccessors(attribute.getName()); - - String newPropertyDeclaration = - new StringBuilder("new QName(Names.NAMESPACE_URI, \"") - .append(attribute.getName()) - .append("\", Names.PREFIX),") - .toString(); - assertTrue(_builder._properties.indexOf(newPropertyDeclaration) != -1); - - if (attribute.isReadable()) - { - CtMethod getter = definition.getDeclaredMethod("get"+name); - assertNotNull(getter); - - checkExceptionTypes( - getter.getExceptionTypes(), - new String[]{ - QManFault.class.getName(), - NoSuchAttributeFault.class.getName(), - EntityInstanceNotFoundFault.class.getName()}); - - assertEquals(0,getter.getParameterTypes().length); - assertEquals(attribute.getType(),getter.getReturnType().getName()); - } - - if (attribute.isWritable()) - { - CtMethod setter = definition.getDeclaredMethod("set"+name); - assertNotNull(setter); - - checkExceptionTypes( - setter.getExceptionTypes(), - new String[]{ - QManFault.class.getName(), - NoSuchAttributeFault.class.getName(), - EntityInstanceNotFoundFault.class.getName()}); - - CtClass [] parameterTypes = setter.getParameterTypes(); - - assertEquals(1,parameterTypes.length); - assertEquals(attribute.getType(),parameterTypes[0].getName()); - assertEquals(void.class.getName(),setter.getReturnType().getName()); - } - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityTest.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityTest.java deleted file mode 100644 index a9a6491209..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityTest.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * - * 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.capabilities; - -import java.lang.management.ManagementFactory; -import java.net.URI; - -import javax.management.ObjectName; - -import junit.framework.TestCase; - -import org.apache.muse.ws.addressing.EndpointReference; -import org.apache.muse.ws.resource.WsResource; -import org.apache.muse.ws.resource.impl.SimpleWsResource; -import org.apache.qpid.management.domain.handler.impl.QpidDomainObject; -import org.apache.qpid.management.wsdm.common.EntityInstanceNotFoundFault; -import org.apache.qpid.management.wsdm.common.NoSuchAttributeFault; -import org.apache.qpid.management.wsdm.common.QManFault; - -/** - * Test case for MBeanCapability supertype layer.. - * - * @author Andrea Gazzarini - */ -public class MBeanCapabilityTest extends TestCase -{ - private final String _typeAttributeName = "Type"; - private final String _newTypeValue = "DomainObject"; - - private ObjectName _objectName; - private ObjectName _unknownObjectName; - - private MBeanCapability _capability; - - @Override - protected void setUp() throws Exception - { - _objectName = new ObjectName("Test:Name=aName"); - _unknownObjectName = new ObjectName("Test:Type=unknown"); - - _capability = new MBeanCapability(){ - @Override - public WsResource getWsResource() - { - return new SimpleWsResource(){ - @Override - public EndpointReference getEndpointReference() - { - return new EndpointReference(URI.create("http://qpid.apache.org/qman")); - } - }; - } - }; - _capability.setResourceObjectName(_objectName); - ManagementFactory.getPlatformMBeanServer().registerMBean(new QpidDomainObject(), _objectName); - } - - /** - * Tests the execution of the getAttribute() and setAttribute() method. - * - *
precondition : the mbean is registered and a _capability is associated with it. - *
postcondition : the set value of the requested attribute is correctly returned. - */ - public void testGetAndSetAttributeOK() throws Exception - { - Object name = _capability.getAttribute(_typeAttributeName); - assertNull("Name has an initial value of null so how is possibile that is not null?",name); - - _capability.setAttribute(_typeAttributeName,_newTypeValue); - - name = _capability.getAttribute(_typeAttributeName); - assertEquals("Now the name attribute must be set to \""+_newTypeValue+"\"",_newTypeValue,name); - } - - /** - * Tests the execution of the getAttribute() and setAttribte() methods when an unknown attribute is given.. - * - *
precondition : the mbean is registered, a _capability is associated with it and the requested attribute doesn't exist. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testNoSuchAttributeFault() throws Exception - { - // I suppose that we shouldn't have an attribute with this name... - String unknownAttribute = String.valueOf(System.currentTimeMillis()); - - try - { - _capability.getAttribute(unknownAttribute); - fail("An exception must be thrown here in order to indicate that the attribute is unknown."); - } catch(NoSuchAttributeFault expected) - { - } - - try - { - _capability.setAttribute(unknownAttribute,null); - fail("An exception must be thrown here in order to indicate that the attribute is unknown."); - } catch(NoSuchAttributeFault expected) - { - } - } - - /** - * Tests the execution of the setAttribute,getAttribute and invoke methods when the target mbean - * doesn't exists. - * - *
precondition : the object name associated with the capability is not pointing to an existent MBean. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testEntityInstanceNotFoundFault() throws Exception - { - _capability.setResourceObjectName(_unknownObjectName); - - try - { - _capability.getAttribute(_typeAttributeName); - fail("An exception must be thrown here in order to indicate that the attribute is unknown."); - } catch(EntityInstanceNotFoundFault expected) - { - } - - try - { - _capability.setAttribute(_typeAttributeName,_newTypeValue); - fail("An exception must be thrown here in order to indicate that the attribute is unknown."); - } catch(EntityInstanceNotFoundFault expected) - { - } - - try - { - _capability.invoke("operationName", null,null); - fail("An exception must be thrown here in order to indicate that the attribute is unknown."); - } catch(EntityInstanceNotFoundFault expected) - { - } - } - - /** - * Tests the execution of the setAttribute,getAttribute and invoke methods when an unknown / unexpected - * exception is thrown. - * - *
precondition : the mbean is registered and a capability is associated with it. Something - * unexpected happens during method invocation. - *
postcondition : an exception is thrown indicating the failure. - */ - public void testQManFault() throws Exception - { - // Emulate a RuntimeException (which is the best example of uncaught exception... :) ) - _capability.setResourceObjectName(null); - - try - { - _capability.getAttribute(_typeAttributeName); - fail("An exception must be thrown here in order to indicate that the attribute is unknown."); - } catch(QManFault expected) - { - } - - try - { - _capability.setAttribute(_typeAttributeName,_newTypeValue); - fail("An exception must be thrown here in order to indicate that the attribute is unknown."); - } catch(QManFault expected) - { - } - - try - { - _capability.invoke("operationName", null,null); - fail("An exception must be thrown here in order to indicate that the attribute is unknown."); - } catch(QManFault expected) - { - } - } - - - /** - * Shutdown procedure for this test case. - */ - @Override - protected void tearDown() throws Exception - { - ManagementFactory.getPlatformMBeanServer().unregisterMBean(_objectName); - } -} diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapabilityTest.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapabilityTest.java deleted file mode 100644 index 648c7b2f60..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapabilityTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * - * 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.capabilities; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; - -import org.apache.muse.ws.notification.NotificationProducer; -import org.apache.qpid.management.Names; - -import junit.framework.TestCase; - -/** - * Test case for QMan adapter capability. - * - * @author Andrea Gazzarini - */ -public class QManAdapterCapabilityTest extends TestCase -{ - /** - * Tests the execution of the getTopicName() method. - * - *
precondition : an object type is given to the method (null is allowed). - *
postcondition : according to getTopicName() specs, the name of the - * topic associated with the given object type must be returned. - */ - public void testGetTopicName() - { - final InvocationHandler invocationHandler = new InvocationHandler(){ - - public Object invoke(Object proxy, Method method, Object[] args) - { - return null; - } - }; - - QManAdapterCapability capability = new QManAdapterCapability(){ - @Override - NotificationProducer getPublisherCapability() - { - return (NotificationProducer) Proxy.newProxyInstance( - getClass().getClassLoader(), - new Class[]{NotificationProducer.class}, - invocationHandler); - } - }; - - capability.createLifeCycleTopics(); - - assertEquals( - Names.EVENTS_LIFECYLE_TOPIC_NAME, - capability.getTopicName(Names.EVENT)); - - assertEquals( - Names.OBJECTS_LIFECYLE_TOPIC_NAME, - capability.getTopicName(Names.CLASS)); - - assertEquals( - Names.UNKNOWN_OBJECT_TYPE_LIFECYLE_TOPIC_NAME, - capability.getTopicName("This is an unknown object Type @#!--!!@#")); - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/RmdBuilderTest.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/RmdBuilderTest.java deleted file mode 100644 index 77cda1c2c1..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/RmdBuilderTest.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * - * 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.capabilities; - -import java.lang.management.ManagementFactory; - -import javax.management.MBeanAttributeInfo; -import javax.management.MBeanInfo; -import javax.management.MBeanServer; -import javax.management.ObjectName; - -import org.apache.qpid.management.Names; -import org.apache.qpid.management.domain.handler.impl.QpidDomainObject; -import org.w3c.dom.Element; - -import junit.framework.TestCase; - -/** - * Test case for Resource Metadata Descriptor Builder. - * - * @author Andrea Gazzarini - */ -public class RmdBuilderTest extends TestCase -{ - private MBeanInfo _metadata; - private RmdBuilder _builder; - private ObjectName _objectName; - - @Override - protected void setUp() throws Exception - { - MBeanServer server = ManagementFactory.getPlatformMBeanServer(); - _objectName = new ObjectName("Test:Name=QpidDomainObject"); - - server.registerMBean(new QpidDomainObject(), _objectName); - _metadata = server.getMBeanInfo(_objectName); - - _builder = new RmdBuilder(); - _builder.begin(_objectName); - - assertEquals(_objectName,_builder._objectName); - } - - /** - * Tests the execution of the onOperation() method. - */ - public void testOnOperation() throws Exception - { - MBeanAttributeInfo [] attributes = _metadata.getAttributes(); - for (MBeanAttributeInfo attribute : attributes) - { - _builder.onAttribute(attribute); - } - - Element [] rmd = _builder.getResourceMetadataDescriptor(); - - assertEquals(attributes.length,rmd.length); - - for (MBeanAttributeInfo attribute: _metadata.getAttributes()) - { - Element propertyMetadataDescriptor = getPropertyMetadatDescriptor(attribute.getName(), rmd); - - String modifiability = propertyMetadataDescriptor.getAttribute(Names.MODIFIABILITY); - String expectedValue = - attribute.isWritable() - ? Names.READ_WRITE - : Names.READ_ONLY; - assertEquals(expectedValue,modifiability); - } - } - - /** - * Returns the property metadata descriptor associated with the given attribute name. - * - * @param name the attribute name. - * @param rmd the resource metadata descriptor. - * @return the property metadata descriptor associated with the given attribute name. - * @throws RuntimeException if metadata for the given attribute is not found. - */ - private Element getPropertyMetadatDescriptor(String name, Element [] rmd) - { - for (Element propertyMetadataDescriptor : rmd) - { - if ((Names.PREFIX+":"+name).equals( - propertyMetadataDescriptor.getAttribute(Names.NAME_ATTRIBUTE))) - { - return propertyMetadataDescriptor; - } - } - throw new RuntimeException("Property MetadataDescriptor not found for attribute "+name); - } -} \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/web.xml b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/web.xml deleted file mode 100644 index df273bd841..0000000000 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/web.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - Qpid emulator startip - QEmu - org.apache.qpid.management.wsdm.QEmuInitializer - 1 - - -- cgit v1.2.1