1 package org.opendaylight.controller.sal.restconf.impl.test;
3 import static org.junit.Assert.*;
5 import java.io.FileNotFoundException;
8 import org.junit.BeforeClass;
10 import org.mockito.Mock;
12 import static org.mockito.Mockito.*;
14 import org.opendaylight.controller.sal.core.api.mount.MountInstance;
15 import org.opendaylight.controller.sal.core.api.mount.MountService;
16 import org.opendaylight.controller.sal.restconf.impl.ControllerContext;
17 import org.opendaylight.controller.sal.restconf.impl.InstanceIdWithSchemaNode;
18 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
19 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
20 import org.opendaylight.yangtools.yang.model.api.Module;
21 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
23 public class ControllerContextTest {
25 private static final ControllerContext controllerContext = ControllerContext.getInstance();
28 public static void init() throws FileNotFoundException {
29 Set<Module> allModules = TestUtils.loadModules(ControllerContextTest.class.getResource("/full-versions/yangs")
31 SchemaContext schemaContext = TestUtils.loadSchemaContext(allModules);
32 controllerContext.setSchemas(schemaContext);
36 public void testToInstanceIdentifierList() throws FileNotFoundException {
37 InstanceIdWithSchemaNode instanceIdentifier = controllerContext
38 .toInstanceIdentifier("simple-nodes:userWithoutClass/foo");
39 assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "userWithoutClass");
41 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:userWithoutClass/foo/full-name");
42 assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "full-name");
44 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:user/foo/boo");
45 assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "user");
47 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:user//boo");
48 assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "user");
50 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:users/user/foo");
51 assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "user");
53 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:user/null/boo");
54 assertNull(instanceIdentifier);
56 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:user/foo");
57 assertNull(instanceIdentifier);
62 public void testToInstanceIdentifierMountPoint() throws FileNotFoundException {
64 String mountPointPath = "simple-nodes:user/foo/boo";
65 String nestedPath = "simple-nodes:user/foo/boo/simple-nodes:users";
66 InstanceIdWithSchemaNode mountInstanceIdentifier = controllerContext.toInstanceIdentifier(mountPointPath);
67 assertEquals("user", mountInstanceIdentifier.getSchemaNode().getQName().getLocalName());
69 MountInstance mountInstance = mock(MountInstance.class);
70 MountService mountService = mock(MountService.class);
72 controllerContext.setMountService(mountService);
73 // when(mountService.getMountPoint(any(InstanceIdentifier.class))).thenReturn(null);
75 when(mountService.getMountPoint(eq(mountInstanceIdentifier.getInstanceIdentifier()))).thenReturn(
78 when(mountInstance.getSchemaContext()).thenReturn(controllerContext.getGlobalSchema());
80 InstanceIdWithSchemaNode mountedInstanceIdentifier = controllerContext.toInstanceIdentifier(nestedPath);
81 assertEquals("users", mountedInstanceIdentifier.getSchemaNode().getQName().getLocalName());
83 mountedInstanceIdentifier = controllerContext.toInstanceIdentifier(mountPointPath + "/" + mountPointPath);
84 assertEquals("user", mountedInstanceIdentifier.getSchemaNode().getQName().getLocalName());
86 mountedInstanceIdentifier = controllerContext
87 .toInstanceIdentifier("simple-nodes:user/foo/var/simple-nodes:users");
88 assertNull(mountedInstanceIdentifier);
91 controllerContext.setMountService(null);
97 public void testToInstanceIdentifierContainer() throws FileNotFoundException {
98 InstanceIdWithSchemaNode instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:users");
99 assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "users");
100 assertTrue(instanceIdentifier.getSchemaNode() instanceof ContainerSchemaNode);
101 assertEquals(2, ((ContainerSchemaNode) instanceIdentifier.getSchemaNode()).getChildNodes().size());
105 public void testToInstanceIdentifierChoice() throws FileNotFoundException {
106 InstanceIdWithSchemaNode instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:food/beer");
107 assertEquals(instanceIdentifier.getSchemaNode().getQName().getLocalName(), "beer");
109 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:food/snack");
110 assertNull(instanceIdentifier);
112 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:food/sports-arena");
113 assertNull(instanceIdentifier);
115 instanceIdentifier = controllerContext.toInstanceIdentifier("simple-nodes:food/snack/sports-arena");
116 assertNull(instanceIdentifier);