2 * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
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
8 package org.opendaylight.nemo.user.vnspacemanager.structurestyle.updateintent;
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;
34 import java.util.HashMap;
35 import java.util.List;
37 import java.util.ArrayList;
38 import java.util.HashMap;
39 import java.util.List;
41 import java.util.HashMap;
42 import java.util.List;
44 import java.util.LinkedList;
45 import org.junit.Assert;
46 import org.junit.Before;
47 import org.junit.Test;
49 import java.util.List;
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;
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;
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;
73 import static org.junit.Assert.*;
74 import static org.junit.Assert.*;
77 * Created by ldzd11 on 2015/12/22.
79 public class GetDefinitionsTest {
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;
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);
97 getDefinitions = new GetDefinitions(dataBroker);
101 public void testGetNodeDefinition() throws Exception {
102 //fetchNodeDefinitions
104 Class<GetDefinitions> class_1 = GetDefinitions.class;
105 Field field = class_1.getDeclaredField("nodeDefinitionList");
106 field.setAccessible(true);
108 field.set(getDefinitions,nodeDefinitionList);
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);
115 when(nodeDefinition.getNodeType()).thenReturn(nodeType);
116 Assert.assertEquals(getDefinitions.getNodeDefinition(),map);
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);
127 List<MatchItemDefinition> matchItemDefinitionList = new ArrayList<MatchItemDefinition>();
128 matchItemDefinitionList.add(matchItemDefinition);
130 Class<GetDefinitions> class_1 = GetDefinitions.class;
131 Field field = class_1.getDeclaredField("matchItemDefinitionList");
132 field.setAccessible(true);
134 field.set(getDefinitions, matchItemDefinitionList);
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);
150 public void testGetConnectionDefinition() throws Exception {
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);
159 Class<GetDefinitions> class_1 = GetDefinitions.class;
160 Field field = class_1.getDeclaredField("connectionDefinitionsList");
161 field.setAccessible(true);
163 field.set(getDefinitions, connectionDefinitionList);
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);
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);
184 Class<GetDefinitions> class_1 = GetDefinitions.class;
185 Field field = class_1.getDeclaredField("actionDefinitionList");
186 field.setAccessible(true);
188 field.set(getDefinitions, actionDefinitionList);
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);
196 when(actionDefinition.getActionName()).thenReturn(actionName);
197 Assert.assertEquals(getDefinitions.getActionDefinition(), map1);
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);
209 List<ConditionParameterDefinition> conditionParameterDefinitionList = new ArrayList<ConditionParameterDefinition>();
210 conditionParameterDefinitionList.add(conditionParameterDefinition);
212 Class<GetDefinitions> class_1 = GetDefinitions.class;
213 Field field = class_1.getDeclaredField("conditionParameterDefinitionList");
214 field.setAccessible(true);
216 field.set(getDefinitions, conditionParameterDefinitionList);
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);
225 Assert.assertEquals(getDefinitions.getConditionParameterDefinition(), map1);