package org.opendaylight.netconf.sal.connect.netconf.sal;
import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import com.google.common.util.concurrent.Futures;
import java.net.InetSocketAddress;
-import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;
import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
private DataBroker dataBroker;
@Mock
private BindingTransactionChain chain;
+ @Mock
+ private DOMMountPointService mountPointService;
+ @Mock
+ private WriteTransaction writeTx;
private NetconfDeviceSalProvider provider;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- provider = new NetconfDeviceSalProvider(new RemoteDeviceId("device1", InetSocketAddress.createUnresolved("localhost", 17830)));
+ doReturn(chain).when(dataBroker).createTransactionChain(any(TransactionChainListener.class));
+ doReturn(writeTx).when(chain).newWriteOnlyTransaction();
+ doNothing().when(writeTx).merge(eq(LogicalDatastoreType.OPERATIONAL), any(), any());
+ doReturn("Some object").when(writeTx).getIdentifier();
+ doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit();
+ provider = new NetconfDeviceSalProvider(new RemoteDeviceId("device1",
+ InetSocketAddress.createUnresolved("localhost", 17830)), mountPointService, dataBroker);
when(session.getService(DOMMountPointService.class)).thenReturn(mountpointService);
when(context.getSALService(DataBroker.class)).thenReturn(dataBroker);
- when(dataBroker.createTransactionChain(any())).thenReturn(chain);
when(chain.newWriteOnlyTransaction()).thenReturn(tx);
when(tx.submit()).thenReturn(Futures.immediateCheckedFuture(null));
when(tx.getIdentifier()).thenReturn(tx);
}
- @Test
- public void onSessionInitiated() throws Exception {
- provider.onSessionInitiated(session);
- provider.onSessionInitiated(context);
- Assert.assertNotNull(provider.getMountInstance());
- Assert.assertNotNull(provider.getTopologyDatastoreAdapter());
- }
-
- @Test
- public void getProviderFunctionality() throws Exception {
- Assert.assertTrue(provider.getProviderFunctionality().isEmpty());
- }
-
@Test
public void replaceChainIfFailed() throws Exception {
- provider.onSessionInitiated(session);
- provider.onSessionInitiated(context);
- Assert.assertNotNull(provider.getMountInstance());
final ArgumentCaptor<TransactionChainListener> captor = ArgumentCaptor.forClass(TransactionChainListener.class);
verify(dataBroker).createTransactionChain(captor.capture());
try {
@Test
public void close() throws Exception {
- provider.onSessionInitiated(session);
- provider.onSessionInitiated(context);
provider.close();
verify(chain).close();
}
@Test
public void closeWithoutNPE() throws Exception {
- provider.onSessionInitiated(session);
- provider.onSessionInitiated(context);
provider.close();
provider.close();
verify(chain, times(2)).close();