*/\r
package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
\r
+import org.junit.runner.RunWith;\r
+import static org.powermock.api.mockito.PowerMockito.verifyPrivate;\r
+import static org.powermock.api.mockito.PowerMockito.doNothing;\r
+import static org.powermock.api.mockito.PowerMockito.spy;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
+import org.powermock.modules.junit4.PowerMockRunner;\r
+\r
import junit.framework.TestCase;\r
import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
-import static org.mockito.Mockito.*;\r
+\r
import static org.junit.Assert.*;\r
import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeType;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.definitions.PropertyDefinition;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.definitions.PropertyDefinition;\r
\r
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
-\r
import java.util.List;\r
\r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class NodeDefinitionCheckTest extends TestCase {\r
+import java.util.Collection;\r
+import java.util.Iterator;\r
+import java.util.ArrayList;\r
+import java.util.ListIterator;\r
\r
- private Node node;\r
- private NodeDefinitionCheck nodeDefinitionCheckTest;\r
- @Before\r
- public void setUp() throws Exception {\r
- node = mock(Node.class);\r
- nodeDefinitionCheckTest = mock(NodeDefinitionCheck.class);\r
+import java.lang.reflect.Method; \r
+import static org.mockito.Mockito.*;\r
\r
+@RunWith(PowerMockRunner.class) \r
+@PrepareForTest(NodeDefinitionCheck.class) \r
+public class NodeDefinitionCheckTest{\r
+ private NodeDefinitionCheck nodeDefinitionCheck;\r
+ private DataBroker dataBroker;\r
+ private List<NodeDefinition> nodeDefinitionList;\r
+ private Node node;\r
+ private NodeDefinition nodeDefinition;\r
+ private List<Property> nodeProperties;\r
+ private List<PropertyDefinition> nodePropertyDefinitions;\r
+ private Property property;\r
+ private PropertyDefinition propertyDefinition;\r
+ //private static final Logger LOG = LoggerFactory.getLogger(NodeDefinitionCheck.class);\r
+ @org.junit.Before\r
+ public void setUp() throws Exception {\r
+ nodeDefinition = mock(NodeDefinition.class);\r
+ nodeDefinitionList = new ArrayList<NodeDefinition>(3);\r
+ // LOG = mock(Logger.class);\r
+ node = mock(Node.class);\r
+ dataBroker = mock(DataBroker.class);\r
+ nodeDefinitionCheck = new NodeDefinitionCheck(dataBroker);\r
+ property = mock(Property.class);\r
+ propertyDefinition = mock(PropertyDefinition.class);\r
+ nodeProperties = new ArrayList<Property>(3);\r
+ nodePropertyDefinitions = new ArrayList<PropertyDefinition>(3);\r
}\r
-\r
- @Test\r
- public void testCheckNodeDefinition() throws Exception {\r
- nodeDefinitionCheckTest.CheckNodeDefinition(node);\r
- Assert.assertNotNull(nodeDefinitionCheckTest);\r
- verify(nodeDefinitionCheckTest).CheckNodeDefinition(node);\r
-\r
+ @org.junit.Test\r
+ public void testcheckConnectionDefinition() throws Exception {\r
+ CheckedFuture nodedefinitionFuture = mock(CheckedFuture.class);\r
+ ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);\r
+ when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);\r
+ when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(nodedefinitionFuture);\r
+ //branch nodeDefinitionList null\r
+ Assert.assertEquals(nodeDefinitionCheck.CheckNodeDefinition(node),"This type of Node has not been defined.");\r
+ \r
+ //use reflact test private checkProperty\r
+ Method testcheckProperty = nodeDefinitionCheck.getClass().getDeclaredMethod("checkProperty",List.class,List.class); \r
+ testcheckProperty.setAccessible(true);\r
+ //branch1 nodeProperties null, nodePropertyDefinition null\r
+ Assert.assertNull(testcheckProperty.invoke(nodeDefinitionCheck,nodeProperties,nodePropertyDefinitions));\r
+ //branch2 \r
+ nodeProperties.add(property);\r
+ nodePropertyDefinitions.add(propertyDefinition);\r
+ PropertyName propertyName1 = mock(PropertyName.class);\r
+ PropertyName propertyName2 = mock(PropertyName.class);\r
+ when(property.getPropertyName()).thenReturn(propertyName1);\r
+ when(propertyDefinition.getPropertyName()).thenReturn(propertyName2);\r
+ Assert.assertEquals(testcheckProperty.invoke(nodeDefinitionCheck,nodeProperties,nodePropertyDefinitions),"The property"+property.getPropertyName().toString()+"has not been defined.");\r
+ //branch3\r
+ when(property.getPropertyName()).thenReturn(propertyName1);\r
+ PropertyName propertyName3 = propertyName1;\r
+ when(propertyDefinition.getPropertyName()).thenReturn(propertyName3);\r
+ PropertyValues propertyValues = mock(PropertyValues.class);\r
+ when(property.getPropertyValues()).thenReturn(propertyValues);\r
+ Assert.assertNotNull(property.getPropertyValues());\r
+ Assert.assertNull(propertyDefinition.getPropertyValueType());\r
+ //dataBroker test\r
+ verify(dataBroker).newReadOnlyTransaction();\r
+ verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));\r
+ verifyPrivate(nodeDefinitionCheck).invoke("fetchNodeDefinitions");\r
}\r
}
\ No newline at end of file