unit tests for NetconfTransactionCreator
[groupbasedpolicy.git] / renderers / ios-xe / src / test / java / org / opendaylight / groupbasedpolicy / renderer / ios_xe_provider / impl / writer / NetconfTransactionCreatorTest.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.writer;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.mockito.Mockito.mock;
13 import static org.mockito.Mockito.times;
14 import static org.mockito.Mockito.verify;
15 import static org.mockito.Mockito.when;
16
17 import java.util.Optional;
18
19 import org.junit.Before;
20 import org.junit.Test;
21 import org.mockito.Mock;
22 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
23 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
24 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
25 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
26 import org.opendaylight.netconf.api.NetconfDocumentedException;
27
28 public class NetconfTransactionCreatorTest {
29
30     @Mock
31     private DataBroker dataBroker;
32
33     @Before
34     public void init() {
35         dataBroker = mock(DataBroker.class);
36         NetconfTransactionCreator.setTimeout(10L);
37     }
38
39     @Test
40     public void testNetconfReadOnlyTransaction_success() {
41         ReadOnlyTransaction rtx = mock(ReadOnlyTransaction.class);
42         when(dataBroker.newReadOnlyTransaction()).thenReturn(rtx);
43         Optional<ReadOnlyTransaction> newRtx = NetconfTransactionCreator.netconfReadOnlyTransaction(dataBroker);
44         assertEquals(rtx, newRtx.get());
45     }
46
47     @Test
48     public void testNetconfReadOnlyTransaction_NoNetconfException() {
49         when(dataBroker.newReadOnlyTransaction()).thenThrow(RuntimeException.class);
50         Optional<ReadOnlyTransaction> newRtx = NetconfTransactionCreator.netconfReadOnlyTransaction(dataBroker);
51         assertEquals(false, newRtx.isPresent());
52         verify(dataBroker, times(1)).newReadOnlyTransaction();
53     }
54
55     @Test
56     public void testNetconfReadOnlyTransaction_NetconfException() {
57         when(dataBroker.newReadOnlyTransaction()).thenThrow(new RuntimeException(new NetconfDocumentedException("")));
58         Optional<ReadOnlyTransaction> newRtx = NetconfTransactionCreator.netconfReadOnlyTransaction(dataBroker);
59         assertEquals(false, newRtx.isPresent());
60         verify(dataBroker, times(6)).newReadOnlyTransaction();
61     }
62
63     @Test
64     public void testNetconfWriteOnlyTransaction_success() {
65         WriteTransaction wtx = mock(WriteTransaction.class);
66         when(dataBroker.newWriteOnlyTransaction()).thenReturn(wtx);
67         Optional<WriteTransaction> newWtx = NetconfTransactionCreator.netconfWriteOnlyTransaction(dataBroker);
68         assertEquals(wtx, newWtx.get());
69     }
70
71     @Test
72     public void testNetconfWriteOnlyTransaction_NoNetconfException() {
73         when(dataBroker.newWriteOnlyTransaction()).thenThrow(RuntimeException.class);
74         Optional<WriteTransaction> newWtx = NetconfTransactionCreator.netconfWriteOnlyTransaction(dataBroker);
75         assertEquals(false, newWtx.isPresent());
76         verify(dataBroker, times(1)).newWriteOnlyTransaction();
77     }
78
79     @Test
80     public void testNetconfWriteOnlyTransaction_NetconfException() {
81         when(dataBroker.newWriteOnlyTransaction()).thenThrow(new RuntimeException(new NetconfDocumentedException("")));
82         Optional<WriteTransaction> newWtx = NetconfTransactionCreator.netconfWriteOnlyTransaction(dataBroker);
83         assertEquals(false, newWtx.isPresent());
84         verify(dataBroker, times(6)).newWriteOnlyTransaction();
85     }
86
87     @Test
88     public void testNetconfReadWriteTransaction_success() {
89         ReadWriteTransaction wtx = mock(ReadWriteTransaction.class);
90         when(dataBroker.newReadWriteTransaction()).thenReturn(wtx);
91         Optional<ReadWriteTransaction> newRtx = NetconfTransactionCreator.netconfReadWriteTransaction(dataBroker);
92         assertEquals(wtx, newRtx.get());
93     }
94
95     @Test
96     public void testNetconfReadWriteTransaction_NoNetconfException() {
97         when(dataBroker.newReadWriteTransaction()).thenThrow(RuntimeException.class);
98         Optional<ReadWriteTransaction> newRtx = NetconfTransactionCreator.netconfReadWriteTransaction(dataBroker);
99         assertEquals(false, newRtx.isPresent());
100         verify(dataBroker, times(1)).newReadWriteTransaction();
101     }
102
103     @Test
104     public void testNetconfReadWriteTransaction_NetconfException() {
105         when(dataBroker.newReadWriteTransaction()).thenThrow(new RuntimeException(new NetconfDocumentedException("")));
106         Optional<ReadWriteTransaction> newRtx = NetconfTransactionCreator.netconfReadWriteTransaction(dataBroker);
107         assertEquals(false, newRtx.isPresent());
108         verify(dataBroker, times(6)).newReadWriteTransaction();
109     }
110 }