4b065ab68b0961a04209dee6ec10dad83b1e935b
[nemo.git] / nemo-impl / src / test / java / org / opendaylight / nemo / user / vnspacemanager / structurestyle / updateintent / GetDefinitionsTest.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.updateintent;
9
10 import org.junit.Assert;
11 import org.junit.Before;
12 import org.junit.Test;
13 import com.google.common.base.Optional;
14 import com.google.common.util.concurrent.FutureCallback;
15 import com.google.common.util.concurrent.Futures;
16 import com.google.common.util.concurrent.ListenableFuture;
17 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
18 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.ConnectionDefinitions;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.MatchItemDefinitions;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.NodeDefinitions;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.definitions.ConnectionDefinition;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.definitions.MatchItemDefinition;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.definitions.NodeDefinition;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.ActionDefinitions;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.ConditionParameterDefinitions;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.definitions.ActionDefinition;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.condition.parameter.definitions.ConditionParameterDefinition;
30 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
31 import org.slf4j.Logger;
32 import org.slf4j.LoggerFactory;
33
34 import java.util.HashMap;
35 import java.util.List;
36 import java.util.Map;
37 import java.util.ArrayList;
38 import java.util.HashMap;
39 import java.util.List;
40 import java.util.Map;
41 import java.util.HashMap;
42 import java.util.List;
43 import java.util.Map;
44 import java.util.LinkedList;
45 import org.junit.Assert;
46 import org.junit.Before;
47 import org.junit.Test;
48 import java.util.*;
49 import java.util.List;
50
51 import static org.mockito.Matchers.any;
52 import static org.mockito.Mockito.mock;
53 import static org.mockito.Mockito.times;
54 import static org.mockito.Mockito.verify;
55 import static org.mockito.Mockito.when;
56 import com.google.common.util.concurrent.CheckedFuture;
57
58 import java.lang.reflect.Field;
59 import java.lang.reflect.Method;
60 import java.util.ArrayList;
61 import java.util.List;
62 import java.lang.reflect.Field;
63 import java.lang.reflect.Method;
64 import java.util.HashMap;
65 import java.util.List;
66 import java.util.Map;
67 import java.util.concurrent.ExecutionException;
68 import java.util.concurrent.TimeUnit;
69 import java.util.concurrent.TimeoutException;
70 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
71
72
73 import static org.junit.Assert.*;
74 import static org.junit.Assert.*;
75
76 /**
77  * Created by ldzd11 on 2015/12/22.
78  */
79 public class GetDefinitionsTest {
80
81     private GetDefinitions getDefinitions;
82     private DataBroker dataBroker;
83     private NodeDefinition nodeDefinition;
84     private List<NodeDefinition> nodeDefinitionList;
85     private Map<NodeType,NodeDefinition> map;
86     private NodeType nodeType;
87     @Before
88     public void setUp() throws Exception {
89         dataBroker = mock(DataBroker.class);
90         nodeDefinition = mock(NodeDefinition.class);
91         nodeDefinitionList = new ArrayList<NodeDefinition>(1);
92         nodeDefinitionList.add(nodeDefinition);
93         nodeType = mock(NodeType.class);
94         map = new HashMap<NodeType, NodeDefinition>();
95         map.put(nodeType, nodeDefinition);
96
97         getDefinitions = new GetDefinitions(dataBroker);
98     }
99
100     @Test
101     public void testGetNodeDefinition() throws Exception {
102         //fetchNodeDefinitions
103
104         Class<GetDefinitions> class_1 = GetDefinitions.class;
105         Field field = class_1.getDeclaredField("nodeDefinitionList");
106         field.setAccessible(true);
107
108         field.set(getDefinitions,nodeDefinitionList);
109
110         CheckedFuture nodedefinitionFuture = mock(CheckedFuture.class);
111         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
112         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
113         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(nodedefinitionFuture);
114
115         when(nodeDefinition.getNodeType()).thenReturn(nodeType);
116         Assert.assertEquals(getDefinitions.getNodeDefinition(),map);
117
118     }
119
120     @Test
121     public void testGetMatchItemDefinition() throws Exception {
122         Map<MatchItemName, MatchItemDefinition> map1 = new HashMap<MatchItemName, MatchItemDefinition>();
123         MatchItemName matchItemName = mock(MatchItemName.class);
124         MatchItemDefinition matchItemDefinition = mock(MatchItemDefinition.class);
125         map1.put(matchItemName, matchItemDefinition);
126
127         List<MatchItemDefinition> matchItemDefinitionList = new ArrayList<MatchItemDefinition>();
128         matchItemDefinitionList.add(matchItemDefinition);
129
130         Class<GetDefinitions> class_1 = GetDefinitions.class;
131         Field field = class_1.getDeclaredField("matchItemDefinitionList");
132         field.setAccessible(true);
133
134         field.set(getDefinitions, matchItemDefinitionList);
135
136
137         CheckedFuture matchitemdefinitionFuture = mock(CheckedFuture.class);
138         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
139         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
140         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(matchitemdefinitionFuture);
141         when(matchItemDefinition.getMatchItemName()).thenReturn(matchItemName);
142         Assert.assertEquals(getDefinitions.getMatchItemDefinition(), map1);
143
144
145
146
147     }
148
149     @Test
150     public void testGetConnectionDefinition() throws Exception {
151
152         Map<ConnectionType, ConnectionDefinition> map1 = new HashMap<ConnectionType, ConnectionDefinition>();
153         ConnectionType connectionType = mock(ConnectionType.class);
154         ConnectionDefinition connectionDefinition = mock(ConnectionDefinition.class);
155         map1.put(connectionType,connectionDefinition);
156         List<ConnectionDefinition> connectionDefinitionList = new ArrayList<ConnectionDefinition>();
157         connectionDefinitionList.add(connectionDefinition);
158
159         Class<GetDefinitions> class_1 = GetDefinitions.class;
160         Field field = class_1.getDeclaredField("connectionDefinitionsList");
161         field.setAccessible(true);
162
163         field.set(getDefinitions, connectionDefinitionList);
164
165         CheckedFuture connectiondefinitionFuture = mock(CheckedFuture.class);
166         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
167         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
168         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(connectiondefinitionFuture);
169         when(connectionDefinition.getConnectionType()).thenReturn(connectionType);
170         Assert.assertEquals(getDefinitions.getConnectionDefinition(), map1);
171
172
173     }
174
175     @Test
176     public void testGetActionDefinition() throws Exception {
177         Map<ActionName,ActionDefinition> map1 = new HashMap<ActionName, ActionDefinition>();
178         ActionName actionName = mock(ActionName.class);
179         ActionDefinition actionDefinition = mock(ActionDefinition.class);
180         map1.put(actionName,actionDefinition);
181         List<ActionDefinition> actionDefinitionList = new ArrayList<ActionDefinition>();
182         actionDefinitionList.add(actionDefinition);
183
184         Class<GetDefinitions> class_1 = GetDefinitions.class;
185         Field field = class_1.getDeclaredField("actionDefinitionList");
186         field.setAccessible(true);
187
188         field.set(getDefinitions, actionDefinitionList);
189
190
191         CheckedFuture actiondefinitionFuture = mock(CheckedFuture.class);
192         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
193         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
194         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(actiondefinitionFuture);
195
196         when(actionDefinition.getActionName()).thenReturn(actionName);
197         Assert.assertEquals(getDefinitions.getActionDefinition(), map1);
198
199
200     }
201
202     @Test
203     public void testGetConditionParameterDefinition() throws Exception {
204         Map<ParameterName, ConditionParameterDefinition> map1 = new HashMap<ParameterName, ConditionParameterDefinition>();
205         ParameterName parameterName = mock(ParameterName.class);
206         ConditionParameterDefinition conditionParameterDefinition = mock(ConditionParameterDefinition.class);
207         map1.put(parameterName,conditionParameterDefinition);
208
209         List<ConditionParameterDefinition> conditionParameterDefinitionList = new ArrayList<ConditionParameterDefinition>();
210         conditionParameterDefinitionList.add(conditionParameterDefinition);
211
212         Class<GetDefinitions> class_1 = GetDefinitions.class;
213         Field field = class_1.getDeclaredField("conditionParameterDefinitionList");
214         field.setAccessible(true);
215
216         field.set(getDefinitions, conditionParameterDefinitionList);
217
218
219         CheckedFuture conditionparadefinitionFuture = mock(CheckedFuture.class);
220         ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
221         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
222         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(conditionparadefinitionFuture);
223         when(conditionParameterDefinition.getParameterName()).thenReturn(parameterName);
224
225         Assert.assertEquals(getDefinitions.getConditionParameterDefinition(), map1);
226
227
228     }
229 }