[ODTN]Add UnitTest for OPENCONFIG Handler
Change-Id: Ifc07c45abbc2d8d81f7d50f8ba2c8a3188ae377a
diff --git a/apps/odtn/api/src/test/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelAssignmentsHandlerTest.java b/apps/odtn/api/src/test/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelAssignmentsHandlerTest.java
new file mode 100755
index 0000000..2593593
--- /dev/null
+++ b/apps/odtn/api/src/test/java/org/onosproject/odtn/utils/openconfig/OpenConfigLogicalChannelAssignmentsHandlerTest.java
@@ -0,0 +1,217 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.odtn.utils.openconfig;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.yang.model.ResourceId;
+import org.onosproject.yang.runtime.AnnotatedNodeInfo;
+
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanassignmenttop.DefaultLogicalChannelAssignments;
+import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.openconfigterminaldevice.terminallogicalchanassignmenttop.logicalchannelassignments.DefaultAssignment;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * UnitTest class for OpenConfigLogicalChannelAssignmentsHandler.
+ */
+public class OpenConfigLogicalChannelAssignmentsHandlerTest {
+ // parent Handler
+ OpenConfigChannelHandler parent;
+
+ // expected ResourceId
+ ResourceId rid;
+
+ /**
+ * Set up method for UnitTest.
+ */
+ @Before
+ public void setUp() {
+ // parent Handler set up
+ // create <terminal-device xmlns="http://openconfig.net/yang/terminal-device">
+ // </terminal-device>
+ OpenConfigTerminalDeviceHandler terminalDevice = new OpenConfigTerminalDeviceHandler();
+
+ // add <logical-channels></logical-channels>
+ OpenConfigLogicalChannelsHandler logicalChannels =
+ new OpenConfigLogicalChannelsHandler(terminalDevice);
+
+ // add <channel><index>1</index></channel>
+ parent = new OpenConfigChannelHandler(1, logicalChannels);
+
+ // expected ResourceId set up
+ rid = ResourceId.builder()
+ .addBranchPointSchema("terminal-device", "http://openconfig.net/yang/terminal-device")
+ .addBranchPointSchema("logical-channels", "http://openconfig.net/yang/terminal-device")
+ .addBranchPointSchema("channel", "http://openconfig.net/yang/terminal-device")
+ .addKeyLeaf("index", "http://openconfig.net/yang/terminal-device", 1)
+ .addBranchPointSchema("logical-channel-assignments", "http://openconfig.net/yang/terminal-device")
+ .build();
+ }
+
+ /**
+ * UnitTest method for getModelObject.
+ */
+ @Test
+ public void testGetModelObject() {
+ // test Handler
+ OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments =
+ new OpenConfigLogicalChannelAssignmentsHandler(parent);
+
+ // expected ModelObject
+ DefaultLogicalChannelAssignments modelObject = new DefaultLogicalChannelAssignments();
+
+ assertEquals("[NG]getModelObject:Return is not an expected ModelObject.\n",
+ modelObject, logicalChannelAssignments.getModelObject());
+ }
+
+ /**
+ * UnitTest method for setResourceId.
+ */
+ @Test
+ public void testSetResourceId() {
+ // call setResourceId
+ OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments =
+ new OpenConfigLogicalChannelAssignmentsHandler(parent);
+
+ // get resourceId
+ ResourceId resourceId = null;
+ try {
+ Field field = OpenConfigObjectHandler.class.getDeclaredField("resourceId");
+ field.setAccessible(true);
+ resourceId = (ResourceId) field.get(logicalChannelAssignments);
+ } catch (NoSuchFieldException e) {
+ Assert.fail("[NG]setResourceId:ResourceId does not exist.\n" + e);
+ } catch (IllegalAccessException e) {
+ Assert.fail("[NG]setResourceId:Access to ResourceId is illegal.\n" + e);
+ }
+
+ assertEquals("[NG]setResourceId:Set ResourceId is not an expected one.\n",
+ rid, resourceId);
+ }
+
+ /**
+ * UnitTest method for getResourceId.
+ */
+ @Test
+ public void testGetResourceId() {
+ // test Handler
+ OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments =
+ new OpenConfigLogicalChannelAssignmentsHandler(parent);
+
+ assertEquals("[NG]getResourceId:Return is not an expected ResourceId.\n",
+ rid, logicalChannelAssignments.getResourceId());
+ }
+
+ /**
+ * UnitTest method for getResourceIdBuilder.
+ */
+ @Test
+ public void testGetResourceIdBuilder() {
+ // test Handler
+ OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments =
+ new OpenConfigLogicalChannelAssignmentsHandler(parent);
+
+ assertEquals("[NG]getResourceIdBuilder:Return is not an expected ResourceIdBuilder.\n",
+ rid, logicalChannelAssignments.getResourceIdBuilder().build());
+ }
+
+ /**
+ * UnitTest method for addAnnotation.
+ */
+ @Test
+ public void testAddAnnotation() {
+ // test Handler
+ OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments =
+ new OpenConfigLogicalChannelAssignmentsHandler(parent);
+
+ // call addAnnotation
+ logicalChannelAssignments.addAnnotation("name", "value");
+
+ // get annotatedNodeInfos
+ List<AnnotatedNodeInfo> annotatedNodeInfos = new ArrayList<AnnotatedNodeInfo>();
+ try {
+ Field field = OpenConfigObjectHandler.class.getDeclaredField("annotatedNodeInfos");
+ field.setAccessible(true);
+ annotatedNodeInfos = (List<AnnotatedNodeInfo>) field.get(logicalChannelAssignments);
+ } catch (NoSuchFieldException e) {
+ Assert.fail("[NG]addAnnotation:List of AnnotatedNodeInfo does not exist.\n" + e);
+ } catch (IllegalAccessException e) {
+ Assert.fail("[NG]addAnnotation:Access to list of AnnotatedNodeInfo is illegal.\n" + e);
+ }
+
+ assertEquals("[NG]addAnnotation:List size of AnnotatedNodeInfo is invalid.\n",
+ 1, annotatedNodeInfos.size());
+ assertEquals("[NG]addAnnotation:ResourceId of AnnotatedNodeInfo is not an expected one.\n",
+ rid, annotatedNodeInfos.get(0).resourceId());
+ assertEquals("[NG]addAnnotation:List size of Annotation is invalid.\n",
+ 1, annotatedNodeInfos.get(0).annotations().size());
+ assertEquals("[NG]addAnnotation:Name of Annotation is not an expected one.\n",
+ "name", annotatedNodeInfos.get(0).annotations().get(0).name());
+ assertEquals("[NG]addAnnotation:Value of Annotation is not an expected one.\n",
+ "value", annotatedNodeInfos.get(0).annotations().get(0).value());
+ }
+
+ /**
+ * UnitTest method for getAnnotatedNodeInfoList.
+ */
+ @Test
+ public void testGetAnnotatedNodeInfoList() {
+ // test Handler
+ OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments =
+ new OpenConfigLogicalChannelAssignmentsHandler(parent);
+
+ // set list of AnnotatedNodeInfo
+ logicalChannelAssignments.addAnnotation("name", "value");
+
+ assertEquals("[NG]getAnnotatedNodeInfoList:List size of AnnotatedNodeInfo is invalid.\n",
+ 1, logicalChannelAssignments.getAnnotatedNodeInfoList().size());
+ assertEquals("[NG]getAnnotatedNodeInfoList:ResourceId of AnnotatedNodeInfo is not an expected one.\n",
+ rid, logicalChannelAssignments.getAnnotatedNodeInfoList().get(0).resourceId());
+ assertEquals("[NG]getAnnotatedNodeInfoList:List size of Annotation is invalid.\n",
+ 1, logicalChannelAssignments.getAnnotatedNodeInfoList().get(0).annotations().size());
+ assertEquals("[NG]getAnnotatedNodeInfoList:Name of Annotation is not an expected one.\n",
+ "name", logicalChannelAssignments.getAnnotatedNodeInfoList().get(0).annotations().get(0).name());
+ assertEquals("[NG]getAnnotatedNodeInfoList:Value of Annotation is not an expected one.\n",
+ "value", logicalChannelAssignments.getAnnotatedNodeInfoList().get(0).annotations().get(0).value());
+ }
+
+ /**
+ * UnitTest method for addAssignment.
+ */
+ @Test
+ public void testAddAssignment() {
+ // test Handler
+ OpenConfigLogicalChannelAssignmentsHandler logicalChannelAssignments =
+ new OpenConfigLogicalChannelAssignmentsHandler(parent);
+
+ // call addAssignment
+ OpenConfigAssignmentHandler assignment = new OpenConfigAssignmentHandler(2, logicalChannelAssignments);
+
+ // expected ModelObject
+ DefaultLogicalChannelAssignments modelObject = new DefaultLogicalChannelAssignments();
+ DefaultAssignment assign = new DefaultAssignment();
+ assign.index(2);
+ modelObject.addToAssignment(assign);
+
+ assertEquals("[NG]addAssignment:ModelObject(Assignment added) is not an expected one.\n",
+ modelObject, logicalChannelAssignments.getModelObject());
+ }
+}