/* * Copyright (c) 2013 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, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.controller.netconf.persist.impl.osgi; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import org.mockito.Mock; import org.mockito.MockitoAnnotations; 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.persist.impl.DummyAdapter; 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; final class MockedBundleContext { @Mock private BundleContext context; MockedBundleContext(String netconfAddress, String netconfPort) { MockitoAnnotations.initMocks(this); initContext(netconfAddress, netconfPort); } 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); 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/"); } private void initProp(BundleContext context, String key, String value) { initPropNoPrefix(context, ConfigPersisterActivator.NETCONF_CONFIG_PERSISTER + "." + key, value); } private void initPropNoPrefix(BundleContext context, String key, String value) { doReturn(value).when(context).getProperty(key); } public static class DummyAdapterWithInitialSnapshot extends DummyAdapter { public static final String CONFIG_SNAPSHOT = "config-snapshot"; public static String expectedCapability = "cap2"; @Override public List loadLastConfigs() throws IOException { return Lists.newArrayList(getConfigSnapshopt()); } @Override public Persister instantiate(PropertiesProvider propertiesProvider) { return this; } public ConfigSnapshotHolder getConfigSnapshopt() { return new ConfigSnapshotHolder() { @Override public String getConfigSnapshot() { return "<" + CONFIG_SNAPSHOT + "/>"; } @Override public SortedSet getCapabilities() { TreeSet strings = Sets.newTreeSet(); strings.add(expectedCapability); return strings; } @Override public String toString() { return getConfigSnapshot(); } }; } } }