/*
* Copyright (c) 2016 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.groupbasedpolicy.renderer.ios_xe_provider.impl.writer;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Optional;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.netconf.api.NetconfDocumentedException;
public class NetconfTransactionCreatorTest {
@Mock
private DataBroker dataBroker;
@Before
public void init() {
dataBroker = mock(DataBroker.class);
NetconfTransactionCreator.setTimeout(10L);
}
@Test
public void testNetconfReadOnlyTransaction_success() {
ReadOnlyTransaction rtx = mock(ReadOnlyTransaction.class);
when(dataBroker.newReadOnlyTransaction()).thenReturn(rtx);
Optional<ReadOnlyTransaction> newRtx = NetconfTransactionCreator.netconfReadOnlyTransaction(dataBroker);
assertEquals(rtx, newRtx.get());
}
@Test
public void testNetconfReadOnlyTransaction_NoNetconfException() {
when(dataBroker.newReadOnlyTransaction()).thenThrow(RuntimeException.class);
Optional<ReadOnlyTransaction> newRtx = NetconfTransactionCreator.netconfReadOnlyTransaction(dataBroker);
assertEquals(false, newRtx.isPresent());
verify(dataBroker, times(1)).newReadOnlyTransaction();
}
@Test
public void testNetconfReadOnlyTransaction_NetconfException() {
when(dataBroker.newReadOnlyTransaction()).thenThrow(new RuntimeException(new NetconfDocumentedException("")));
Optional<ReadOnlyTransaction> newRtx = NetconfTransactionCreator.netconfReadOnlyTransaction(dataBroker);
assertEquals(false, newRtx.isPresent());
verify(dataBroker, times(6)).newReadOnlyTransaction();
}
@Test
public void testNetconfWriteOnlyTransaction_success() {
WriteTransaction wtx = mock(WriteTransaction.class);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(wtx);
Optional<WriteTransaction> newWtx = NetconfTransactionCreator.netconfWriteOnlyTransaction(dataBroker);
assertEquals(wtx, newWtx.get());
}
@Test
public void testNetconfWriteOnlyTransaction_NoNetconfException() {
when(dataBroker.newWriteOnlyTransaction()).thenThrow(RuntimeException.class);
Optional<WriteTransaction> newWtx = NetconfTransactionCreator.netconfWriteOnlyTransaction(dataBroker);
assertEquals(false, newWtx.isPresent());
verify(dataBroker, times(1)).newWriteOnlyTransaction();
}
@Test
public void testNetconfWriteOnlyTransaction_NetconfException() {
when(dataBroker.newWriteOnlyTransaction()).thenThrow(new RuntimeException(new NetconfDocumentedException("")));
Optional<WriteTransaction> newWtx = NetconfTransactionCreator.netconfWriteOnlyTransaction(dataBroker);
assertEquals(false, newWtx.isPresent());
verify(dataBroker, times(6)).newWriteOnlyTransaction();
}
@Test
public void testNetconfReadWriteTransaction_success() {
ReadWriteTransaction wtx = mock(ReadWriteTransaction.class);
when(dataBroker.newReadWriteTransaction()).thenReturn(wtx);
Optional<ReadWriteTransaction> newRtx = NetconfTransactionCreator.netconfReadWriteTransaction(dataBroker);
assertEquals(wtx, newRtx.get());
}
@Test
public void testNetconfReadWriteTransaction_NoNetconfException() {
when(dataBroker.newReadWriteTransaction()).thenThrow(RuntimeException.class);
Optional<ReadWriteTransaction> newRtx = NetconfTransactionCreator.netconfReadWriteTransaction(dataBroker);
assertEquals(false, newRtx.isPresent());
verify(dataBroker, times(1)).newReadWriteTransaction();
}
@Test
public void testNetconfReadWriteTransaction_NetconfException() {
when(dataBroker.newReadWriteTransaction()).thenThrow(new RuntimeException(new NetconfDocumentedException("")));
Optional<ReadWriteTransaction> newRtx = NetconfTransactionCreator.netconfReadWriteTransaction(dataBroker);
assertEquals(false, newRtx.isPresent());
verify(dataBroker, times(6)).newReadWriteTransaction();
}
}