Bug 7433 - Remove use of YangSchemaSourceImpl from restconf tests
[netconf.git] / restconf / sal-rest-connector / src / test / java / org / opendaylight / netconf / sal / restconf / impl / InstanceIdentifierCodecImplTest.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
9 package org.opendaylight.netconf.sal.restconf.impl;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertNull;
13
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.controller.md.sal.rest.common.TestRestconfUtils;
17 import org.opendaylight.netconf.sal.restconf.impl.RestCodec.InstanceIdentifierCodecImpl;
18 import org.opendaylight.yangtools.concepts.Codec;
19 import org.opendaylight.yangtools.yang.common.QName;
20 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
21 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
22 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
23
24 public class InstanceIdentifierCodecImplTest {
25
26     private Codec<IdentityValuesDTO, YangInstanceIdentifier> instanceIdentifierDTO;
27     private YangInstanceIdentifier instanceIdentifierBadNamespace;
28     private YangInstanceIdentifier instanceIdentifierOKList;
29     private YangInstanceIdentifier instanceIdentifierOKLeafList;
30     private SchemaContext schemaContext;
31
32     @Before
33     public void setUp() throws Exception {
34         this.schemaContext =
35                 YangParserTestUtils.parseYangSources(TestRestconfUtils.loadFiles("/restconf/parser/deserializer"));
36         this.instanceIdentifierDTO = new InstanceIdentifierCodecImpl(null);
37         ControllerContext.getInstance().setGlobalSchema(this.schemaContext);
38
39         final QName baseQName = QName.create("deserializer:test", "2016-06-06", "deserializer-test");
40         final QName contA = QName.create(baseQName, "contA");
41         final QName leafList = QName.create(baseQName, "leaf-list-A");
42
43         this.instanceIdentifierOKLeafList = YangInstanceIdentifier.builder()
44                 .node(contA)
45                 .node(new YangInstanceIdentifier.NodeWithValue<>(leafList, "instance"))
46                 .build();
47
48         this.instanceIdentifierOKList = YangInstanceIdentifier.builder()
49                 .node(new YangInstanceIdentifier.NodeIdentifierWithPredicates(
50                         QName.create(baseQName, "list-one-key"),
51                         QName.create(QName.create(baseQName, "list-one-key"), "name"), "value"))
52                 .build();
53
54         this.instanceIdentifierBadNamespace = YangInstanceIdentifier.builder()
55                 .nodeWithKey(QName.create("nonexistent:module", "2016-10-17", "nonexistent-1"),
56                         QName.create("nonexistent:module", "2016-10-17", "nonexistent"),
57                         "value")
58                 .build();
59     }
60
61     @Test
62     public void testSerializeDeserializeList() throws Exception {
63         final IdentityValuesDTO valuesDTO =
64                 this.instanceIdentifierDTO.serialize(this.instanceIdentifierOKList);
65
66         final YangInstanceIdentifier deserializedIdentifier =
67                 this.instanceIdentifierDTO.deserialize(valuesDTO);
68         assertEquals(this.instanceIdentifierOKList, deserializedIdentifier);
69     }
70
71     @Test
72     public void testSerializeDeserializeLeafList() throws Exception {
73         final IdentityValuesDTO valuesDTO =
74                 this.instanceIdentifierDTO.serialize(this.instanceIdentifierOKLeafList);
75
76         final YangInstanceIdentifier deserializedIdentifier =
77                 this.instanceIdentifierDTO.deserialize(valuesDTO);
78         assertEquals(this.instanceIdentifierOKLeafList, deserializedIdentifier);
79     }
80
81     @Test
82     public void testSerializeDeserializeBadModuleNamespace() throws Exception {
83         final IdentityValuesDTO valuesDTO =
84                 this.instanceIdentifierDTO.serialize(this.instanceIdentifierBadNamespace);
85         assertEquals("nonexistent-1", valuesDTO.getValuesWithNamespaces().get(0).getValue());
86         assertEquals("nonexistent:module", valuesDTO.getValuesWithNamespaces().get(0).getNamespace());
87
88         final YangInstanceIdentifier deserializedIdentifier =
89                 this.instanceIdentifierDTO.deserialize(valuesDTO);
90         assertNull(deserializedIdentifier);
91     }
92 }