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.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;
24 @ExtendWith(MockitoExtension.class)
25 class ForwardingDOMDataBrokerTest {
26 private interface Extension extends DOMDataBroker.Extension {
31 private DOMTransactionChain chain;
33 private DOMTransactionChainListener chainListener;
35 private Extension extension;
37 private DOMDataBroker domDataBroker;
39 private DOMDataTreeReadTransaction readTx;
41 private DOMDataTreeWriteTransaction writeTx;
44 void basicTest() throws Exception {
45 final var impl = new ForwardingDOMDataBroker() {
47 protected DOMDataBroker delegate() {
52 doReturn(chain).when(domDataBroker).createTransactionChain(chainListener);
53 assertSame(chain, impl.createTransactionChain(chainListener));
55 doReturn(List.of(extension)).when(domDataBroker).supportedExtensions();
56 assertSame(extension, impl.extension(Extension.class));
58 doReturn(readTx).when(domDataBroker).newReadOnlyTransaction();
59 assertSame(readTx, impl.newReadOnlyTransaction());
61 doReturn(writeTx).when(domDataBroker).newWriteOnlyTransaction();
62 assertSame(writeTx, impl.newWriteOnlyTransaction());