77a0eb2b154d82ce79051288084453d35ea57ca7
[mdsal.git] / dom / mdsal-dom-spi / src / test / java / org / opendaylight / mdsal / dom / spi / ForwardingDOMDataBrokerTest.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 package org.opendaylight.mdsal.dom.spi;
9
10 import static org.junit.jupiter.api.Assertions.assertSame;
11 import static org.mockito.Mockito.doReturn;
12
13 import java.util.List;
14 import org.junit.jupiter.api.Test;
15 import org.junit.jupiter.api.extension.ExtendWith;
16 import org.mockito.Mock;
17 import org.mockito.junit.jupiter.MockitoExtension;
18 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
19 import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction;
20 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
21 import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
22
23 @ExtendWith(MockitoExtension.class)
24 class ForwardingDOMDataBrokerTest {
25     private interface Extension extends DOMDataBroker.Extension {
26         // Nothing else
27     }
28
29     @Mock
30     private DOMTransactionChain chain;
31     @Mock
32     private Extension extension;
33     @Mock
34     private DOMDataBroker domDataBroker;
35     @Mock
36     private DOMDataTreeReadTransaction readTx;
37     @Mock
38     private DOMDataTreeWriteTransaction writeTx;
39
40     @Test
41     void basicTest() throws Exception {
42         final var impl = new ForwardingDOMDataBroker() {
43             @Override
44             protected DOMDataBroker delegate() {
45                 return domDataBroker;
46             }
47         };
48
49         doReturn(chain).when(domDataBroker).createTransactionChain();
50         assertSame(chain, impl.createTransactionChain());
51
52         doReturn(List.of(extension)).when(domDataBroker).supportedExtensions();
53         assertSame(extension, impl.extension(Extension.class));
54
55         doReturn(readTx).when(domDataBroker).newReadOnlyTransaction();
56         assertSame(readTx, impl.newReadOnlyTransaction());
57
58         doReturn(writeTx).when(domDataBroker).newWriteOnlyTransaction();
59         assertSame(writeTx, impl.newWriteOnlyTransaction());
60     }
61 }