Modified some test files because of changed source files 22/32122/1
authorGaoJie <gaojieusy@163.com>
Sat, 2 Jan 2016 04:48:17 +0000 (12:48 +0800)
committerGaoJie <gaojieusy@163.com>
Sat, 2 Jan 2016 04:49:19 +0000 (12:49 +0800)
Change-Id: Ia1c0920a5b925553cd649eab89570e2e7a910d3a
Signed-off-by: GaoJie <gaojieusy@163.com>
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/updateintentlang/UpdateConnectionLangTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/updateintentlang/UpdateFlowLangTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/updateintentlang/UpdateNodeLangTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/languagestyle/updateintentlang/UpdateOperationLangTest.java
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteConnectionTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteFlowTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteIntentTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteNodeTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteOperationTest.java [new file with mode: 0644]
nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateOperationTest.java [new file with mode: 0644]

index dbc850c091a1092f64809bd0a4786ad257f7a6e0..c3c349fe7af4e59bc08416ddd6a5a5334cd181f9 100644 (file)
@@ -13,6 +13,12 @@ import org.junit.Before;
 import org.junit.Test;\r
 import static org.mockito.Mockito.*;\r
 import static org.junit.Assert.*;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.HashMap;\r
+import java.util.LinkedHashMap;\r
+import java.lang.reflect.Method; \r
+import java.util.*;\r
 \r
 \r
 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
@@ -198,4 +204,65 @@ public class UpdateConnectionLangTest extends TestCase {
 \r
 \r
     }\r
+       @org.junit.Test\r
+       public void createConnectionTest() throws Exception{\r
+     UserId userId1=mock(UserId.class);\r
+        String connectionname1;\r
+        String connectiontype1;\r
+        connectionname1 = new String("conn1");\r
+     connectiontype1 = new String("p2p");\r
+        List<String> endnodes1=null;\r
+        LinkedHashMap<String, LinkedHashMap<String,String>> propertyList1=null;\r
+        Class<?>[] args=new Class<?>[5];\r
+               args[0]=userId1.getClass();\r
+               args[1]=connectionname1.getClass();\r
+               args[2]=connectiontype1.getClass();\r
+               args[3]=endnodes1.getClass();\r
+               args[4]=propertyList1.getClass();\r
+               Object[] args1 = new Object[4]; \r
+               for(int i=0;i<5;i++)\r
+           args1[i]=new Object();\r
+               args1[0]=userId1;\r
+               args1[1]=connectionname1;\r
+               args1[2]=connectiontype1;\r
+               args1[3]=endnodes1;\r
+               args1[4]=propertyList1;\r
+       Method methon=updateConnectionLangTest.getClass().getDeclaredMethod("createConnection",args);\r
+       methon.setAccessible(true);\r
+       //branch 1 \r
+        when(tenantManage.getObjectId(userId1,connectionname1)).thenReturn(null);\r
+     Assert.assertNull(methon.invoke(updateConnectionLangTest,args1));\r
+       //branch 2 \r
+       Map<ConnectionId, Connection> map=new HashMap<ConnectionId,Connection>();\r
+       ConnectionId connectionId1=new ConnectionId("111111111111");\r
+       Connection connection1=mock(Connection.class);\r
+       map.put(connectionId1,connection1);\r
+       ConnectionKey connectionkey=mock(ConnectionKey.class);\r
+       when(tenantManage.getObjectId(userId1,connectionname1)).thenReturn("111111111111");\r
+       when(tenantManage.getObjectId(userId1,connectionname1)).thenReturn("111111111111");\r
+       when(tenantManage.getConnection(userId1)).thenReturn(map);\r
+    when(connection1.getKey()).thenReturn(connectionkey);\r
+       when(connection1.getConnectionId()).thenReturn(connectionId1);\r
+       Assert.assertNull(methon.invoke(updateConnectionLangTest,args1));\r
+       //branch 3\r
+       when(tenantManage.getObjectId(userId1,connectionname1)).thenReturn(null);\r
+        endnodes1 = new ArrayList<String>(){{add(new String("123"));}};\r
+       args1[3]=endnodes1;\r
+       when(tenantManage.getObjectId(userId,"123")).thenReturn(null);\r
+       Assert.assertNotNull(methon.invoke(updateConnectionLangTest,args1));\r
+       //branch 4\r
+       when(tenantManage.getObjectId(userId1,connectionname1)).thenReturn(null);\r
+       propertyList1 = new LinkedHashMap<String, LinkedHashMap<String,String>>();\r
+       LinkedHashMap<String,String> properties1 = new LinkedHashMap<String,String>(){{\r
+            put(new String("1"),NEMOConstants.range);\r
+            put(new String("group"),NEMOConstants.string);\r
+            put(new String("100"),NEMOConstants.integer);\r
+            put(new String("100,200"),NEMOConstants.range);\r
+        }};\r
+    propertyList1.put(new String("p1"),properties1);\r
+       endnodes1=null;\r
+       args1[3]=endnodes1;\r
+       args1[4]=propertyList1;\r
+       Assert.assertNull(methon.invoke(updateConnectionLangTest,args1));\r
+       }\r
 }
\ No newline at end of file
index 44ff626edbb75c2cc904747e2005e2bc2d1cb82e..37bda1e88d576be4780705bcf8b9bb96673d1627 100644 (file)
@@ -18,8 +18,11 @@ import java.util.ArrayList;
 import java.util.List;\r
 import java.util.HashMap;\r
 import java.util.LinkedHashMap;\r
+import java.lang.reflect.Method; \r
+import java.util.*;\r
 \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;\r
 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
 import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateFlow;\r
@@ -36,7 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.obj
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.FlowName;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.FlowId;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\r
-\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;\r
 /**\r
  * Created by Thomas Liu on 2015/12/15.\r
  */\r
@@ -103,4 +106,75 @@ public class UpdateFlowLangTest extends TestCase {
         updateFlowLangTest.FlowHandling(userId,flowname,flowmatch,propertyList);\r
 \r
     }\r
+       @org.junit.Test\r
+       public void createFlowTest() throws Exception{\r
+               UserId userid=mock(UserId.class);\r
+               String flowname="flowname";\r
+               LinkedHashMap<String,LinkedHashMap<String,String>> flowmatch=null;\r
+               LinkedHashMap<String,LinkedHashMap<String,String>> propertyList=null;\r
+               doNothing().when(tenantManage).fetchVNSpace(userId);\r
+               when(tenantManage.getUser()).thenReturn(user);\r
+               when(user.getObjects()).thenReturn(null);\r
+               Class<?>[] args=new Class<?>[4];\r
+               args[0]=userid.getClass();\r
+               args[1]=flowname.getClass();\r
+               args[2]=flowmatch.getClass();\r
+               args[3]=propertyList.getClass();\r
+               Object[] args1 = new Object[4]; \r
+               args1[0]=userid;\r
+               args1[1]=flowname;\r
+               args1[2]=flowmatch;\r
+               args1[3]=propertyList;\r
+               Method setupdateintentlang= updateFlowLangTest.getClass().getDeclaredMethod("createFlow",args);  \r
+               setupdateintentlang.setAccessible(true);\r
+               Assert.assertNull(setupdateintentlang.invoke(updateFlowLangTest,args1));\r
+               //branch 2\r
+               Objects objects=mock(Objects.class);\r
+               Flow flow=mock(Flow.class);\r
+               doNothing().when(tenantManage).fetchVNSpace(userId);\r
+               when(tenantManage.getUser()).thenReturn(user);\r
+               List<Flow> flows = new ArrayList<Flow>();\r
+               flows.add(flow);\r
+               FlowId flowId = new FlowId(UUID.randomUUID().toString());\r
+               when(user.getObjects()).thenReturn(objects);\r
+               when(objects.getFlow()).thenReturn(flows);\r
+               when(flow.getFlowName().getValue()).thenReturn(flowname);\r
+               when(flow.getKey()).thenReturn(new FlowKey(flowId));\r
+               when(flow.getFlowId()).thenReturn(flowId);\r
+               Assert.assertNull(setupdateintentlang.invoke(updateFlowLangTest,args1));\r
+               //branch 3\r
+               doNothing().when(tenantManage).fetchVNSpace(userId);\r
+               when(tenantManage.getUser()).thenReturn(user);\r
+               when(user.getObjects()).thenReturn(objects);\r
+               when(objects.getFlow()).thenReturn(flows);\r
+               when(flow.getFlowName().getValue()).thenReturn(flowname);\r
+               when(flow.getKey()).thenReturn(new FlowKey(flowId));\r
+               when(flow.getFlowId()).thenReturn(flowId);\r
+        flowmatch = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+\r
+               args1[0]=userid;\r
+               args1[1]=flowname;\r
+               args1[3]=flowmatch;\r
+               args1[4]=propertyList;\r
+        matches = new LinkedHashMap<String,String>(){{\r
+            put(new String("group"),NEMOConstants.string);\r
+            put(new String("100"),NEMOConstants.integer);\r
+            put(new String("100,200"),NEMOConstants.range);\r
+                       put(new String("300,200"),NEMOConstants.range);\r
+        }};\r
+               flowmatch.put(new String("1"),matches);\r
+               Assert.assertNull(setupdateintentlang.invoke(updateFlowLangTest,args1));\r
+               //branch 4\r
+        propertyList = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+        properties = new LinkedHashMap<String,String>(){{\r
+            put(new String("group"),NEMOConstants.string);\r
+            put(new String("100"),NEMOConstants.integer);\r
+            put(new String("100,200"),NEMOConstants.range);\r
+                       put(new String("300,200"),NEMOConstants.range);\r
+        }};\r
+        propertyList.put(new String("1"),properties);\r
+               args1[4]=propertyList;\r
+        Assert.assertNotNull(setupdateintentlang.invoke(updateFlowLangTest,args1));    \r
+               \r
+       }\r
 }
\ No newline at end of file
index 61d859fe88d8fe7602b8f14c7fee4bd3bf2dc2ac..d07849830950cec52e0c21e707c1eee5a266ed9c 100644 (file)
@@ -19,7 +19,12 @@ import java.util.ArrayList;
 import java.util.List;\r
 import java.util.HashMap;\r
 import java.util.LinkedHashMap;\r
-\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.HashMap;\r
+import java.util.LinkedHashMap;\r
+import java.lang.reflect.Method; \r
+import java.util.*;\r
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
@@ -113,4 +118,88 @@ public class UpdateNodeLangTest extends TestCase {
 \r
 \r
     }\r
+       @org.junit.Test\r
+       public void createNodeTest() throws Exception{\r
+       //branch 1 \r
+       UserId userId=mock(UserId.class);\r
+       NodeId nodeid=new NodeId("11111111-1111-1111-1111-111111111111");\r
+       NodeKey nodekey=mock(NodeKey.class);\r
+       String nodename="nodename"; \r
+       String nodetype=NEMOConstants.host; \r
+       ObjectId objectid=mock(ObjectId.class);\r
+       List<String> subnodes=null; \r
+       Node node =mock(Node.class);\r
+       Map<NodeId, Node> nodes=new HashMap<NodeId, Node>(2);\r
+       nodes.put(nodeid,node);\r
+       LinkedHashMap<String, LinkedHashMap<String,String>> propertyList1=null;\r
+    when(tenantManage.getObjectId(userId,nodename)).thenReturn("11111111-1111-1111-1111-111111111111");        \r
+       when(tenantManage.getNode(any(UserId.class))).thenReturn(nodes);\r
+       when(nodes.get(any(NodeId.class))).thenReturn(node);\r
+       when(tenantManage.getNodeDataStore(userId)).thenReturn(nodes);\r
+       when(nodes.get(any(NodeId.class))).thenReturn(node);\r
+       when(node.getKey()).thenReturn(nodekey);\r
+       when(node.getNodeId()).thenReturn(nodeid);\r
+       Class<?>[] args=new Class<?>[5];\r
+       args[0]=userId.getClass();\r
+       args[1]=nodename.getClass();\r
+       args[2]=nodetype.getClass();\r
+       args[3]=subnodes.getClass();\r
+       args[4]=propertyList1.getClass();\r
+       Object[] args1 = new Object[5]; \r
+       args1[0]=userId;\r
+       args1[1]=nodename;\r
+       args1[2]=nodetype;\r
+       args1[3]=subnodes;\r
+       args1[4]=propertyList1;\r
+       Method updatenodeintentlang= updateNodeLangTest.getClass().getDeclaredMethod("createNode",args);  \r
+       updatenodeintentlang.setAccessible(true);\r
+       Assert.assertNull(updatenodeintentlang.invoke(updateNodeLangTest,args1));\r
+    //branch 2\r
+       when(tenantManage.getObjectId(userId,nodename)).thenReturn("11111111-1111-1111-1111-111111111111");     \r
+       when(tenantManage.getNode(any(UserId.class))).thenReturn(nodes);\r
+       when(nodes.get(any(NodeId.class))).thenReturn(node);\r
+       when(tenantManage.getNodeDataStore(userId)).thenReturn(nodes);\r
+       when(nodes.get(any(NodeId.class))).thenReturn(node);\r
+       when(node.getKey()).thenReturn(nodekey);\r
+       when(node.getNodeId()).thenReturn(nodeid);\r
+       subnodes=new ArrayList<String>(3);\r
+       String subnodeName="subnodename";\r
+       subnodes.add(subnodeName);\r
+       args1[3]=subnodes;\r
+       when(tenantManage.getObjectId(userId,subnodeName)).thenReturn(null);\r
+       Assert.assertEquals(updatenodeintentlang.invoke(updateNodeLangTest,args1),"The subnode " +subnodeName+ " is not exist.");\r
+       //branch 3\r
+       when(tenantManage.getObjectId(userId,nodename)).thenReturn("11111111-1111-1111-1111-111111111111");     \r
+       when(tenantManage.getNode(any(UserId.class))).thenReturn(nodes);\r
+       when(nodes.get(any(NodeId.class))).thenReturn(node);\r
+       when(tenantManage.getNodeDataStore(userId)).thenReturn(nodes);\r
+       when(nodes.get(any(NodeId.class))).thenReturn(node);\r
+       when(node.getKey()).thenReturn(nodekey);\r
+       when(node.getNodeId()).thenReturn(nodeid);\r
+       \r
+       when(tenantManage.getObjectId(userId,subnodeName)).thenReturn("11111111-1111-1111-1111-111111111111");\r
+       Assert.assertNull(updatenodeintentlang.invoke(updateNodeLangTest,args1));\r
+       //branch 4\r
+       LinkedHashMap<String,String> properties1;\r
+       propertyList1 = new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+    properties1 = new LinkedHashMap<String,String>(){{\r
+        //put(new String("1"),NEMOConstants.range);\r
+        put(new String("group"),NEMOConstants.string);\r
+        put(new String("100"),NEMOConstants.integer);\r
+        put(new String("100,200"),NEMOConstants.range);\r
+    }};\r
+    propertyList1.put(new String("1"),properties1);\r
+       args1[4]=propertyList1;\r
+       when(tenantManage.getObjectId(userId,nodename)).thenReturn("11111111-1111-1111-1111-111111111111");     \r
+       when(tenantManage.getNode(any(UserId.class))).thenReturn(nodes);\r
+       when(nodes.get(any(NodeId.class))).thenReturn(node);\r
+       when(tenantManage.getNodeDataStore(userId)).thenReturn(nodes);\r
+       when(nodes.get(any(NodeId.class))).thenReturn(node);\r
+       when(node.getKey()).thenReturn(nodekey);\r
+       when(node.getNodeId()).thenReturn(nodeid);\r
+       \r
+       when(tenantManage.getObjectId(userId,subnodeName)).thenReturn("11111111-1111-1111-1111-111111111111");\r
+       Assert.assertNull(updatenodeintentlang.invoke(updateNodeLangTest,args1));\r
+       \r
+       }\r
 }
\ No newline at end of file
index d9019c2a30863e1905ed812260f6f7e7c836909b..4a73876c6050128edbef970d44b702704391d012 100644 (file)
@@ -12,13 +12,18 @@ import org.junit.Assert;
 import org.junit.Before;\r
 import org.junit.Test;\r
 import static org.mockito.Mockito.*;\r
-import static org.junit.Assert.*;\r
+//import static org.junit.Assert.*;\r
 \r
 import java.util.ArrayList;\r
 import java.util.List;\r
 import java.util.HashMap;\r
 import java.util.LinkedHashMap;\r
-\r
+import java.util.List;\r
+import java.util.HashMap;\r
+import java.util.LinkedHashMap;\r
+import java.lang.reflect.Method; \r
+import java.util.*;\r
+import org.junit.Assert;\r
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
 import org.opendaylight.nemo.user.tenantmanager.TenantManage;\r
 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;\r
@@ -200,5 +205,60 @@ public class UpdateOperationLangTest extends TestCase {
         updateOperationLangTest.OperationHandling(userId,operationname,target,priority,conditions,actions);\r
 \r
     }\r
+       @org.junit.Test\r
+       public void createOperationTest() throws Exception{\r
+       UserId userId1=mock(UserId.class);\r
+       String operationname1="o1";\r
+       String target1="opendaylight";\r
+       String priority1="node";\r
+       LinkedHashMap<String,LinkedHashMap<String,String>> conditions1=null;\r
+       LinkedHashMap<String,LinkedHashMap<String,String>> actions1=null;\r
+       Class<?>[] args=new Class<?>[6];\r
+       args[0]=userId1.getClass();\r
+       args[1]=operationname1.getClass();\r
+       args[2]=target1.getClass();\r
+       args[3]=priority1.getClass();\r
+       args[4]=conditions1.getClass();\r
+       args[5]=actions1.getClass();\r
+       Object[] args1 = new Object[6]; \r
+       args1[0]=userId1;\r
+       args1[1]=operationname1;\r
+       args1[2]=target1;\r
+       args1[3]=priority1;\r
+       args1[4]=conditions1;\r
+       args1[5]=actions1;\r
+       Method methon=updateOperationLangTest.getClass().getDeclaredMethod("createOperation",args);\r
+       methon.setAccessible(true);\r
+    //branch1\r
+    when(tenantManage.getObjectId(userId1,operationname1)).thenReturn(null);\r
+       when(tenantManage.getObjectId(userId1,target1)).thenReturn(null);\r
+       Assert.assertNotNull(methon.invoke(updateOperationLangTest,args));\r
+       //branch2\r
+       OperationId operationid=new OperationId("11111111-1111-1111-1111-111111111111");\r
+       when(tenantManage.getObjectId(userId,operationname1)).thenReturn("11111111-1111-1111-1111-111111111111");\r
+       when(tenantManage.getObjectId(userId,operationname1)).thenReturn("11111111-1111-1111-1111-111111111111");\r
+       Map<OperationId, Operation> operations=new HashMap<OperationId,Operation>();\r
+       Operation operation=mock(Operation.class);\r
+       operations.put(operationid,operation);\r
+       when((tenantManage.getOperation(any(UserId.class)))).thenReturn(operations);\r
+       when(tenantManage.getOperationDataStore(any(UserId.class))).thenReturn(operations);\r
+       when(tenantManage.getObjectId(userId1,target1)).thenReturn(null);\r
+       Assert.assertNotNull(methon.invoke(updateOperationLangTest,args));\r
+       //branch3\r
+       actions1=new LinkedHashMap<String,LinkedHashMap<String,String>>();\r
+       LinkedHashMap<String,String> action1 = new LinkedHashMap<String,String>(){{\r
+            put(new String("group"),NEMOConstants.string);\r
+            put(new String("100"),NEMOConstants.integer);\r
+            put(new String("100,200"),NEMOConstants.range);\r
+        }};\r
+    actions1.put(new String("action1"),action1);\r
+       args1[5]=actions1;\r
+       when(tenantManage.getOperation(any(UserId.class))).thenReturn(operations);\r
+       when(tenantManage.getOperationDataStore(any(UserId.class))).thenReturn(operations);\r
+       when(tenantManage.getObjectId(userId1,target1)).thenReturn(null);\r
+       when(tenantManage.getObjectId(userId,operationname1)).thenReturn("11111111-1111-1111-1111-111111111111");\r
+       when(tenantManage.getObjectId(userId,operationname1)).thenReturn("11111111-1111-1111-1111-111111111111");\r
+       Assert.assertNull(methon.invoke(updateOperationLangTest,args));\r
+       }\r
 }\r
 \r
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteConnectionTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteConnectionTest.java
new file mode 100644 (file)
index 0000000..a34fad3
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * 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.structurestyle.deleteintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;
+import static org.mockito.Mockito.mock;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+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.ConnectionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+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.intent.rev151010.user.intent.objects.ConnectionKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.*;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import static org.mockito.Mockito.*;
+public class  DeleteConnectionTest{
+           private DataBroker dataBroker;
+        private TenantManage tenantManage;
+        private DeleteConnection deleteconnection;
+        private UserId userId;
+        private ConnectionId connectionId;
+               private User user;
+               private Objects objects;
+               private Connection connection;
+               private List<Connection> connectionList;
+               private ConnectionId NotconnectionId;
+               private ConnectionId connectionId2;
+               private WriteTransaction  writetransaction;
+               
+               private Map<ConnectionId, Connection> connectionMap;
+               private Map<ConnectionId, Connection> connectionDataStore;
+               
+               
+@org.junit.Before
+public void setUp() throws Exception {
+           dataBroker=mock(DataBroker.class);
+               tenantManage=mock(TenantManage.class);
+        deleteconnection=mock(DeleteConnection.class);
+        userId=mock(UserId.class);
+        connectionId=mock(ConnectionId.class);
+               NotconnectionId=mock(ConnectionId.class);
+               connectionId2=connectionId;
+               user=mock(User.class);
+               objects=mock(Objects.class);
+               connection=mock(Connection.class);
+               connectionList=new ArrayList<Connection>(3);
+               connectionList.add(connection);
+               deleteconnection=new DeleteConnection(dataBroker,tenantManage);
+               writetransaction=mock(WriteTransaction.class);
+               
+               connectionMap = new HashMap<ConnectionId, Connection>();
+               connectionMap.put(connectionId,connection);
+               connectionDataStore = new HashMap<ConnectionId, Connection>();
+               connectionDataStore.put(connectionId,connection);
+               
+        }
+@org.junit.Test
+public void DeleteConnectionHandlingTest() throws Exception{
+       
+          CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+       ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+          when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+          
+          
+          when(tenantManage.getConnection(userId)).thenReturn(connectionMap);
+          Assert.assertEquals(deleteconnection.DeleteConnectionHandling(userId,connectionId),null);
+          
+          when(tenantManage.getConnection(userId)).thenReturn(null);
+          when(tenantManage.getConnectionDataStore(userId)).thenReturn(connectionDataStore);
+          Assert.assertEquals(deleteconnection.DeleteConnectionHandling(userId,connectionId),null);
+          
+          when(tenantManage.getConnectionDataStore(userId)).thenReturn(null);
+          Assert.assertEquals(deleteconnection.DeleteConnectionHandling(userId,connectionId),"The connection instance null is not exit.");
+          
+}
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteFlowTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteFlowTest.java
new file mode 100644 (file)
index 0000000..4f2126a
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ * 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.structurestyle.deleteintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;
+import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.VirtualNetwork;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLinkBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPath;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPathBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPort;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPortBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;
+import org.opendaylight.nemo.intent.computation.VNComputationUnit;
+import org.opendaylight.nemo.intent.condition.ConditionManager;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResultBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResource;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResourceBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ActionName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.IntentId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.*;
+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.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+
+
+
+
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.hosts.PhysicalHost;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResource;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalHostId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+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.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItem;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;
+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.FlowId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.FlowKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.*;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.UUID;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+public class DeleteFlowTest{
+       private DataBroker dataBroker;
+    private TenantManage tenantManage;
+       private DeleteFlow deleteflow;
+       private UserId userId;
+    private    FlowId flowId;
+       private Objects objects;
+       private ObjectId objectId;
+       private User  user;
+       private List<Flow> flowlist;
+       private Flow flow;
+       private FlowId notflowId;
+       private WriteTransaction  writetransaction;
+       
+       private Operation operation;
+       private OperationId operationId;
+       
+       private Map<FlowId, Flow> flowMap;
+       private Map<FlowId, Flow> flowDataStore;
+       private Map<OperationId, Operation> operationMap;
+       private Map<OperationId, Operation> operationDataStore;
+       private Map<String, String> userNameIdMap;
+       
+       @org.junit.Before
+       public void setUp() throws Exception {
+               dataBroker=mock(DataBroker.class);
+               tenantManage=mock(TenantManage.class);
+               deleteflow=new DeleteFlow(dataBroker,tenantManage);
+               userId=mock(UserId.class);
+               flowId=mock(FlowId.class);
+               objects=mock(Objects.class);
+               user=mock(User.class);
+               flow=mock(Flow.class);
+               notflowId=mock(FlowId.class);
+               flowlist=new ArrayList<Flow>(1);
+               flowlist.add(flow);
+               writetransaction=mock(WriteTransaction.class);
+               
+               objectId = mock(ObjectId.class);
+               operation = mock(Operation.class);
+               operationId = mock(OperationId.class);
+               flowMap = new HashMap<FlowId, Flow>();
+           flowMap.put(flowId,flow);
+           
+           flowDataStore = new HashMap<FlowId, Flow>();
+           flowDataStore.put(flowId,flow);
+           
+               operationMap = new HashMap<OperationId, Operation>();
+           operationMap.put(operationId,operation);
+           
+           operationDataStore = new HashMap<OperationId, Operation>();
+           operationDataStore.put(operationId,operation);
+           
+           userNameIdMap = new HashMap<String, String>();
+           userNameIdMap.put(new String("00001111-0000-0000-0000-000011112222"),new String("00001111-0000-0000-0000-000011112222"));
+       }
+       @org.junit.Test
+       public void  DeleteFlowHandlingTest() throws Exception{
+               CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+              ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+                  when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+                  
+                  
+                  when(operation.getTargetObject()).thenReturn(objectId);
+                  when(objectId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+                  when(flowId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+                  when(operationId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+                  
+                  when(tenantManage.getFlow(userId)).thenReturn(flowMap);
+                  when(tenantManage.getOperation(userId)).thenReturn(operationMap);
+                  when(tenantManage.getUserNameIdMap(userId)).thenReturn(userNameIdMap);
+                  when(operation.getOperationId()).thenReturn(operationId);
+                  when(tenantManage.getName(userId,new String("00001111-0000-0000-0000-000011112222"))).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+                  Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),null);
+                  
+                  //when(tenantManage.getOperation(userId)).thenReturn(null);
+                  //when(tenantManage.getOperationDataStore(userId)).thenReturn(operationDataStore);
+                 // Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),null);
+                  
+                  when(tenantManage.getFlow(userId)).thenReturn(null);
+                  when(tenantManage.getFlowDataStore(userId)).thenReturn(flowDataStore);
+                  Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),null);
+                  
+                  when(tenantManage.getFlowDataStore(userId)).thenReturn(null);
+                  Assert.assertEquals(deleteflow.DeleteFlowHandling(userId,flowId),"The flow instance 00001111-0000-0000-0000-000011112222 is not exist.");
+                  
+       }
+}
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteIntentTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteIntentTest.java
new file mode 100644 (file)
index 0000000..3ad796e
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+ * 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.structurestyle.deleteintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;
+import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.nemo.user.tenantmanager.AAA;
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.structure.style.nemo.delete.input.Objects;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.structure.style.nemo.delete.input.Operations;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ConnectionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.FlowId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.StructureStyleNemoDeleteInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.structure.style.nemo.delete.input.Results;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import java.util.*;
+import java.util.List;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserPassword;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+public class DeleteIntentTest{
+       private DataBroker dataBroker;
+    private TenantManage tenantManage;
+    private DeleteNode deleteNode;
+    private DeleteConnection deleteConnection;
+    private DeleteFlow deleteFlow;
+    private DeleteOperation deleteOperation;
+    private DeleteResult deleteResult;
+       private AAA aaa;
+       private Objects objects;
+       private StructureStyleNemoDeleteInput styleNemoDeleteInput;
+       private DeleteIntent deleteintent;
+       private Operations operations;
+       private Results results;
+       private UserId userid;
+       private NodeId nodeid;
+       private ConnectionId connectionid;
+       private FlowId flowid;
+       private List<NodeId> nodeidlist;
+       private List<ConnectionId> connectionidlist;
+       private List<FlowId> flowidlist;
+       private List<OperationId> operationidlist;
+       private OperationId operationid;
+       private User user;
+@org.junit.Before
+public void setUp() throws Exception{
+       dataBroker=mock(DataBroker.class);
+       tenantManage=mock(TenantManage.class);
+       deleteNode=mock(DeleteNode.class);
+       deleteConnection=mock(DeleteConnection.class);
+       //deleteFlow=mock(DeleteFlow.class);
+       deleteOperation=mock(DeleteOperation.class);
+       deleteResult=mock(DeleteResult.class);
+       aaa=mock(AAA.class);
+       objects=mock(Objects.class);
+       styleNemoDeleteInput=mock(StructureStyleNemoDeleteInput.class);
+       deleteintent=new DeleteIntent(dataBroker,tenantManage);
+       results=mock(Results.class);
+       operations=mock(Operations.class);
+       nodeid=mock(NodeId.class);
+       connectionid=mock(ConnectionId.class);
+       flowid=mock(FlowId.class);
+       nodeidlist=new ArrayList<NodeId>(1);
+       nodeidlist.add(nodeid);
+       connectionidlist=new ArrayList<ConnectionId>(1);
+       connectionidlist.add(connectionid);
+       flowidlist=new ArrayList<FlowId>(1);
+       flowidlist.add(flowid);
+       user=mock(User.class);
+       operationid=mock(OperationId.class);
+       operationidlist=new ArrayList<OperationId>(1);
+       operationidlist.add(operationid);
+}
+@org.junit.Test
+public void styleNemoDeleteOutputTest(){
+        CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+     ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+        UserId useridtest=mock(UserId.class);
+        UserName usernametest=mock(UserName.class);
+        UserPassword userpasswordtest=mock(UserPassword.class);
+        UserRoleName userrolenametest=mock(UserRoleName.class);
+        when(styleNemoDeleteInput.getUserId()).thenReturn(useridtest);
+        //branch 1
+        when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn("The user is not exist.");
+        Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),"The user is not exist.");
+        //branch 2
+        when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);
+        when(styleNemoDeleteInput.getObjects()).thenReturn(null);
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null);
+        //branch 3
+        //if-
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects()).thenReturn(objects);
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);
+         //if--
+         when(styleNemoDeleteInput.getObjects().getNode()).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects().getConnection()).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects().getFlow()).thenReturn(null);
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null); 
+         //branch 4
+         //if-
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects()).thenReturn(objects);
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);
+         //if--
+         when(styleNemoDeleteInput.getObjects().getNode()).thenReturn(nodeidlist);
+         when(styleNemoDeleteInput.getObjects().getConnection()).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects().getFlow()).thenReturn(null);
+         when(styleNemoDeleteInput.getUserId()).thenReturn(userid);
+         when(tenantManage.getUser()).thenReturn(user);
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),"The node instance null is not exist.");
+         //branch 5
+         //if-
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects()).thenReturn(objects);
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);
+         //if--
+         when(styleNemoDeleteInput.getObjects().getNode()).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects().getConnection()).thenReturn(connectionidlist);
+         when(styleNemoDeleteInput.getObjects().getFlow()).thenReturn(null);
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),"The connection instance null is not exit.");
+      //branch 6
+     //if-
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects()).thenReturn(objects);
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);
+         //if--
+         when(styleNemoDeleteInput.getObjects().getNode()).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects().getConnection()).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects().getFlow()).thenReturn(flowidlist);
+      Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),"The flow instance null is not exist.");          
+        //branch 7
+        //if-
+         when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects()).thenReturn(null);
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);
+         when(styleNemoDeleteInput.getOperations()).thenReturn(operations);
+         //if--
+      when(operations.getOperation()).thenReturn(null);
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null); 
+         //branch 8
+         //if-
+         when(styleNemoDeleteInput.getObjects()).thenReturn(null);
+         when(styleNemoDeleteInput.getResults()).thenReturn(null);
+         when(styleNemoDeleteInput.getOperations()).thenReturn(operations);
+         //if--
+      when(operations.getOperation()).thenReturn(operationidlist);
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),"The operation instance null is not exist.");
+        //branch 9
+        //if-
+        when(aaa.checkUser(styleNemoDeleteInput.getUserId())).thenReturn(null);
+         when(styleNemoDeleteInput.getObjects()).thenReturn(null);
+         when(styleNemoDeleteInput.getResults()).thenReturn(results);
+         when(styleNemoDeleteInput.getOperations()).thenReturn(null);
+         Assert.assertEquals(deleteintent.styleNemoDeleteOutput(aaa,styleNemoDeleteInput),null);        
+}
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteNodeTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteNodeTest.java
new file mode 100644 (file)
index 0000000..eaf7838
--- /dev/null
@@ -0,0 +1,229 @@
+/*
+ * 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.structurestyle.deleteintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.deleteintent.DeleteNode;
+import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+//import org.opendaylight.nemo.user.vnspacemanager.structurestyle.deletenode;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.VirtualNetwork;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLinkBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPath;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPathBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPort;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPortBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;
+import org.opendaylight.nemo.intent.computation.VNComputationUnit;
+import org.opendaylight.nemo.intent.condition.ConditionManager;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResultBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResource;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResourceBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ActionName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.IntentId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.*;
+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.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+
+
+import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.EndNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+
+
+
+
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.hosts.PhysicalHost;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResource;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalHostId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+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.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItem;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;
+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.FlowId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.FlowKey;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.*;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.UUID;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+public class DeleteNodeTest{
+       private DataBroker dataBroker;
+    private TenantManage tenantManage;
+    private DeleteNode deletenode;
+       private Node node;
+       private Operation operation;
+       
+       private NodeId nodeId;
+       private UserId userId;
+       private OperationId operationId;
+       private ObjectId objectId;
+       
+       private Connection connection;
+       private ConnectionId connectionId;
+       private List<EndNode> endNodeList;
+       private EndNode endNode;
+       
+       private WriteTransaction writetransaction;
+       
+       private Map<NodeId, Node> nodeMap;
+       private Map<NodeId, Node> nodeDataStore;
+       private Map<ConnectionId, Connection> connectionMap;
+       private Map<ConnectionId, Connection> connectionDataStore;
+       private Map<String, String> userNameIdMap;
+       private Map<OperationId, Operation> operationMap;
+       private Map<OperationId, Operation> operationDataStore;
+       
+       @org.junit.Before
+       public void setUp() throws Exception {
+               dataBroker=mock(DataBroker.class);
+               tenantManage=mock(TenantManage.class);
+               
+               writetransaction=mock(WriteTransaction.class);
+               
+               node = mock(Node.class);
+               nodeId = mock(NodeId.class);
+               objectId = mock(ObjectId.class);
+               operation = mock(Operation.class);
+               operationId = mock(OperationId.class);
+               
+               connection = mock(Connection.class);
+               connectionId = mock(ConnectionId.class);
+               endNode = mock(EndNode.class);
+               endNodeList = new ArrayList<EndNode>();
+               endNodeList.add(endNode);
+               
+               deletenode = new DeleteNode(dataBroker,tenantManage);
+               
+               nodeMap = new HashMap<NodeId, Node>();
+               nodeMap.put(nodeId,node);
+               
+               nodeDataStore = new HashMap<NodeId, Node>();
+               nodeDataStore.put(nodeId,node);
+               
+               connectionMap = new HashMap<ConnectionId, Connection>();
+               connectionMap.put(connectionId,connection);
+               
+               connectionDataStore = new HashMap<ConnectionId, Connection>();
+               connectionDataStore.put(connectionId,connection);
+               
+               userNameIdMap = new HashMap<String, String>();
+               userNameIdMap.put(new String("00001111-0000-0000-0000-000011112222"),new String("00001111-0000-0000-0000-000011112222"));
+               
+               operationMap = new HashMap<OperationId, Operation>();
+           operationMap.put(operationId,operation);
+           
+           operationDataStore = new HashMap<OperationId, Operation>();
+           operationDataStore.put(operationId,operation);
+       }
+       
+       @org.junit.Test
+       public void  DeleteNodeHandlingTest() throws Exception{
+               CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+           ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+               when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+                  
+               //when(operation.getTargetObject()).thenReturn(objectId);
+               //when(objectId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+               when(nodeId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+               when(operationId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+                  
+               when(tenantManage.getNode(userId)).thenReturn(nodeMap);
+               when(tenantManage.getUserNameIdMap(userId)).thenReturn(userNameIdMap);
+               
+               when(tenantManage.getConnection(userId)).thenReturn(connectionMap);
+               when(connection.getEndNode()).thenReturn(endNodeList);
+               when(endNode.getNodeId()).thenReturn(nodeId);
+               when(connection.getConnectionId()).thenReturn(connectionId);
+               when(connectionId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+               when(tenantManage.getName(userId,new String("00001111-0000-0000-0000-000011112222"))).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+               
+               Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
+               
+               when(tenantManage.getNode(userId)).thenReturn(null);
+               when(tenantManage.getNodeDataStore(userId)).thenReturn(nodeDataStore);
+               Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
+               
+               when(tenantManage.getConnection(userId)).thenReturn(null);
+               when(tenantManage.getConnectionDataStore(userId)).thenReturn(connectionDataStore);
+               Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
+               
+               when(tenantManage.getConnectionDataStore(userId)).thenReturn(null);
+               //when(tenantManage.getOperation(userId)).thenReturn(null);
+               //when(tenantManage.getOperationDataStore(userId)).thenReturn(operationDataStore);
+               when(tenantManage.getOperation(userId)).thenReturn(operationMap);
+               when(operation.getTargetObject()).thenReturn(objectId);
+               when(objectId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+               when(operation.getOperationId()).thenReturn(operationId);
+               when(operationId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+               when(tenantManage.getUserNameIdMap(userId)).thenReturn(userNameIdMap);
+               
+               Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
+               
+               when(tenantManage.getOperation(userId)).thenReturn(null);
+               when(tenantManage.getOperationDataStore(userId)).thenReturn(operationDataStore);
+               
+               Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
+               
+               when(tenantManage.getNodeDataStore(userId)).thenReturn(null);
+               Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),"The node instance " +nodeId.getValue()+" is not exist.");
+       }
+}
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteOperationTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/deleteintent/DeleteOperationTest.java
new file mode 100644 (file)
index 0000000..b633646
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * 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.structurestyle.deleteintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;
+import static org.mockito.Mockito.mock;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+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.OperationId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+import java.util.*;
+public class DeleteOperationTest{
+       private DataBroker dataBroker;
+    private TenantManage tenantManage;
+       private UserId userId;
+       private User user;
+    private    OperationId operationId;
+       private DeleteOperation deleteoperation;
+       private Operations operations;
+       private Operation operation;
+       private OperationId notoperationId;
+       private List<Operation> operationList;
+       private   WriteTransaction  writetransaction;
+       
+       private Map<OperationId, Operation> operationMap;
+       private Map<OperationId, Operation> operationDataStore;
+       
+       
+       @org.junit.Before
+       public void setUp() throws Exception{
+       dataBroker=mock(DataBroker.class);
+       tenantManage=mock(TenantManage.class);
+    userId=mock(UserId.class);
+    operationId=mock(OperationId.class);
+       user=mock(User.class);
+       operation=mock(Operation.class);
+       notoperationId=mock(OperationId.class);
+    deleteoperation=new DeleteOperation(dataBroker,tenantManage);
+    operations=mock(Operations.class);
+    operationList=new ArrayList<Operation>(1);
+       operationList.add(operation);
+    writetransaction=mock(WriteTransaction.class);
+    
+    operationMap = new HashMap<OperationId, Operation>();
+    operationMap.put(operationId,operation);
+    
+    operationDataStore = new HashMap<OperationId, Operation>();
+    operationDataStore.put(operationId,operation);
+       
+       }
+       @org.junit.Test
+       public void DeleteOperationhandlingTest(){
+               CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
+               ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+               when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+               
+               when(tenantManage.getOperation(userId)).thenReturn(operationMap);
+               Assert.assertEquals(deleteoperation.DeleteOperationhandling(userId,operationId),null);
+               
+               when(tenantManage.getOperation(userId)).thenReturn(null);
+               when(tenantManage.getOperationDataStore(userId)).thenReturn(operationDataStore);
+               Assert.assertEquals(deleteoperation.DeleteOperationhandling(userId,operationId),null);
+               
+               when(tenantManage.getOperationDataStore(userId)).thenReturn(null);
+               when(dataBroker.newWriteOnlyTransaction()).thenReturn(writetransaction);
+           CheckedFuture<Void, TransactionCommitFailedException> f;
+           f=mock(CheckedFuture.class);
+           when(writetransaction.submit()).thenReturn(f);
+               Assert.assertEquals(deleteoperation.DeleteOperationhandling(userId,operationId),"The operation instance null is not exist.");
+       }
+}
\ No newline at end of file
diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateOperationTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/user/vnspacemanager/structurestyle/updateintent/UpdateOperationTest.java
new file mode 100644 (file)
index 0000000..efb4d03
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+ * 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.structurestyle.updateintent;
+import org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent.UpdateOperation;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.nemo.user.tenantmanager.TenantManage;
+//import org.opendaylight.nemo.user.vnspacemanager.instancecheck.OperationInstanceCheck;
+//import org.opendaylight.nemo.user.vnspacemanager.syntaxcheck.OperationDefinitionCheck;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalHostId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+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.intent.rev151010.user.intent.objects.Flow;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.hosts.PhysicalHost;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResource;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItem;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;
+
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+/**
+ * Created by Zhongwei Zhao on 2015/12/23.
+ */
+public class UpdateOperationTest {
+
+    private UpdateOperation updateOperation;
+
+    private DataBroker dataBroker;
+    private TenantManage tenantManage;
+    private UserId userId;
+    private User user;
+    private Operation operation;
+    private Objects objects;
+    
+    @org.junit.Before
+    public void setUp() throws Exception {
+        dataBroker = mock(DataBroker.class);
+        tenantManage = mock(TenantManage.class);
+        userId = mock(UserId.class);
+        user = mock(User.class);
+        operation = mock(Operation.class);
+        
+        updateOperation = new UpdateOperation(dataBroker, tenantManage);
+        objects = mock(Objects.class);
+
+    }
+    
+    @org.junit.Test
+    public void testOperationHandling() throws Exception {
+       
+       CheckedFuture operationdefinitionFuture = mock(CheckedFuture.class);
+        ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
+
+        when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+        when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(operationdefinitionFuture); 
+        //The action type has not been defined.
+       Assert.assertEquals(updateOperation.OperationHandling(userId,operation),"The action type has not been defined.");
+       
+       
+       when(operation.getAction()).thenReturn(null);
+       when(operation.getConditionSegment()).thenReturn(null);
+       
+       ObjectId objectId = mock(ObjectId.class);
+       when(operation.getTargetObject()).thenReturn(objectId);
+       //The target object is not exist.
+       Assert.assertEquals(updateOperation.OperationHandling(userId,operation),"The target null is not exist.");
+       
+       
+       when(operation.getTargetObject()).thenReturn(null);
+       //The target should not be empty.
+       Assert.assertEquals(updateOperation.OperationHandling(userId,operation),"The target should not be empty.");
+       
+       
+       when(operation.getTargetObject()).thenReturn(objectId);
+       when(tenantManage.getUser()).thenReturn(user);
+       when(user.getObjects()).thenReturn(objects);
+       
+       Node node = mock(Node.class);
+       List<Node> nodeList = new ArrayList<Node>(1);
+       nodeList.add(node);
+       when(objects.getNode()).thenReturn(nodeList);
+       
+       NodeId nodeId = mock(NodeId.class);
+       when(node.getNodeId()).thenReturn(nodeId);
+       when(nodeId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+       when(objectId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
+       
+       WriteTransaction writeTransaction = mock(WriteTransaction.class);
+       when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
+
+       OperationId operationId = mock(OperationId.class);
+       when(operation.getOperationId()).thenReturn(operationId);
+       CheckedFuture<Void, TransactionCommitFailedException> f;
+        f=mock(CheckedFuture.class);
+        when(writeTransaction.submit()).thenReturn(f);
+       //null
+       Assert.assertEquals(updateOperation.OperationHandling(userId,operation),"The target 00001111-0000-0000-0000-000011112222 is not exist.");
+       
+    }
+}
\ No newline at end of file