X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Ftestingservices%2Fthreadpool%2Ftest%2FSimpleConfigurationTest.java;h=4ba3dc89399d11f157fdc833b5a72277e8e33ea1;hb=6813418034cc8a46124b326d30ec130d81aff415;hp=c2f2558a5d202d5c0279eaef157c913bc2ff7889;hpb=33ea0032f0837333a9181dd7556faa3266155080;p=controller.git diff --git a/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java b/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java index c2f2558a5d..4ba3dc8939 100644 --- a/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java +++ b/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java @@ -7,28 +7,7 @@ */ package org.opendaylight.controller.config.manager.testingservices.threadpool.test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.junit.matchers.JUnitMatchers.containsString; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ThreadPoolExecutor; - -import javax.management.DynamicMBean; -import javax.management.InstanceAlreadyExistsException; -import javax.management.InstanceNotFoundException; -import javax.management.MBeanException; -import javax.management.ObjectName; -import javax.management.ReflectionException; -import javax.management.RuntimeMBeanException; - +import com.google.common.collect.Sets; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -37,14 +16,32 @@ import org.opendaylight.controller.config.api.ValidationException; import org.opendaylight.controller.config.api.ValidationException.ExceptionMessageWithStackTrace; import org.opendaylight.controller.config.api.jmx.CommitStatus; import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; -import org.opendaylight.controller.config.manager.impl.AbstractConfigWithJolokiaTest; +import org.opendaylight.controller.config.manager.impl.AbstractConfigTest; import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver; import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingFixedThreadPool; import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingFixedThreadPoolConfigMXBean; import org.opendaylight.controller.config.manager.testingservices.threadpool.TestingFixedThreadPoolModuleFactory; import org.opendaylight.controller.config.util.ConfigTransactionClient; import org.opendaylight.controller.config.util.ConfigTransactionJMXClient; -import org.opendaylight.controller.config.util.jolokia.ConfigTransactionJolokiaClient; + +import javax.management.DynamicMBean; +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.MBeanException; +import javax.management.ObjectName; +import javax.management.ReflectionException; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ThreadPoolExecutor; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; /** * Tests basic functionality of configuration registry: @@ -58,8 +55,8 @@ import org.opendaylight.controller.config.util.jolokia.ConfigTransactionJolokiaC * Only one bean is being configured - {@link TestingThreadPoolIfc} which has no * dependencies. */ -public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { - private final int numberOfThreads = 5; +public class SimpleConfigurationTest extends AbstractConfigTest { + private static final int numberOfThreads = 5; private final int numberOfThreads2 = 10; private static final String fixed1 = "fixed1"; private static final List emptyONs = Collections @@ -71,7 +68,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { @Before public void setUp() { - super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver( + super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(mockedContext, new TestingFixedThreadPoolModuleFactory())); } @@ -99,7 +96,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { return fixed1names; } - private ObjectName createFixedThreadPool( + static ObjectName createFixedThreadPool( ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException, InstanceNotFoundException { transaction.assertVersion(0, 1); @@ -134,16 +131,10 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { testValidation(transaction); } - @Test - public void testValidationUsingJolokiaClient() throws Exception { - ConfigTransactionClient transaction = configRegistryJolokiaClient - .createTransaction(); - testValidation(transaction); - } private void testValidation(ConfigTransactionClient transaction) throws InstanceAlreadyExistsException, ReflectionException, - InstanceNotFoundException, MBeanException { + InstanceNotFoundException, MBeanException, ConflictingVersionException { ObjectName fixed1names = transaction.createModule( TestingFixedThreadPoolModuleFactory.NAME, fixed1); // call validate on config bean @@ -151,8 +142,8 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { platformMBeanServer.invoke(fixed1names, "validate", new Object[0], new String[0]); fail(); - } catch (RuntimeMBeanException e) { - RuntimeException targetException = e.getTargetException(); + } catch (MBeanException e) { + Exception targetException = e.getTargetException(); assertNotNull(targetException); assertEquals(ValidationException.class, targetException.getClass()); } @@ -255,8 +246,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { // 4, check assertEquals(2, configRegistryClient.getVersion()); - assertEquals(1, TestingFixedThreadPool.allExecutors.size()); - assertTrue(TestingFixedThreadPool.allExecutors.get(0).isShutdown()); + assertEquals(0, TestingFixedThreadPool.allExecutors.size()); // dynamic config should be removed from platform try { @@ -287,7 +277,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { // commit transaction.commit(); // check that first threadpool is closed - checkThreadPools(2, numberOfThreads2); + checkThreadPools(1, numberOfThreads2); } private void checkThreadPools(int expectedTotalNumberOfExecutors, @@ -317,7 +307,7 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { // commit CommitStatus commitStatus = transaction.commit(); // check that new threadpool is created and old one is closed - checkThreadPools(2, numberOfThreads); + checkThreadPools(1, numberOfThreads); CommitStatus expected = new CommitStatus(emptyONs, emptyONs, fixed1List); assertEquals(expected, commitStatus); } @@ -335,26 +325,19 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { } @Test - public void testAbort() { + public void testAbort() throws Exception { ConfigTransactionJMXClient transaction = configRegistryClient .createTransaction(); assertEquals(1, configRegistryClient.getOpenConfigs().size()); transaction.abortConfig(); + assertEquals(0, configRegistryClient.getOpenConfigs().size()); try { - transaction.createModule(TestingFixedThreadPoolModuleFactory.NAME, - fixed1); - fail(); - } catch (Exception e) { - assertTrue(e.getCause() instanceof InstanceNotFoundException); - } - try { - transaction.validateConfig(); + platformMBeanServer.getMBeanInfo(transaction.getObjectName()); fail(); - } catch (Exception e) { - assertTrue(e.getCause() instanceof InstanceNotFoundException); + }catch(InstanceNotFoundException e){ + assertEquals("org.opendaylight.controller:TransactionName=ConfigTransaction-0-1,type=ConfigTransaction", e.getMessage()); } - assertEquals(0, configRegistryClient.getOpenConfigs().size()); } @Test @@ -393,68 +376,13 @@ public class SimpleConfigurationTest extends AbstractConfigWithJolokiaTest { } } - @Test - public void testOptimisticLock_ConfigTransactionJolokiaClient() - throws Exception { - ConfigTransactionJolokiaClient transaction1 = configRegistryJolokiaClient - .createTransaction(); - ConfigTransactionJolokiaClient transaction2 = configRegistryJolokiaClient - .createTransaction(); - transaction2.assertVersion(0, 2); - transaction2.commit(); - try { - transaction1.commit(); - fail(); - } catch (ConflictingVersionException e) { - assertEquals( - "Optimistic lock failed. Expected parent version 2, was 0", - e.getMessage()); - } - } - - @Test - public void testOptimisticLock_ConfigRegistryJolokiaClient() - throws Exception { - ConfigTransactionJolokiaClient transaction1 = configRegistryJolokiaClient - .createTransaction(); - ConfigTransactionJolokiaClient transaction2 = configRegistryJolokiaClient - .createTransaction(); - transaction2.assertVersion(0, 2); - transaction2.commit(); - try { - configRegistryJolokiaClient.commitConfig(transaction1 - .getObjectName()); - fail(); - } catch (ConflictingVersionException e) { - assertEquals( - "Optimistic lock failed. Expected parent version 2, was 0", - e.getMessage()); - } - } @Test - public void testUsingJolokia() throws Exception { - ConfigTransactionJolokiaClient transactionClient = configRegistryJolokiaClient - .createTransaction(); - - ObjectName name = transactionClient.createModule( - TestingFixedThreadPoolModuleFactory.NAME, fixed1); + public void testQNames() { + Set availableModuleFactoryQNames = configRegistryClient.getAvailableModuleFactoryQNames(); + String expected = "(namespace?revision=2012-12-12)name"; - try { - transactionClient.validateConfig(); - fail(); - } catch (ValidationException e) { - assertThat( - e.getMessage(), - containsString("Parameter 'threadCount' must be greater than 0")); - } - - transactionClient.setAttribute(name, "ThreadCount", numberOfThreads); - // commit - CommitStatus commitStatus = transactionClient.commit(); - CommitStatus expected = new CommitStatus(Arrays.asList(ObjectNameUtil - .withoutTransactionName(name)), emptyONs, emptyONs); - assertEquals(expected, commitStatus); + assertEquals(Sets.newHashSet(expected), availableModuleFactoryQNames); } }