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