Modified some test files because of changed source files
[nemo.git] / nemo-impl / src / test / java / org / opendaylight / nemo / user / vnspacemanager / structurestyle / deleteintent / DeleteNodeTest.java
1 /*
2  * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.nemo.user.vnspacemanager.structurestyle.deleteintent;
9 import org.opendaylight.nemo.user.vnspacemanager.structurestyle.*;
10 import org.opendaylight.nemo.user.vnspacemanager.structurestyle.deleteintent.DeleteNode;
11 import static org.mockito.Mockito.mock;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.Test;
15 //import org.opendaylight.nemo.user.vnspacemanager.structurestyle.deletenode;
16
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
18 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.VirtualNetwork;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLinkBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPath;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPathBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPort;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPortBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;
28 import org.opendaylight.nemo.intent.computation.VNComputationUnit;
29 import org.opendaylight.nemo.intent.condition.ConditionManager;
30 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;
31 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;
32 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;
33 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;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ActionName;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.IntentId;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeType;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.*;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
43
44
45 import org.opendaylight.nemo.user.vnspacemanager.languagestyle.NEMOConstants;
46
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.EndNode;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.instance.ConditionSegment;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;
52 import org.slf4j.Logger;
53 import org.slf4j.LoggerFactory;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
55
56
57
58
59
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.hosts.PhysicalHost;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
63 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;
64 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;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalHostId;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalNodeId;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNodeId;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItem;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Operations;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.OperationKey;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.OperationId;
81 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
82 import org.opendaylight.nemo.user.tenantmanager.TenantManage;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.FlowId;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.FlowKey;
89
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;
91 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
92 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
93 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
94 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
95 import com.google.common.util.concurrent.CheckedFuture;
96 import com.google.common.util.concurrent.FutureCallback;
97 import com.google.common.util.concurrent.Futures;
98 import org.slf4j.Logger;
99 import org.slf4j.LoggerFactory;
100 import java.util.*;
101 import java.util.List;
102 import java.util.Map;
103 import java.util.HashMap;
104 import java.util.UUID;
105 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
106 import static org.junit.Assert.*;
107 import static org.mockito.Mockito.*;
108 public class DeleteNodeTest{
109         private DataBroker dataBroker;
110     private TenantManage tenantManage;
111     private DeleteNode deletenode;
112         private Node node;
113         private Operation operation;
114         
115         private NodeId nodeId;
116         private UserId userId;
117         private OperationId operationId;
118         private ObjectId objectId;
119         
120         private Connection connection;
121         private ConnectionId connectionId;
122         private List<EndNode> endNodeList;
123         private EndNode endNode;
124         
125         private WriteTransaction writetransaction;
126         
127         private Map<NodeId, Node> nodeMap;
128         private Map<NodeId, Node> nodeDataStore;
129         private Map<ConnectionId, Connection> connectionMap;
130         private Map<ConnectionId, Connection> connectionDataStore;
131         private Map<String, String> userNameIdMap;
132         private Map<OperationId, Operation> operationMap;
133         private Map<OperationId, Operation> operationDataStore;
134         
135         @org.junit.Before
136         public void setUp() throws Exception {
137                 dataBroker=mock(DataBroker.class);
138                 tenantManage=mock(TenantManage.class);
139                 
140                 writetransaction=mock(WriteTransaction.class);
141                 
142                 node = mock(Node.class);
143                 nodeId = mock(NodeId.class);
144                 objectId = mock(ObjectId.class);
145                 operation = mock(Operation.class);
146                 operationId = mock(OperationId.class);
147                 
148                 connection = mock(Connection.class);
149                 connectionId = mock(ConnectionId.class);
150                 endNode = mock(EndNode.class);
151                 endNodeList = new ArrayList<EndNode>();
152                 endNodeList.add(endNode);
153                 
154                 deletenode = new DeleteNode(dataBroker,tenantManage);
155                 
156                 nodeMap = new HashMap<NodeId, Node>();
157                 nodeMap.put(nodeId,node);
158                 
159                 nodeDataStore = new HashMap<NodeId, Node>();
160                 nodeDataStore.put(nodeId,node);
161                 
162                 connectionMap = new HashMap<ConnectionId, Connection>();
163                 connectionMap.put(connectionId,connection);
164                 
165                 connectionDataStore = new HashMap<ConnectionId, Connection>();
166                 connectionDataStore.put(connectionId,connection);
167                 
168                 userNameIdMap = new HashMap<String, String>();
169                 userNameIdMap.put(new String("00001111-0000-0000-0000-000011112222"),new String("00001111-0000-0000-0000-000011112222"));
170                 
171                 operationMap = new HashMap<OperationId, Operation>();
172             operationMap.put(operationId,operation);
173             
174             operationDataStore = new HashMap<OperationId, Operation>();
175             operationDataStore.put(operationId,operation);
176         }
177         
178         @org.junit.Test
179         public void  DeleteNodeHandlingTest() throws Exception{
180                 CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
181             ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
182                 when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
183                    
184                 //when(operation.getTargetObject()).thenReturn(objectId);
185                 //when(objectId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
186                 when(nodeId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
187                 when(operationId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
188                    
189                 when(tenantManage.getNode(userId)).thenReturn(nodeMap);
190                 when(tenantManage.getUserNameIdMap(userId)).thenReturn(userNameIdMap);
191                 
192                 when(tenantManage.getConnection(userId)).thenReturn(connectionMap);
193                 when(connection.getEndNode()).thenReturn(endNodeList);
194                 when(endNode.getNodeId()).thenReturn(nodeId);
195                 when(connection.getConnectionId()).thenReturn(connectionId);
196                 when(connectionId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
197                 when(tenantManage.getName(userId,new String("00001111-0000-0000-0000-000011112222"))).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
198                 
199                 Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
200                 
201                 when(tenantManage.getNode(userId)).thenReturn(null);
202                 when(tenantManage.getNodeDataStore(userId)).thenReturn(nodeDataStore);
203                 Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
204                 
205                 when(tenantManage.getConnection(userId)).thenReturn(null);
206                 when(tenantManage.getConnectionDataStore(userId)).thenReturn(connectionDataStore);
207                 Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
208                 
209                 when(tenantManage.getConnectionDataStore(userId)).thenReturn(null);
210                 //when(tenantManage.getOperation(userId)).thenReturn(null);
211                 //when(tenantManage.getOperationDataStore(userId)).thenReturn(operationDataStore);
212                 when(tenantManage.getOperation(userId)).thenReturn(operationMap);
213                 when(operation.getTargetObject()).thenReturn(objectId);
214                 when(objectId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
215                 when(operation.getOperationId()).thenReturn(operationId);
216                 when(operationId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
217                 when(tenantManage.getUserNameIdMap(userId)).thenReturn(userNameIdMap);
218                 
219                 Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
220                 
221                 when(tenantManage.getOperation(userId)).thenReturn(null);
222                 when(tenantManage.getOperationDataStore(userId)).thenReturn(operationDataStore);
223                 
224                 Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),null);
225                 
226                 when(tenantManage.getNodeDataStore(userId)).thenReturn(null);
227                 Assert.assertEquals(deletenode.DeleNodeHandling(userId,nodeId),"The node instance " +nodeId.getValue()+" is not exist.");
228         }
229 }