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;
23 @ExtendWith(MockitoExtension.class)
24 class ForwardingDOMDataBrokerTest {
25 private interface Extension extends DOMDataBroker.Extension {
30 private DOMTransactionChain chain;
32 private Extension extension;
34 private DOMDataBroker domDataBroker;
36 private DOMDataTreeReadTransaction readTx;
38 private DOMDataTreeWriteTransaction writeTx;
41 void basicTest() throws Exception {
42 final var impl = new ForwardingDOMDataBroker() {
44 protected DOMDataBroker delegate() {
49 doReturn(chain).when(domDataBroker).createTransactionChain();
50 assertSame(chain, impl.createTransactionChain());
52 doReturn(List.of(extension)).when(domDataBroker).supportedExtensions();
53 assertSame(extension, impl.extension(Extension.class));
55 doReturn(readTx).when(domDataBroker).newReadOnlyTransaction();
56 assertSame(readTx, impl.newReadOnlyTransaction());
58 doReturn(writeTx).when(domDataBroker).newWriteOnlyTransaction();
59 assertSame(writeTx, impl.newWriteOnlyTransaction());