X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-manager%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fmanager%2Fimpl%2Fdependencyresolver%2FDependencyResolverManagerTest.java;h=0f099e77b0eb32b29f1d8c79414ab3c17b8cfa2c;hp=65b010532bfe342dd7db6b155ca8190d61e7b5b9;hb=f43b01b81319959b1907e3e04537f5169e7f33d8;hpb=6117dc1c03128e9f7eac249b4a997449e254cdd6 diff --git a/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/DependencyResolverManagerTest.java b/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/DependencyResolverManagerTest.java index 65b010532b..0f099e77b0 100644 --- a/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/DependencyResolverManagerTest.java +++ b/opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/impl/dependencyresolver/DependencyResolverManagerTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2013, 2017 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -15,24 +15,27 @@ import static org.mockito.Mockito.reset; import java.util.Arrays; import java.util.List; - import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.api.JmxAttribute; import org.opendaylight.controller.config.api.ModuleIdentifier; +import org.opendaylight.controller.config.api.ServiceReferenceReadableRegistry; import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; -import org.opendaylight.controller.config.manager.impl.ModuleInternalTransactionalInfo; +import org.opendaylight.controller.config.manager.impl.AbstractLockedPlatformMBeanServerTest; +import org.opendaylight.controller.config.manager.impl.ModuleInternalInfo; +import org.opendaylight.controller.config.manager.impl.TransactionIdentifier; import org.opendaylight.controller.config.manager.impl.TransactionStatus; +import org.opendaylight.controller.config.manager.impl.jmx.TransactionModuleJMXRegistrator.TransactionModuleJMXRegistration; import org.opendaylight.controller.config.spi.Module; +import org.opendaylight.controller.config.spi.ModuleFactory; +import org.osgi.framework.BundleContext; -public class DependencyResolverManagerTest { +public class DependencyResolverManagerTest extends AbstractLockedPlatformMBeanServerTest { final ModuleIdentifier apspName = new ModuleIdentifier("apsp", "apsp"); // depends // on: - final ModuleIdentifier threadPoolName = new ModuleIdentifier("threadpool", - "threadpool"); // depends on: - final ModuleIdentifier threadFactoryName = new ModuleIdentifier( - "threadfactory", "threadfactory"); + final ModuleIdentifier threadPoolName = new ModuleIdentifier("threadpool", "threadpool"); // depends on: + final ModuleIdentifier threadFactoryName = new ModuleIdentifier("threadfactory", "threadfactory"); private DependencyResolverManager tested; TransactionStatus transactionStatus; @@ -40,17 +43,18 @@ public class DependencyResolverManagerTest { @Before public void setUp() { transactionStatus = mock(TransactionStatus.class); - tested = new DependencyResolverManager("txName", transactionStatus); + ServiceReferenceReadableRegistry mockedRegistry = mock(ServiceReferenceReadableRegistry.class); + tested = new DependencyResolverManager(new TransactionIdentifier("txName"), transactionStatus, mockedRegistry, + null, platformMBeanServer); doNothing().when(transactionStatus).checkCommitStarted(); doNothing().when(transactionStatus).checkNotCommitted(); } @Test public void testOrdering() { - DependencyResolverImpl apspDRI = tested.getOrCreate(apspName); + final DependencyResolverImpl apspDRI = tested.getOrCreate(apspName); mockGetInstance(tested, apspName); - DependencyResolverImpl threadPoolDRI = tested - .getOrCreate(threadPoolName); + final DependencyResolverImpl threadPoolDRI = tested.getOrCreate(threadPoolName); mockGetInstance(tested, threadPoolName); tested.getOrCreate(threadFactoryName); mockGetInstance(tested, threadFactoryName); @@ -62,39 +66,41 @@ public class DependencyResolverManagerTest { // switch to second phase committed reset(transactionStatus); + doNothing().when(transactionStatus).checkCommitStarted(); doNothing().when(transactionStatus).checkCommitted(); - List sortedModuleIdentifiers = tested - .getSortedModuleIdentifiers(); - assertEquals( - Arrays.asList(threadFactoryName, threadPoolName, apspName), - sortedModuleIdentifiers); + doNothing().when(transactionStatus).checkNotCommitted(); + List sortedModuleIdentifiers = tested.getSortedModuleIdentifiers(); + assertEquals(Arrays.asList(threadFactoryName, threadPoolName, apspName), sortedModuleIdentifiers); } /** * Simulate dependentResolver resolving its dependency identified by * dependentName. */ - private void declareDependency(DependencyResolverImpl dependerResolver, - ModuleIdentifier dependentName) { + private static void declareDependency(final DependencyResolverImpl dependerResolver, + final ModuleIdentifier dependentName) { JmxAttribute dummyAttribute = new JmxAttribute("dummy"); - dependerResolver.resolveInstance(Object.class, - ObjectNameUtil.createReadOnlyModuleON(dependentName), + dependerResolver.resolveInstance(Object.class, ObjectNameUtil.createReadOnlyModuleON(dependentName), dummyAttribute); } - private static void mockGetInstance(DependencyResolverManager tested, - ModuleIdentifier moduleIdentifier) { - ModuleInternalTransactionalInfo mock = mock(ModuleInternalTransactionalInfo.class); - doReturn(moduleIdentifier).when(mock).getIdentifier(); - doReturn(mockedModule()).when(mock).getModule(); - tested.put(mock); + private static void mockGetInstance(final DependencyResolverManager tested, + final ModuleIdentifier moduleIdentifier) { + + ModuleFactory moduleFactory = mock(ModuleFactory.class); + ModuleInternalInfo maybeOldInternalInfo = null; + TransactionModuleJMXRegistration transactionModuleJMXRegistration = null; + boolean isDefaultBean = false; + + tested.put(moduleIdentifier, mockedModule(), moduleFactory, maybeOldInternalInfo, + transactionModuleJMXRegistration, isDefaultBean, mock(BundleContext.class)); } private static Module mockedModule() { Module mockedModule = mock(Module.class); doReturn(mock(AutoCloseable.class)).when(mockedModule).getInstance(); + doReturn(new ModuleIdentifier("fact", "instance")).when(mockedModule).getIdentifier(); return mockedModule; } - }