X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-jmx-generator%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyangjmxgenerator%2FModuleMXBeanEntryTest.java;h=dd44246867abb9af1e51bfe1bc5dbd8ea8c63f91;hb=744726a5d58c50102bb391dc9e4f9bd8defb691a;hp=661dbd7da344e6006e393313cd3f80a2ea9b90cd;hpb=9fb64948564e252018f9b1e13e7cea2c92f991aa;p=controller.git diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java index 661dbd7da3..dd44246867 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java @@ -7,38 +7,14 @@ */ package org.opendaylight.controller.config.yangjmxgenerator; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; - -import java.net.URI; -import java.net.URISyntaxException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.regex.Matcher; - -import javax.management.openmbean.ArrayType; -import javax.management.openmbean.CompositeType; -import javax.management.openmbean.SimpleType; - +import com.google.common.collect.Sets; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc; import org.opendaylight.controller.config.yangjmxgenerator.attribute.DependencyAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.JavaAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.ListAttribute; +import org.opendaylight.controller.config.yangjmxgenerator.attribute.ListDependenciesAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.TOAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.TypedAttribute; import org.opendaylight.yangtools.binding.generator.util.Types; @@ -46,17 +22,36 @@ import org.opendaylight.yangtools.sal.binding.model.api.Type; import org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; +import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath; -import com.google.common.collect.Sets; +import javax.management.openmbean.ArrayType; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.SimpleType; +import java.net.URI; +import java.net.URISyntaxException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; -public class ModuleMXBeanEntryTest extends AbstractYangTest { - public static final String EVENTBUS_MXB_NAME = "eventbus"; - public static final String ASYNC_EVENTBUS_MXB_NAME = "async-eventbus"; - public static final String THREADFACTORY_NAMING_MXB_NAME = "threadfactory-naming"; - public static final String THREADPOOL_DYNAMIC_MXB_NAME = "threadpool-dynamic"; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; - public static final String BGP_LISTENER_IMPL_MXB_NAME = "bgp-listener-impl"; +public class ModuleMXBeanEntryTest extends AbstractYangTest { public static final String PACKAGE_NAME = "pack2"; @@ -80,35 +75,32 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { protected Map modulesToSIEs; - protected Map loadThreadsJava() { - Map namesToMBEs = ModuleMXBeanEntry - .create(threadsJavaModule, modulesToSIEs, context, new TypeProviderWrapper(new TypeProviderImpl - (context)), PACKAGE_NAME); - assertNotNull(namesToMBEs); - Set expectedMXBeanNames = Sets.newHashSet(EVENTBUS_MXB_NAME, - ASYNC_EVENTBUS_MXB_NAME, THREADFACTORY_NAMING_MXB_NAME, - THREADPOOL_DYNAMIC_MXB_NAME); - assertThat(namesToMBEs.keySet(), is(expectedMXBeanNames)); - return namesToMBEs; - } @Before public void setUp() { - modulesToSIEs = ServiceInterfaceEntry.create(threadsModule, - "packages.sis"); + modulesToSIEs = loadThreadsServiceInterfaceEntries("packages.sis"); + } + + + protected Map loadThreadsJava() { + return loadThreadsJava(modulesToSIEs, PACKAGE_NAME); } @Test public void test_jmxImplModule() { + Map identitiesToSIs = new HashMap<>(); Map modulesToSIEs = ServiceInterfaceEntry - .create(threadsModule, PACKAGE_NAME); + .create(threadsModule, PACKAGE_NAME,identitiesToSIs); modulesToSIEs.putAll(ServiceInterfaceEntry.create(jmxModule, - PACKAGE_NAME)); + PACKAGE_NAME,identitiesToSIs)); Map namesToMBEs = ModuleMXBeanEntry .create(jmxImplModule, modulesToSIEs, context, new TypeProviderWrapper(new TypeProviderImpl(context)) , PACKAGE_NAME); Map attributes = namesToMBEs.get("impl-netconf") .getAttributes(); + + assertCorrectAttributesSize(namesToMBEs, attributes); + // DependencyAttribute threadFactoryAttribute = (DependencyAttribute) attributes .get("thread-factory"); @@ -128,6 +120,16 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { assertThat(threadFactoryAttribute.getType().getName(), is("ObjectName")); } + private void assertCorrectAttributesSize(Map namesToMBEs, Map attributes) { + assertEquals(14, attributes.size()); + assertEquals(1, namesToMBEs.get("impl-netconf").getRuntimeBeans().size()); + assertEquals(2, namesToMBEs.get("impl-netconf").getRuntimeBeans().iterator().next().getAttributes().size()); + + assertEquals(4, namesToMBEs.get("impl").getAttributes().size()); + assertEquals(1, namesToMBEs.get("impl").getRuntimeBeans().size()); + assertEquals(1, namesToMBEs.get("impl").getRuntimeBeans().iterator().next().getAttributes().size()); + } + protected RuntimeBeanEntry findFirstByYangName( Collection runtimeBeans, String yangName) { for (RuntimeBeanEntry rb : runtimeBeans) { @@ -151,7 +153,7 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { private void assertMatches(String prefix, String input) { RevisionAwareXPath whenConstraint = mock(RevisionAwareXPath.class); doReturn(input).when(whenConstraint).toString(); - Matcher output = ModuleMXBeanEntry.getWhenConditionMatcher(prefix, + Matcher output = ModuleMXBeanEntryBuilder.getWhenConditionMatcher(prefix, whenConstraint); assertTrue(output.matches()); assertEquals("threadpool-dynamic", output.group(1)); @@ -299,6 +301,15 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { } } + { // test multiple dependencies + ModuleMXBeanEntry threadPoolRegistry = namesToMBEs.get(THREADPOOL_REGISTRY_IMPL_NAME); + Map attributes = threadPoolRegistry.getAttributes(); + assertEquals(1, attributes.size()); + AttributeIfc threadpoolsAttr = attributes.get("threadpools"); + assertNotNull(threadpoolsAttr); + assertTrue(threadpoolsAttr instanceof ListDependenciesAttribute); + ListDependenciesAttribute threadpools = (ListDependenciesAttribute) threadpoolsAttr; + } } }