Rename DOMDataBrokerExtension to DOMDataBroker.Extension
[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 import org.opendaylight.mdsal.dom.api.DOMTransactionChainListener;
23
24 @ExtendWith(MockitoExtension.class)
25 class ForwardingDOMDataBrokerTest {
26     private interface Extension extends DOMDataBroker.Extension {
27         // Nothing else
28     }
29
30     @Mock
31     private DOMTransactionChain chain;
32     @Mock
33     private DOMTransactionChainListener chainListener;
34     @Mock
35     private Extension extension;
36     @Mock
37     private DOMDataBroker domDataBroker;
38     @Mock
39     private DOMDataTreeReadTransaction readTx;
40     @Mock
41     private DOMDataTreeWriteTransaction writeTx;
42
43     @Test
44     void basicTest() throws Exception {
45         final var impl = new ForwardingDOMDataBroker() {
46             @Override
47             protected DOMDataBroker delegate() {
48                 return domDataBroker;
49             }
50         };
51
52         doReturn(chain).when(domDataBroker).createTransactionChain(chainListener);
53         assertSame(chain, impl.createTransactionChain(chainListener));
54
55         doReturn(List.of(extension)).when(domDataBroker).supportedExtensions();
56         assertSame(extension, impl.extension(Extension.class));
57
58         doReturn(readTx).when(domDataBroker).newReadOnlyTransaction();
59         assertSame(readTx, impl.newReadOnlyTransaction());
60
61         doReturn(writeTx).when(domDataBroker).newWriteOnlyTransaction();
62         assertSame(writeTx, impl.newWriteOnlyTransaction());
63     }
64 }