X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-persister-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fpersist%2Fimpl%2Fosgi%2FMockedBundleContext.java;h=bd18c8c30e8791dc08a5e6e4a3eceb82a1f7de6c;hp=97cf7ecfe7e2f36763e1a96ad7f994cc87db9ea5;hb=3997099eb61b0f2adc47f7a85952c324e9de223f;hpb=2c146f582dee58e36dc22505b4c6bedb4641342f diff --git a/opendaylight/netconf/config-persister-impl/src/test/java/org/opendaylight/controller/netconf/persist/impl/osgi/MockedBundleContext.java b/opendaylight/netconf/config-persister-impl/src/test/java/org/opendaylight/controller/netconf/persist/impl/osgi/MockedBundleContext.java index 97cf7ecfe7..bd18c8c30e 100644 --- a/opendaylight/netconf/config-persister-impl/src/test/java/org/opendaylight/controller/netconf/persist/impl/osgi/MockedBundleContext.java +++ b/opendaylight/netconf/config-persister-impl/src/test/java/org/opendaylight/controller/netconf/persist/impl/osgi/MockedBundleContext.java @@ -7,48 +7,103 @@ */ package org.opendaylight.controller.netconf.persist.impl.osgi; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import java.io.Closeable; +import java.io.IOException; +import java.util.Collections; +import java.util.Dictionary; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.opendaylight.controller.config.persist.api.ConfigPusher; import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder; import org.opendaylight.controller.config.persist.api.Persister; import org.opendaylight.controller.config.persist.api.PropertiesProvider; +import org.opendaylight.controller.netconf.api.Capability; +import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService; +import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory; import org.opendaylight.controller.netconf.persist.impl.DummyAdapter; +import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; - -import java.io.IOException; -import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; - -import static org.mockito.Mockito.doReturn; +import org.osgi.framework.Filter; +import org.osgi.framework.ServiceListener; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; final class MockedBundleContext { - @Mock private BundleContext context; + @Mock + private Filter outerFilter, innerFilter; + @Mock + private ServiceReference serviceReference; + @Mock + private Bundle bundle; + @Mock + NetconfOperationServiceFactory serviceFactory; + @Mock + private NetconfOperationService service; + @Mock + private ServiceRegistration registration; - MockedBundleContext(String netconfAddress, String netconfPort) { + MockedBundleContext(long maxWaitForCapabilitiesMillis, long conflictingVersionTimeoutMillis) throws Exception { MockitoAnnotations.initMocks(this); - initContext(netconfAddress, netconfPort); + doReturn(null).when(context).getProperty(anyString()); + initContext(maxWaitForCapabilitiesMillis, conflictingVersionTimeoutMillis); + + String outerFilterString = "(objectClass=org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory)"; + doReturn(outerFilter).when(context).createFilter(outerFilterString); + doNothing().when(context).addServiceListener(any(ServiceListener.class), eq(outerFilterString)); + ServiceReference[] toBeReturned = {serviceReference}; + doReturn(toBeReturned).when(context).getServiceReferences(NetconfOperationServiceFactory.class.getName(), null); + + String innerFilterString = "innerfilter"; + doReturn(innerFilterString).when(outerFilter).toString(); + + doReturn(innerFilter).when(context).createFilter(ConfigPersisterActivator.getFilterString()); + doReturn(innerFilterString).when(innerFilter).toString(); + doNothing().when(context).addServiceListener(any(ServiceListener.class), eq(innerFilterString)); + + doReturn(toBeReturned).when(context).getServiceReferences((String) null, innerFilterString); + doReturn(bundle).when(serviceReference).getBundle(); + doReturn(context).when(bundle).getBundleContext(); + doReturn("").when(serviceReference).toString(); + doReturn("context").when(context).toString(); + doReturn(serviceFactory).when(context).getService(any(ServiceReference.class)); + doReturn(service).when(serviceFactory).createService(anyString()); + final Capability cap = mock(Capability.class); + doReturn("cap1").when(cap).getCapabilityUri(); + doReturn(Collections.singleton(cap)).when(serviceFactory).getCapabilities(); + doNothing().when(service).close(); + doReturn("serviceFactoryMock").when(serviceFactory).toString(); + + doNothing().when(registration).unregister(); + doReturn(registration).when(context).registerService( + eq(ConfigPusher.class.getName()), any(Closeable.class), + any(Dictionary.class)); } public BundleContext getBundleContext() { return context; } - private void initContext(String netconfAddress, String netconfPort) { - initProp(context, ConfigPersisterActivator.IGNORED_MISSING_CAPABILITY_REGEX_SUFFIX, null); - - initPropNoPrefix(context, "netconf.tcp.client.address", netconfAddress); - initPropNoPrefix(context, "netconf.tcp.client.port", netconfPort); - + private void initContext(long maxWaitForCapabilitiesMillis, long conflictingVersionTimeoutMillis) { initProp(context, "active", "1"); initProp(context, "1." + ConfigPersisterActivator.STORAGE_ADAPTER_CLASS_PROP_SUFFIX, DummyAdapterWithInitialSnapshot.class.getName()); initProp(context, "1." + "readonly", "false"); initProp(context, "1." + ".properties.fileStorage", "target/configuration-persister-test/initial/"); - + initProp(context, ConfigPersisterActivator.MAX_WAIT_FOR_CAPABILITIES_MILLIS_PROPERTY, String.valueOf(maxWaitForCapabilitiesMillis)); + initProp(context, ConfigPersisterActivator.CONFLICTING_VERSION_TIMEOUT_MILLIS_PROPERTY, String.valueOf(conflictingVersionTimeoutMillis)); } private void initProp(BundleContext context, String key, String value) { @@ -66,7 +121,7 @@ final class MockedBundleContext { @Override public List loadLastConfigs() throws IOException { - return Lists.newArrayList(getConfigSnapshopt()); + return Lists.newArrayList(getConfigSnapshot()); } @Override @@ -74,7 +129,7 @@ final class MockedBundleContext { return this; } - public ConfigSnapshotHolder getConfigSnapshopt() { + public ConfigSnapshotHolder getConfigSnapshot() { return new ConfigSnapshotHolder() { @Override public String getConfigSnapshot() {