package org.opendaylight.controller.datastore;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.junit.Before;
+import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.DataModification;
+import org.opendaylight.controller.test.sal.binding.it.TestHelper;
+import org.opendaylight.yangtools.yang.data.api.CompositeNode;
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
import org.ops4j.pax.exam.Configuration;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.util.Filter;
import org.ops4j.pax.exam.util.PathUtils;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import javax.inject.Inject;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import static org.ops4j.pax.exam.CoreOptions.junitBundles;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemPackages;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
-import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.controller.md.sal.common.api.data.DataModification;
-import static org.mockito.Mockito.mock;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.when;
-
@RunWith(PaxExam.class)
public class ClusteredDataStoreIT {
- private Logger log = LoggerFactory
- .getLogger(ClusteredDataStoreIT.class);
+ private Logger log = LoggerFactory.getLogger(ClusteredDataStoreIT.class);
// get the OSGI bundle context
@Inject
private BundleContext bc;
@Inject
+ @Filter(timeout=60*1000)
private ClusteredDataStore clusteredDS;
+
// Configure the OSGi container
@Configuration
public Option[] config() {
return options(
//
systemProperty("logback.configurationFile").value(
- "file:" + PathUtils.getBaseDir()
- + "/src/test/resources/logback.xml"),
+ "file:" + PathUtils.getBaseDir() + "/src/test/resources/logback.xml"),
// To start OSGi console for inspection remotely
systemProperty("osgi.console").value("2401"),
// Set the systemPackages (used by clustering)
mavenBundle("equinoxSDK381", "org.apache.felix.gogo.shell").versionAsInProject(),
// List logger bundles
mavenBundle("org.slf4j", "slf4j-api").versionAsInProject(),
- mavenBundle("org.slf4j", "log4j-over-slf4j")
- .versionAsInProject(),
- mavenBundle("ch.qos.logback", "logback-core")
- .versionAsInProject(),
- mavenBundle("ch.qos.logback", "logback-classic")
- .versionAsInProject(),
+ mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(),
+ mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(),
+ mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(),
// needed by statisticsmanager
- mavenBundle("org.opendaylight.controller", "containermanager")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "containermanager.it.implementation")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "clustering.services")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "clustering.stub")
- .versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "containermanager").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "containermanager.it.implementation").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "clustering.services").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "clustering.stub").versionAsInProject(),
// List all the bundles on which the test case depends
- mavenBundle("org.opendaylight.controller", "sal")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "sal.implementation")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "protocol_plugins.stub")
- .versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "sal").versionAsInProject(),
+ TestHelper.baseModelBundles(),
+ TestHelper.configMinumumBundles(),
+ TestHelper.bindingIndependentSalBundles(),
+ TestHelper.bindingAwareSalBundles(),
+ TestHelper.mdSalCoreBundles(),
+ mavenBundle("org.opendaylight.controller", "config-api").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "sal.implementation").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "protocol_plugins.stub").versionAsInProject(),
- //clustered-data-store-implementation dependencies
- mavenBundle("com.google.guava", "guava")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "sal-common-api")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "sal-common-util")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.controller", "sal-common-impl")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.yangtools", "yang-binding")
- .versionAsInProject(),
+ // sal-common-impl
+ mavenBundle("org.eclipse.xtend", "org.eclipse.xtend.lib").versionAsInProject(),
+ mavenBundle("org.eclipse.xtext", "org.eclipse.xtext.xbase.lib").versionAsInProject(),
+ // clustered-data-store-implementation dependencies
+ mavenBundle("com.google.guava", "guava").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "sal-core-api").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "sal-common-api").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "sal-common-util").versionAsInProject(),
+ mavenBundle("org.opendaylight.controller", "sal-common-impl").versionAsInProject(),
+ mavenBundle("org.opendaylight.yangtools", "yang-model-api").versionAsInProject(),
+ mavenBundle("org.opendaylight.yangtools", "yang-binding").versionAsInProject(),
- //sal-common-api dependencies
- mavenBundle("org.opendaylight.controller", "sal-common")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.yangtools", "yang-common")
- .versionAsInProject(),
- mavenBundle("org.opendaylight.yangtools", "concepts")
- .versionAsInProject(),
- mavenBundle("org.osgi", "org.osgi.core")
- .versionAsInProject(),
- //adding new maven bundles
- mavenBundle("org.mockito", "mockito-all")
- .versionAsInProject(),
+ // sal-common-api dependencies
+ mavenBundle("org.opendaylight.controller", "sal-common").versionAsInProject(),
+ mavenBundle("org.opendaylight.yangtools", "yang-common").versionAsInProject(),
+ mavenBundle("org.opendaylight.yangtools", "concepts").versionAsInProject(),
+ mavenBundle("org.osgi", "org.osgi.core").versionAsInProject(),
+ // adding new maven bundles
+ mavenBundle("org.mockito", "mockito-all").versionAsInProject(),
+
+ // yang-data-api
+ mavenBundle("org.opendaylight.yangtools", "yang-data-api").versionAsInProject(),
// needed by hosttracker
- mavenBundle("org.opendaylight.controller", "clustered-datastore-implementation")
- .versionAsInProject(),
- mavenBundle("org.jboss.spec.javax.transaction",
- "jboss-transaction-api_1.1_spec").versionAsInProject(),
- mavenBundle("org.apache.commons", "commons-lang3")
- .versionAsInProject(),
- mavenBundle("org.apache.felix",
- "org.apache.felix.dependencymanager")
- .versionAsInProject(), junitBundles());
+ mavenBundle("org.opendaylight.controller", "clustered-datastore-implementation").versionAsInProject(),
+ mavenBundle("org.jboss.spec.javax.transaction", "jboss-transaction-api_1.1_spec").versionAsInProject(),
+ mavenBundle("org.apache.commons", "commons-lang3").versionAsInProject(),
+ mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager").versionAsInProject(),
+ junitBundles());
}
private String stateToString(int state) {
}
}
- @Before
- public void areWeReady() {
- assertNotNull(bc);
- boolean debugit = false;
- Bundle b[] = bc.getBundles();
- for (int i = 0; i < b.length; i++) {
- int state = b[i].getState();
- if (state != Bundle.ACTIVE && state != Bundle.RESOLVED) {
- log.debug("Bundle:" + b[i].getSymbolicName() + " state:"
- + stateToString(state));
- debugit = true;
- }
- }
- if (debugit) {
- log.debug("Do some debugging because some bundle is "
- + "unresolved");
- }
- }
-
@Test
- public void testBundleContextClusteredDS_NotNull() throws Exception{
+ public void testBundleContextClusteredDS_NotNull() throws Exception {
ServiceReference serviceReference = bc.getServiceReference(ClusteredDataStore.class);
ClusteredDataStore store = ClusteredDataStore.class.cast(bc.getService(serviceReference));
assertNotNull(store);
}
@Test
- public void testInjected_ClusteredDS_NotNull(){
+ public void testInjected_ClusteredDS_NotNull() {
assertNotNull(clusteredDS);
}
@Test
- public void requestCommit_readConfigurationData_ShouldVerifyDataAndNoException(){
+ public void requestCommit_readConfigurationData_ShouldVerifyDataAndNoException() {
DataModification dataModification = mock(DataModification.class);
HashMap map = new HashMap();
List list = new ArrayList();
list.add("key");
- InstanceIdentifier key = new InstanceIdentifier(list,String.class);
- map.put(key, "value");
+ InstanceIdentifier key = new InstanceIdentifier(list);
+ map.put(key, mock(CompositeNode.class));
when(dataModification.getUpdatedConfigurationData()).thenReturn(map);
DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification);
dataCommitTrans.finish();
- String value = (String)clusteredDS.readConfigurationData(key);
- assertEquals("value",value);
+ Object value = clusteredDS.readConfigurationData(key);
+ Assert.assertNotNull(value);
}
@Test(expected = NullPointerException.class)
- public void requestCommit_ShouldThrowException(){
+ public void requestCommit_ShouldThrowException() {
DataModification dataModification = null;
DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification);
dataCommitTrans.finish();
}
@Test
- public void requestCommit_readOperationalData_ShouldVerifyDataAndNoException(){
+ public void requestCommit_readOperationalData_ShouldVerifyDataAndNoException() {
DataModification dataModification = mock(DataModification.class);
HashMap map = new HashMap();
List list = new ArrayList();
list.add("key");
- InstanceIdentifier key = new InstanceIdentifier(list,String.class);
- map.put(key, "value");
+ InstanceIdentifier key = new InstanceIdentifier(list);
+ map.put(key, mock(CompositeNode.class));
when(dataModification.getUpdatedOperationalData()).thenReturn(map);
DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification);
dataCommitTrans.finish();
- String value = (String)clusteredDS.readOperationalData(key);
- assertEquals("value",value);
+ Object value = clusteredDS.readOperationalData(key);
+ Assert.assertNotNull(value);
}
@Test
- public void requestCommit_readConfigurationData_NonExistingKey_ShouldVerifyNoMappedValueAndNoException(){
+ public void requestCommit_readConfigurationData_NonExistingKey_ShouldVerifyNoMappedValueAndNoException() {
DataModification dataModification = mock(DataModification.class);
HashMap map = new HashMap();
List list = new ArrayList();
list.add("key");
- InstanceIdentifier key = new InstanceIdentifier(list,String.class);
+ InstanceIdentifier key = new InstanceIdentifier(list);
map.put(key, "value");
when(dataModification.getUpdatedConfigurationData()).thenReturn(map);
DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification);
dataCommitTrans.finish();
list = new ArrayList();
list.add("key1");
- InstanceIdentifier key1 = new InstanceIdentifier(list,String.class);
+ InstanceIdentifier key1 = new InstanceIdentifier(list);
- String value = (String)clusteredDS.readConfigurationData(key1);
+ Object value = clusteredDS.readConfigurationData(key1);
assertNull(value);
}
@Test
- public void requestCommit_readOperationalData_NonExistingKey_ShouldVerifyNoMappedValueAndNoException(){
+ public void requestCommit_readOperationalData_NonExistingKey_ShouldVerifyNoMappedValueAndNoException() {
DataModification dataModification = mock(DataModification.class);
HashMap map = new HashMap();
List list = new ArrayList();
list.add("key");
- InstanceIdentifier key = new InstanceIdentifier(list,String.class);
- map.put(key, "value");
+ InstanceIdentifier key = new InstanceIdentifier(list);
+ map.put(key, mock(CompositeNode.class));
when(dataModification.getUpdatedOperationalData()).thenReturn(map);
DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification);
dataCommitTrans.finish();
list = new ArrayList();
list.add("key1");
- InstanceIdentifier key1 = new InstanceIdentifier(list,String.class);
+ InstanceIdentifier key1 = new InstanceIdentifier(list);
- String value = (String)clusteredDS.readOperationalData(key1);
+ Object value = clusteredDS.readOperationalData(key1);
assertNull(value);
}
@Test(expected = NullPointerException.class)
- public void requestCommit_readConfigurationData_WithNullPathShouldThrowException(){
+ public void requestCommit_readConfigurationData_WithNullPathShouldThrowException() {
DataModification dataModification = mock(DataModification.class);
HashMap map = new HashMap();
List list = new ArrayList();
list.add("key");
- InstanceIdentifier key = new InstanceIdentifier(list,String.class);
+ InstanceIdentifier key = new InstanceIdentifier(list);
map.put(key, "value");
when(dataModification.getUpdatedConfigurationData()).thenReturn(map);
DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification);
dataCommitTrans.finish();
- String value = (String)clusteredDS.readConfigurationData(null);
+ Object value = clusteredDS.readConfigurationData(null);
}
@Test(expected = NullPointerException.class)
- public void requestCommit_readOperationalData_WithNullPathShouldThrowException(){
+ public void requestCommit_readOperationalData_WithNullPathShouldThrowException() {
DataModification dataModification = mock(DataModification.class);
HashMap map = new HashMap();
List list = new ArrayList();
list.add("key");
- InstanceIdentifier key = new InstanceIdentifier(list,String.class);
+ InstanceIdentifier key = new InstanceIdentifier(list);
map.put(key, "value");
when(dataModification.getOriginalOperationalData()).thenReturn(map);
DataCommitTransaction dataCommitTrans = clusteredDS.requestCommit(dataModification);
dataCommitTrans.finish();
- String value = (String)clusteredDS.readOperationalData(null);
+ Object value = clusteredDS.readOperationalData(null);
}
+
}