2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.mdsal.dom.spi;
10 import static org.junit.jupiter.api.Assertions.assertSame;
11 import static org.mockito.Mockito.doReturn;
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.DOMDataBrokerExtension;
20 import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction;
21 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
22 import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
23 import org.opendaylight.mdsal.dom.api.DOMTransactionChainListener;
25 @ExtendWith(MockitoExtension.class)
26 class ForwardingDOMDataBrokerTest {
27 private interface Extension extends DOMDataBrokerExtension {
32 private DOMTransactionChain chain;
34 private DOMTransactionChainListener chainListener;
36 private Extension extension;
38 private DOMDataBroker domDataBroker;
40 private DOMDataTreeReadTransaction readTx;
42 private DOMDataTreeWriteTransaction writeTx;
45 void basicTest() throws Exception {
46 final var impl = new ForwardingDOMDataBroker() {
48 protected DOMDataBroker delegate() {
53 doReturn(chain).when(domDataBroker).createTransactionChain(chainListener);
54 assertSame(chain, impl.createTransactionChain(chainListener));
56 doReturn(List.of(extension)).when(domDataBroker).supportedExtensions();
57 assertSame(extension, impl.extension(Extension.class));
59 doReturn(readTx).when(domDataBroker).newReadOnlyTransaction();
60 assertSame(readTx, impl.newReadOnlyTransaction());
62 doReturn(writeTx).when(domDataBroker).newWriteOnlyTransaction();
63 assertSame(writeTx, impl.newWriteOnlyTransaction());