MDSAL-310 Binding v2 codec - Instance identifier should not reference choice/case.
[mdsal.git] / binding2 / mdsal-binding2-dom-codec / src / test / java / org / opendaylight / mdsal / binding / javav2 / dom / codec / impl / InstanceIdentifierSerializeDeserializeTest.java
1 /*
2  * Copyright (c) 2018 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.binding.javav2.dom.codec.impl;
9
10 import static org.junit.Assert.assertEquals;
11
12 import javassist.ClassPool;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.opendaylight.mdsal.binding.javav2.dom.codec.generator.impl.StreamWriterGenerator;
16 import org.opendaylight.mdsal.binding.javav2.runtime.javassist.JavassistUtils;
17 import org.opendaylight.mdsal.binding.javav2.spec.base.InstanceIdentifier;
18 import org.opendaylight.mdsal.gen.javav2.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.data.ChoiceContainer;
19 import org.opendaylight.mdsal.gen.javav2.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.data.choice_container.identifier.simple.SimpleId;
20 import org.opendaylight.yangtools.yang.common.QName;
21 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
22
23 public class InstanceIdentifierSerializeDeserializeTest extends AbstractBindingRuntimeTest {
24     private static final InstanceIdentifier<SimpleId> BA_SIMPLE_ID = InstanceIdentifier
25             .builder(ChoiceContainer.class).child(SimpleId.class).build();
26
27     private static final QName CHOICE_CONTAINER_QNAME = ChoiceContainer.QNAME;
28     private static final QName SIMPLE_ID_QNAME = SimpleId.QNAME;
29
30
31     private static final YangInstanceIdentifier BI_SIMPLE_ID_PATH = YangInstanceIdentifier
32         .of(CHOICE_CONTAINER_QNAME).node(SIMPLE_ID_QNAME);
33
34     private BindingNormalizedNodeCodecRegistry registry;
35
36     @Override
37     @Before
38     public void setup() {
39         super.setup();
40         final JavassistUtils utils = JavassistUtils.forClassPool(ClassPool.getDefault());
41         registry = new BindingNormalizedNodeCodecRegistry(StreamWriterGenerator.create(utils));
42         registry.onBindingRuntimeContextUpdated(getRuntimeContext());
43     }
44
45     @Test
46     public void testYangIIToBindingAwareII() {
47         final InstanceIdentifier<?> instanceIdentifier = registry.fromYangInstanceIdentifier(BI_SIMPLE_ID_PATH);
48         assertEquals(BA_SIMPLE_ID, instanceIdentifier);
49     }
50
51     @Test
52     public void testBindingAwareIIToYangIContainer() {
53         final YangInstanceIdentifier yangInstanceIdentifier = registry.toYangInstanceIdentifier(BA_SIMPLE_ID);
54         assertEquals(BI_SIMPLE_ID_PATH, yangInstanceIdentifier);
55     }
56 }