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.broker;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
14 import java.util.ArrayList;
15 import java.util.HashMap;
16 import java.util.List;
18 import org.junit.Test;
19 import org.opendaylight.mdsal.dom.api.DOMRpcImplementation;
20 import org.opendaylight.mdsal.dom.broker.DOMRpcRouter.OperationInvocation;
21 import org.opendaylight.mdsal.dom.broker.util.TestModel;
22 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
23 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
25 public class UnknownDOMRpcRoutingTableEntryTest extends TestUtils {
26 private static final List<DOMRpcImplementation> TEST_LIST = new ArrayList<>();
29 public void basicTest() throws Exception {
30 final Map<YangInstanceIdentifier, List<DOMRpcImplementation>> emptyImpls = new HashMap<>();
31 final List<YangInstanceIdentifier> addList1 = new ArrayList<>();
32 final List<YangInstanceIdentifier> addList2 = new ArrayList<>();
33 final DOMRpcImplementation testClass = getTestRpcImplementation();
34 final UnknownDOMRpcRoutingTableEntry test = new UnknownDOMRpcRoutingTableEntry(SchemaPath.ROOT, emptyImpls);
36 TEST_LIST.add(testClass);
37 emptyImpls.put(YangInstanceIdentifier.EMPTY, TEST_LIST);
40 assertNotNull(test.newInstance(emptyImpls));
41 assertNotNull(OperationInvocation.invoke(test, TEST_CONTAINER));
42 assertNotNull(test.getImplementations());
43 assertEquals(test.getImplementations(YangInstanceIdentifier.EMPTY), TEST_LIST);
44 assertTrue(test.containsContext(YangInstanceIdentifier.EMPTY));
45 assertTrue(test.registeredIdentifiers().contains(YangInstanceIdentifier.EMPTY));
47 addList1.add(YangInstanceIdentifier.EMPTY);
48 addList1.add(YangInstanceIdentifier.of(TestModel.TEST_QNAME));
49 addList2.add(YangInstanceIdentifier.of(TestModel.TEST2_QNAME));
51 final AbstractDOMRpcRoutingTableEntry tst = (AbstractDOMRpcRoutingTableEntry) test.add(testClass, addList1);
52 final AbstractDOMRpcRoutingTableEntry tst1 = (AbstractDOMRpcRoutingTableEntry) tst.add(testClass, addList2);
53 final AbstractDOMRpcRoutingTableEntry tst2 = (AbstractDOMRpcRoutingTableEntry) tst1.remove(testClass, addList1);
55 assertEquals(1, test.getImplementations().size());
56 assertEquals(2, tst.getImplementations().size());
57 assertEquals(3, tst1.getImplementations().size());
58 assertNotNull(tst2.getImplementations());
59 assertEquals(2, tst2.getImplementations().size());