Modify pom.xml and nemo-impl vnspacemanager test files 33/30533/1
authorWangJunfei <jfwang1993@163.com>
Thu, 3 Dec 2015 09:26:23 +0000 (17:26 +0800)
committerWangJunfei <jfwang1993@163.com>
Thu, 3 Dec 2015 09:27:47 +0000 (17:27 +0800)
Change-Id: I3f122116343dbeb2b348438f5b88bb6e094fe7f9
Signed-off-by: WangJunfei <jfwang1993@163.com>
nemo-impl/pom.xml
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/syntaxcheck/ConnectionDefinitionCheckTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/syntaxcheck/FlowDefinitionCheckTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/syntaxcheck/NodeDefinitionCheckTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/syntaxcheck/OperationDefinitionCheckTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/syntaxcheck/ResultDefinitionCheckTest.java

index 2759e63a568261112a14438ad3d4756368b47c56..d9524610f6393eda547924205be0c1629f1145d5 100644 (file)
@@ -26,6 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <jacoco.version>0.7.2.201409121644</jacoco.version>
     <sonar.jacoco.reportPath>target/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
     <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
+        <powermock.version>1.4.10</powermock.version>
   </properties>
 
   <dependencies>
@@ -71,18 +72,46 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <artifactId>junit</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.jettison</groupId>
+      <artifactId>jettison</artifactId>
+    </dependency>
+       <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-all</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-module-junit4</artifactId>
+      <version>${powermock.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.jettison</groupId>
-      <artifactId>jettison</artifactId>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-api-mockito</artifactId>
+      <version>${powermock.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-api-mockito</artifactId>
+      <version>${powermock.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <scope>test</scope>
     </dependency>
   </dependencies>
 
index f493fe746625ab3d9e8d6e4da253136943a44e57..20e0fda6f01c436f0b7a6ad984bd69944524ef1a 100644 (file)
-/*\r
- * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
-\r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\r
-\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\r
-\r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class ConnectionDefinitionCheckTest extends TestCase {\r
-\r
-    private ConnectionDefinitionCheck connectionDefinitionCheckTest;\r
-    private Connection connection;\r
-    @Before\r
-    public void setUp() {\r
-        connectionDefinitionCheckTest = mock(ConnectionDefinitionCheck.class);\r
-        connection = mock(Connection.class);\r
-\r
-    }\r
-    @Test\r
-    public void testCheckConnectionDefinition() {\r
-        connection.getProperty();\r
-        connectionDefinitionCheckTest.CheckConnectionDefinition(connection);\r
-        Assert.assertNotNull(connectionDefinitionCheckTest);\r
-        verify(connectionDefinitionCheckTest).CheckConnectionDefinition(connection);\r
-\r
-\r
-    }\r
+/*
+ * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;
+
+import org.junit.runner.RunWith;
+import static org.powermock.api.mockito.PowerMockito.verifyPrivate;
+import static org.powermock.api.mockito.PowerMockito.doNothing;
+import static org.powermock.api.mockito.PowerMockito.spy;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.PropertyName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.ConnectionDefinitions;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.definitions.ConnectionDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.Property;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.definitions.PropertyDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.definitions.PropertyDefinition.PropertyValueType;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import com.google.common.base.Optional;
+import com.google.common.base.Function;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.*;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+
+import java.lang.reflect.Method; 
+import static org.mockito.Mockito.*;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ConnectionDefinitionCheck.class)
+public class ConnectionDefinitionCheckTest {
+    private ConnectionDefinitionCheck connectionDefinitionCheck;
+    private DataBroker dataBroker;
+       private ConnectionDefinition connectionDefinition;
+    private List<ConnectionDefinition> connectionDefinitionList;
+    private Connection connection;
+       private List<Property> connectionProperty;
+       private List<PropertyDefinition> propertyDefinitionList;
+       private Property property;
+       private PropertyDefinition propertyDefinition;
+               
+    // private static final Logger LOG;
+    @org.junit.Before
+    public void setUp() throws Exception {
+               ConnectionDefinition connectionDefinition = mock(ConnectionDefinition.class);
+               connectionDefinitionList=new ArrayList<ConnectionDefinition>(3);
+               property = mock(Property.class);
+               propertyDefinition = mock(PropertyDefinition.class);
+               connectionProperty = new ArrayList<Property>(3);
+               propertyDefinitionList = new ArrayList<PropertyDefinition>(3);
+               connectionDefinitionList.add(connectionDefinition);
+        connection = mock(Connection.class);
+        // LOG = mock(Logger.class);
+               dataBroker = mock(DataBroker.class);
+        connectionDefinitionCheck =new ConnectionDefinitionCheck(dataBroker);
+    }
+
+    @org.junit.Test
+    public void testcheckConnectionDefinition() throws Exception {
+        CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+        ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+        when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(connectiondefinitionFuture);
+               
+               //branch  connectionDefinitionList null
+               Assert.assertEquals(connectionDefinitionCheck.CheckConnectionDefinition(connection),"This type of connection has not been defined.");
+               
+               //use reflact to test private CheckProperty
+               Method testCheckProperty = connectionDefinitionCheck.getClass().getDeclaredMethod("CheckProperty",List.class,List.class);  
+               testCheckProperty.setAccessible(true);
+               //branch1 connectionProperty null,propertyDefinitionList null
+               Assert.assertNull(testCheckProperty.invoke(connectionDefinitionCheck,connectionProperty,propertyDefinitionList));
+               //branch2 property.getPropertyName() not equals(propertyDefinition.getPropertyName())
+               connectionProperty.add(property);
+               propertyDefinitionList.add(propertyDefinition); 
+               PropertyName propertyName1 = mock(PropertyName.class);
+               PropertyName propertyName2 = mock(PropertyName.class);
+               when(property.getPropertyName()).thenReturn(propertyName1);
+               when(propertyDefinition.getPropertyName()).thenReturn(propertyName2);
+               Assert.assertEquals(testCheckProperty.invoke(connectionDefinitionCheck,connectionProperty,propertyDefinitionList),"This type of property" + property.getPropertyName().toString() + " has not been defined.");
+               //branch3  property.getPropertyName()equals(propertyDefinition.getPropertyName()),but can not mock PropertyValueType
+               when(property.getPropertyName()).thenReturn(propertyName1);
+               PropertyName propertyName3 = propertyName1;
+               when(propertyDefinition.getPropertyName()).thenReturn(propertyName3);
+               PropertyValues propertyValues = mock(PropertyValues.class);
+               when(property.getPropertyValues()).thenReturn(propertyValues);
+               Assert.assertNotNull(property.getPropertyValues());
+               Assert.assertNull(propertyDefinition.getPropertyValueType());
+               
+               //dataBroker test
+               verify(dataBroker).newReadOnlyTransaction();
+        verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
+               verifyPrivate(connectionDefinitionCheck).invoke("fetchConnectionDefinitionList");
+               
+    }
 }
\ No newline at end of file
index 09c2a5f73b532fa020923679d6de6f1d13eae3ea..27390f6c345c629202ee5fe0c580765f8a1ebbf3 100644 (file)
@@ -7,33 +7,83 @@
  */\r
 package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
 \r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\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
+\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.intent.rev151010.user.intent.objects.Flow;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.FlowPropertyDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.MatchItemDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItem;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.definitions.MatchItemDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.MatchItemValue;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.common.RpcResult;\r
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;\r
+import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import com.google.common.base.Optional;\r
+import com.google.common.base.Function;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.ListenableFuture;\r
 \r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class FlowDefinitionCheckTest extends TestCase {\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import java.util.List;\r
 \r
-    private FlowDefinitionCheck flowDefinitionCheckTest;\r
-    private Flow flow;\r
-    @Before\r
-    public void setUp() throws Exception {\r
-        flowDefinitionCheckTest = mock(FlowDefinitionCheck.class);\r
-        flow = mock(Flow.class);\r
-    }\r
+import java.util.Collection;\r
+import java.util.Iterator;\r
+import java.util.LinkedList;\r
+import java.util.List;\r
+import java.util.ListIterator;\r
 \r
-    @Test\r
-    public void testCheckDefinition() throws Exception {\r
-        flowDefinitionCheckTest.CheckDefinition(flow);\r
-        Assert.assertNotNull(flowDefinitionCheckTest);\r
-        verify(flowDefinitionCheckTest).CheckDefinition(flow);\r
 \r
+import static org.mockito.Mockito.*;\r
+\r
+@RunWith(PowerMockRunner.class) \r
+@PrepareForTest(ConnectionDefinitionCheck.class) \r
+public class FlowDefinitionCheckTest{\r
+       private FlowDefinitionCheck flowDefinitionCheck;\r
+    private DataBroker dataBroker;\r
+    private List<MatchItemDefinition> matchItemDefinitionList; \r
+       private Flow flow;\r
+   // private static final Logger LOG;\r
+    @org.junit.Before\r
+    public void setUp() throws Exception {\r
+        matchItemDefinitionList = new LinkedList<MatchItemDefinition>();\r
+       // LOG = mock(Logger.class);\r
+\r
+        dataBroker = mock(DataBroker.class);\r
+               flow = mock(Flow.class);\r
+        flowDefinitionCheck = new FlowDefinitionCheck(dataBroker);\r
     }\r
+        @org.junit.Test\r
+    public void testcheckConnectionDefinition() throws Exception {\r
+        CheckedFuture matchitemdefinitionFuture = 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(matchitemdefinitionFuture);\r
+               Assert.assertNotNull(flow.getMatchItem());\r
+               Assert.assertEquals(flowDefinitionCheck.CheckDefinition(flow),"The match item has not been defined.");\r
+               //dataBroker test \r
+        verify(dataBroker).newReadOnlyTransaction();\r
+        verify(readOnlyTransaction).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));\r
+               verifyPrivate(flowDefinitionCheck).invoke("fetchMatchItemDefinitions");\r
+               \r
+    }\r
+\r
 }
\ No newline at end of file
index a8eaacb4e638f978629d053c55cb08c9b02d3975..b20108138d3b857f599f07d35d10ea3a33a0bb41 100644 (file)
  */\r
 package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
 \r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\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
+\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.common.rev151010.PropertyName;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.NodeDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.definitions.NodeDefinition;\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
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class NodeDefinitionCheckTest extends TestCase {\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.common.RpcResult;\r
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;\r
+import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import com.google.common.base.Optional;\r
+import com.google.common.base.Function;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.ListenableFuture;\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 org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import java.util.List;\r
 \r
-    }\r
+import java.util.Collection;\r
+import java.util.Iterator;\r
+import java.util.ArrayList;\r
+import java.util.ListIterator;\r
 \r
-    @Test\r
-    public void testCheckNodeDefinition() throws Exception {\r
-        nodeDefinitionCheckTest.CheckNodeDefinition(node);\r
-        Assert.assertNotNull(nodeDefinitionCheckTest);\r
-        verify(nodeDefinitionCheckTest).CheckNodeDefinition(node);\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
+        @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
index 3a02ba7e45d4e2a0c0b17b0745dceca0f6582258..b759b94e4f09ca9bad6041db3a953318aefbcdd7 100644 (file)
@@ -7,36 +7,93 @@
  */\r
 package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
 \r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\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 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;\r
 \r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class OperationDefinitionCheckTest extends TestCase {\r
+import com.google.common.base.Optional;\r
+import com.google.common.util.concurrent.FutureCallback;\r
+import com.google.common.util.concurrent.Futures;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import com.google.common.util.concurrent.ListenableFuture;\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
+import org.opendaylight.yangtools.yang.common.RpcResult;\r
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;\r
+import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;\r
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
+import com.google.common.base.Function;\r
+import com.google.common.util.concurrent.CheckedFuture;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ParameterName;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.ActionDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.ConditionParameterDefinitions;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.definitions.ActionDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.ParameterValues;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.condition.segment.ConditionParameterTargetValue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.parameter.definitions.ConditionParameterDefinition;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.parameter.definitions.condition.parameter.definition.ParameterMatchPatterns;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+import java.util.List;\r
 \r
-    private Operation operation;\r
-    private OperationDefinitionCheck operationDefinitionCheckTest;\r
+import java.util.Collection;\r
+import java.util.Iterator;\r
+import java.util.LinkedList;\r
+import java.util.ListIterator;\r
 \r
-    @Before\r
+import static org.mockito.Mockito.*;\r
+@RunWith(PowerMockRunner.class) \r
+@PrepareForTest(ConnectionDefinitionCheck.class) \r
+public class OperationDefinitionCheckTest{\r
+       private OperationDefinitionCheck operationDefinitionCheck;\r
+       private DataBroker dataBroker;\r
+       private ActionDefinition actionDefinition;\r
+       private ConditionParameterDefinition conditionParameterDefinition;\r
+       private List<ActionDefinition> actionDefinitionList;\r
+    private List<ConditionParameterDefinition> conditionParameterDefinitionList;\r
+       private Operation operation;\r
+    //private static final Logger LOG = LoggerFactory.getLogger(NodeDefinitionCheck.class);\r
+       \r
+       @org.junit.Before\r
     public void setUp() throws Exception {\r
-        operationDefinitionCheckTest = mock(OperationDefinitionCheck.class);\r
-        operation = mock(Operation.class);\r
-\r
+        actionDefinitionList = new LinkedList<ActionDefinition>();\r
+               conditionParameterDefinitionList = new LinkedList<ConditionParameterDefinition>();\r
+       // LOG = mock(Logger.class);\r
+               operation = mock(Operation.class);\r
+        dataBroker = mock(DataBroker.class);\r
+        operationDefinitionCheck = new OperationDefinitionCheck(dataBroker);\r
     }\r
+       @org.junit.Test\r
+    public void testcheckConnectionDefinition() throws Exception {\r
+        CheckedFuture actiondefinitionFuture = mock(CheckedFuture.class);\r
+               CheckedFuture conditionparadefinitionFuture = 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(actiondefinitionFuture);\r
+               when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(conditionparadefinitionFuture);\r
+               //branch null\r
+               Assert.assertNotNull(operation.getAction());\r
+               Assert.assertNotNull(operation.getConditionSegment());\r
+        Assert.assertEquals(operationDefinitionCheck.CheckDefinition(operation),"There are no actions has been defined in the data store.");\r
+               when(operation.getAction()).thenReturn(null);\r
+               Assert.assertEquals(operationDefinitionCheck.CheckDefinition(operation),"This condition has not been defined in data store.");\r
+               //\r
 \r
-    @Test\r
-    public void testCheckDefinition() throws Exception {\r
-        operationDefinitionCheckTest.CheckDefinition(operation);\r
-        Assert.assertNotNull(operationDefinitionCheckTest);\r
-        verify(operationDefinitionCheckTest).CheckDefinition(operation);\r
-\r
+        verify(dataBroker,times(4)).newReadOnlyTransaction();\r
+        verify(readOnlyTransaction,times(4)).read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));\r
+               \r
     }\r
-\r
 }
\ No newline at end of file
index ccc1dcb6d95c649ca28073d73e46cad87a7091fa..919d49c4ccd35980bc9e0ff6feee2ffd143a7a8a 100644 (file)
@@ -1,41 +1,35 @@
-/*\r
- * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;\r
-\r
-import static org.mockito.Mockito.mock;\r
-import static org.mockito.Mockito.verify;\r
-import junit.framework.TestCase;\r
-\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Test;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Results;\r
-\r
-\r
-/**\r
- * Created by Thomas Liu on 2015/11/11.\r
- */\r
-public class ResultDefinitionCheckTest extends TestCase {\r
-\r
-    private Results results;\r
-    private ResultDefinitionCheck resultDefinitionCheckTest;\r
-    @Before\r
-    public void setUp() throws Exception {\r
-        resultDefinitionCheckTest = mock(ResultDefinitionCheck.class);\r
-        results = mock(Results.class);\r
-\r
-    }\r
-\r
-    @Test\r
-    public void testCheckDefinition() throws Exception {\r
-        resultDefinitionCheckTest.CheckDefinition(results);\r
-        Assert.assertNotNull(resultDefinitionCheckTest);\r
-        verify(resultDefinitionCheckTest).CheckDefinition(results);\r
-\r
-    }\r
+/*
+ * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.nemo.user.vnspacemanager.syntaxcheck;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Results;
+import static org.junit.Assert.*;
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Created by wjf on 2015/11/25.
+ */
+public class ResultDefinitionCheckTest {
+    private ResultDefinitionCheck resultDefinitionCheck;
+    private Results results;
+    @org.junit.Before
+    public void setUp() throws Exception {
+        results = mock(Results.class);
+        resultDefinitionCheck = new ResultDefinitionCheck();
+    }
+
+    @org.junit.Test
+    public void testCheckDefinition() throws Exception {
+        Assert.assertNull(resultDefinitionCheck.CheckDefinition(results));
+    }
 }
\ No newline at end of file