X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-jmx-generator%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyangjmxgenerator%2FModuleMXBeanEntryTest.java;h=fab273c60093b529931e5f0ce4f02f9198327ff7;hp=9ea34ca2b8ed990c56c6c14988733e09d88e3995;hb=d5702150e612565cd091f184064f017bc4cc3971;hpb=f8ab6822a30746c21b50fa770a99910dc61e26c7 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 9ea34ca2b8..fab273c600 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,8 +7,35 @@ */ 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 com.google.common.collect.Sets; + +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; + +import javax.management.openmbean.ArrayType; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.SimpleType; + import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc; @@ -26,39 +53,7 @@ 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 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.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.regex.Matcher; - -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 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"; - public static final String THREADPOOL_REGISTRY_IMPL_NAME = "threadpool-registry-impl"; - - public static final String BGP_LISTENER_IMPL_MXB_NAME = "bgp-listener-impl"; public static final String PACKAGE_NAME = "pack2"; @@ -82,23 +77,15 @@ 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, THREADPOOL_REGISTRY_IMPL_NAME); - assertThat(namesToMBEs.keySet(), is(expectedMXBeanNames)); - return namesToMBEs; - } @Before public void setUp() { - Map identitiesToSIs = new HashMap<>(); - modulesToSIEs = ServiceInterfaceEntry.create(threadsModule, - "packages.sis",identitiesToSIs); + modulesToSIEs = loadThreadsServiceInterfaceEntries("packages.sis"); + } + + + protected Map loadThreadsJava() { + return loadThreadsJava(modulesToSIEs, PACKAGE_NAME); } @Test @@ -110,9 +97,12 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { PACKAGE_NAME,identitiesToSIs)); Map namesToMBEs = ModuleMXBeanEntry .create(jmxImplModule, modulesToSIEs, context, new TypeProviderWrapper(new TypeProviderImpl(context)) - , PACKAGE_NAME); + , PACKAGE_NAME); Map attributes = namesToMBEs.get("impl-netconf") .getAttributes(); + + assertCorrectAttributesSize(namesToMBEs, attributes); + // DependencyAttribute threadFactoryAttribute = (DependencyAttribute) attributes .get("thread-factory"); @@ -132,11 +122,22 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { assertThat(threadFactoryAttribute.getType().getName(), is("ObjectName")); } + private void assertCorrectAttributesSize(final Map namesToMBEs, final 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) { + final Collection runtimeBeans, final String yangName) { for (RuntimeBeanEntry rb : runtimeBeans) { - if (yangName.equals(rb.getYangName())) + if (yangName.equals(rb.getYangName())) { return rb; + } } throw new IllegalArgumentException("Yang name not found:" + yangName + " in " + runtimeBeans); @@ -152,10 +153,10 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { "/config:modules/config:module/config:type=\"threadpool-dynamic\""); } - private void assertMatches(String prefix, String input) { + private void assertMatches(final String prefix, final 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)); @@ -183,7 +184,7 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { is((Type) Types.typeForClass(Long.class))); } // check dependency on thread factory - QName threadfactoryQName = new QName(THREADS_NAMESPACE, + QName threadfactoryQName = QName.create(THREADS_NAMESPACE, THREADS_REVISION_DATE, "threadfactory"); ServiceInterfaceEntry threadFactorySIEntry = modulesToSIEs .get(threadfactoryQName); @@ -194,7 +195,7 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { DataSchemaNode mockedDataSchemaNode = mock(DataSchemaNode.class); doReturn(Collections.emptyList()).when(mockedDataSchemaNode) - .getUnknownSchemaNodes(); + .getUnknownSchemaNodes(); doReturn(threadfactoryQName).when(mockedDataSchemaNode).getQName(); AttributeIfc expectedDependencyAttribute = new DependencyAttribute( mockedDataSchemaNode, threadFactorySIEntry, @@ -202,7 +203,7 @@ public class ModuleMXBeanEntryTest extends AbstractYangTest { assertThat(actualThreadFactory, is(expectedDependencyAttribute)); assertThat( dynamicThreadPool - .getFullyQualifiedName("DynamicThreadPoolModuleMXBean"), + .getFullyQualifiedName("DynamicThreadPoolModuleMXBean"), is(PACKAGE_NAME + ".DynamicThreadPoolModuleMXBean")); assertThat(dynamicThreadPool.getNullableDescription(), is("threadpool-dynamic description"));