39c0d3b34f67159e7de8a1c1fc4a73809ae648b8
[controller.git] / opendaylight / md-sal / sal-rest-connector / src / test / java / org / opendaylight / controller / sal / restconf / impl / test / ControllerContextTest.java
1 package org.opendaylight.controller.sal.restconf.impl.test;
2
3 import static org.junit.Assert.*;
4
5 import java.io.FileNotFoundException;
6 import java.util.Set;
7
8 import org.junit.BeforeClass;
9 import org.junit.Test;
10 import org.opendaylight.controller.sal.restconf.impl.ControllerContext;
11 import org.opendaylight.controller.sal.restconf.impl.InstanceIdWithSchemaNode;
12 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
13 import org.opendaylight.yangtools.yang.model.api.Module;
14 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
15
16 public class ControllerContextTest {
17
18     private static final ControllerContext controllerContext = ControllerContext.getInstance();
19
20     @BeforeClass
21     public static void init() throws FileNotFoundException {
22         Set<Module> allModules = TestUtils.loadModules(ControllerContextTest.class.getResource("/full-versions/yangs").getPath());
23         SchemaContext schemaContext = TestUtils.loadSchemaContext(allModules);
24         controllerContext.setSchemas(schemaContext);
25     }
26
27     @Test
28     public void testToInstanceIdentifierList() throws FileNotFoundException {
29         InstanceIdWithSchemaNode instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:userWithoutClass/foo");
30         assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "userWithoutClass");
31
32         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:userWithoutClass/foo/full-name");
33         assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "full-name");
34
35         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:user/foo/boo");
36         assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "user");
37
38         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:user//boo");
39         assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "user");
40
41         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:users/user/foo");
42         assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "user");
43
44         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:user/null/boo");
45         assertNull(instanceIdentifier);
46
47         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:user/foo");
48         assertNull(instanceIdentifier);
49
50     }
51
52     @Test
53     public void testToInstanceIdentifierContainer() throws FileNotFoundException {
54         InstanceIdWithSchemaNode instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:users");
55         assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "users");
56         assertTrue(instanceIdentifier.getSchemaNode() instanceof ContainerSchemaNode);
57         assertEquals(2, ((ContainerSchemaNode)instanceIdentifier.getSchemaNode()).getChildNodes().size());
58     }
59
60     @Test
61     public void testToInstanceIdentifierChoice() throws FileNotFoundException {
62         InstanceIdWithSchemaNode instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:food/beer");
63         assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "beer");
64         
65         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:food/snack");
66         assertNull(instanceIdentifier);
67         
68         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:food/sports-arena");
69         assertNull(instanceIdentifier);
70         
71         instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:food/snack/sports-arena");
72         assertNull(instanceIdentifier);
73         
74     }
75
76 }