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
\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
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
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
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
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
\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
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
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
--- /dev/null
+/*
+ * 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
--- /dev/null
+/*
+ * 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.");
+
+ }
+}
--- /dev/null
+/*
+ * 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
--- /dev/null
+/*
+ * 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.");
+ }
+}
--- /dev/null
+/*
+ * 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
--- /dev/null
+/*
+ * 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