+package org.opendaylight.controller.datastore.internal;
+
+import org.apache.felix.dm.Component;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.opendaylight.controller.clustering.services.CacheConfigException;
+import org.opendaylight.controller.clustering.services.CacheExistException;
+import org.opendaylight.controller.clustering.services.IClusterGlobalServices;
+import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.DataModification;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+import static junit.framework.Assert.assertNotNull;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+public class ClusteredDataStoreManagerTest {
+
+ private static ClusteredDataStoreManager clusteredDSMgr = null;
+ private IClusterGlobalServices icClusterGlbServices = mock(IClusterGlobalServices.class);
+
+ @BeforeClass
+ public static void construct(){
+ clusteredDSMgr = new ClusteredDataStoreManager();
+ assertNotNull(clusteredDSMgr);
+ }
+
+ @Test
+ public void construct_OnSetClusterGlobalServices_AssertNoException(){
+ icClusterGlbServices = mock(IClusterGlobalServices.class);
+
+ clusteredDSMgr.setClusterGlobalServices(icClusterGlbServices);
+ }
+
+ @Test
+ public void construct_OnUnSetClusterGlobalServices_AssertNoException(){
+ IClusterGlobalServices icClusterGlbServices = mock(IClusterGlobalServices.class);
+
+ clusteredDSMgr.unsetClusterGlobalServices(icClusterGlbServices);
+ }
+
+ @Test
+ public void construct_init_AssertNoException() throws CacheExistException,CacheConfigException{
+ ClusteredDataStoreImpl clusteredDSImpl = mock(ClusteredDataStoreImpl.class);
+
+ ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager());
+ doReturn(clusteredDSImpl).when(clusteredDSManager).createClusteredDataStore(any(Component.class));
+ Component c = mock(Component.class);
+
+ clusteredDSManager.init(c);
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void construct_init_AssertCacheExistException() throws CacheExistException,CacheConfigException{
+ ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager());
+ doThrow(CacheExistException.class).when(clusteredDSManager).createClusteredDataStore(any(Component.class));
+ Component c = mock(Component.class);
+
+ clusteredDSManager.init(c);
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void construct_init_AssertCacheConfigException() throws CacheExistException,CacheConfigException{
+ ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager());
+ doThrow(CacheConfigException.class).when(clusteredDSManager).createClusteredDataStore(any(Component.class));
+ Component c = mock(Component.class);
+
+ clusteredDSManager.init(c);
+ }
+
+ @Test
+ public void construct_readOperationalData_AssertNoException() throws CacheExistException,CacheConfigException{
+ ClusteredDataStoreImpl clusteredDSImpl = mock(ClusteredDataStoreImpl.class);
+
+ ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager());
+ doReturn(clusteredDSImpl).when(clusteredDSManager).createClusteredDataStore(any(Component.class));
+ Component c = mock(Component.class);
+
+ clusteredDSManager.init(c);
+
+ Object o = mock(Object.class);
+
+ when(clusteredDSImpl.readOperationalData(any(InstanceIdentifier.class))).thenReturn(o);
+ assertEquals(o,clusteredDSManager.readOperationalData(any(InstanceIdentifier.class)));
+ }
+
+
+ @Test
+ public void construct_readConfigurationData_AssertNoException() throws CacheExistException,CacheConfigException{
+ ClusteredDataStoreImpl clusteredDSImpl = mock(ClusteredDataStoreImpl.class);
+
+ ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager());
+ doReturn(clusteredDSImpl).when(clusteredDSManager).createClusteredDataStore(any(Component.class));
+ Component c = mock(Component.class);
+
+ clusteredDSManager.init(c);
+ Object o = mock(Object.class);
+
+ when(clusteredDSImpl.readConfigurationData(any(InstanceIdentifier.class))).thenReturn(o);
+ assertEquals(o,clusteredDSManager.readConfigurationData(any(InstanceIdentifier.class)));
+ }
+
+ @Test
+ public void construct_requestCommit_AssertNoException() throws CacheExistException,CacheConfigException{
+ ClusteredDataStoreImpl clusteredDSImpl = mock(ClusteredDataStoreImpl.class);
+
+ ClusteredDataStoreManager clusteredDSManager = spy(new ClusteredDataStoreManager());
+ doReturn(clusteredDSImpl).when(clusteredDSManager).createClusteredDataStore(any(Component.class));
+ Component c = mock(Component.class);
+
+ clusteredDSManager.init(c);
+ DataCommitTransaction dataCommitTransaction = mock(DataCommitTransaction.class);
+
+ when(clusteredDSImpl.requestCommit(any(DataModification.class))).thenReturn(dataCommitTransaction);
+ assertEquals(dataCommitTransaction,clusteredDSManager.requestCommit(any(DataModification.class)));
+ }
+}