/* * 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(); } }