blob: 64278fe6fd869500c8f4cb6c73954e1830081c6e [file] [log] [blame]
hiroki684aa2f2018-05-19 20:48:49 -07001/*
2 * Copyright 2018-present Open Networking Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.odtn.internal;
18
19import java.util.Arrays;
20import java.util.Collections;
21import java.util.List;
22import org.easymock.EasyMock;
23import org.junit.Before;
24import org.junit.Test;
25import org.onosproject.net.ConnectPoint;
26import org.onosproject.net.DeviceId;
27import org.onosproject.net.PortNumber;
hirokifca084b2018-06-02 08:29:42 -070028import org.onosproject.odtn.utils.tapi.DcsBasedTapiObjectRefFactory;
hirokif4ed5212018-05-26 22:39:38 -070029import org.onosproject.odtn.utils.tapi.TapiNepHandler;
hiroki684aa2f2018-05-19 20:48:49 -070030import org.onosproject.odtn.utils.tapi.TapiNepRef;
hirokif4ed5212018-05-26 22:39:38 -070031import org.onosproject.odtn.utils.tapi.TapiNodeHandler;
hiroki684aa2f2018-05-19 20:48:49 -070032import org.onosproject.odtn.utils.tapi.TapiNodeRef;
hirokif4ed5212018-05-26 22:39:38 -070033import org.onosproject.odtn.utils.tapi.TapiSipHandler;
hirokid8fd7862018-10-09 15:24:24 +090034import org.onosproject.odtn.utils.tapi.TapiTopologyContextHandler;
hirokif4ed5212018-05-26 22:39:38 -070035import org.onosproject.odtn.utils.tapi.TapiTopologyHandler;
hirokid8fd7862018-10-09 15:24:24 +090036import org.onosproject.yang.gen.v1.tapicommon.rev20181016.tapicommon.DefaultContext;
37import org.onosproject.yang.gen.v1.tapicommon.rev20181016.tapicommon.tapicontext.DefaultServiceInterfacePoint;
38import org.onosproject.yang.gen.v1.tapitopology.rev20181016.tapitopology.context.DefaultAugmentedTapiCommonContext;
39import org.onosproject.yang.gen.v1.tapitopology.rev20181016.tapitopology.context.augmentedtapicommoncontext.DefaultTopologyContext;
40import org.onosproject.yang.gen.v1.tapitopology.rev20181016.tapitopology.node.DefaultOwnedNodeEdgePoint;
41import org.onosproject.yang.gen.v1.tapitopology.rev20181016.tapitopology.topology.DefaultNode;
42import org.onosproject.yang.gen.v1.tapitopology.rev20181016.tapitopology.topologycontext.DefaultTopology;
hiroki684aa2f2018-05-19 20:48:49 -070043import org.onosproject.yang.model.Augmentable;
44
45import static org.easymock.EasyMock.expectLastCall;
46import static org.easymock.EasyMock.replay;
47import static org.easymock.EasyMock.verify;
48
49public class DcsBasedTapiDataProducerTest {
50
51 private DefaultContext context;
52 private DefaultTopology topology;
53 private DefaultNode node1, node2;
54 private DefaultServiceInterfacePoint sip11, sip21;
55 private DefaultOwnedNodeEdgePoint nep11, nep12, nep21, nep22;
56
57 private DeviceId did1, did2;
58 private ConnectPoint cp11, cp12, cp21, cp22;
59
60 @Before
61 public void setUp() {
62 makeTestData();
63 }
64
65 private void makeTestData() {
66
67 did1 = DeviceId.deviceId("netconf:127.0.0.1:11001");
68 did2 = DeviceId.deviceId("netconf:127.0.0.1:11002");
69
70 cp11 = new ConnectPoint(did1, PortNumber.portNumber(1, "TRANSCEIVER"));
71 cp12 = new ConnectPoint(did1, PortNumber.portNumber(2, "TRANSCEIVER"));
72 cp21 = new ConnectPoint(did2, PortNumber.portNumber(1, "TRANSCEIVER"));
73 cp22 = new ConnectPoint(did2, PortNumber.portNumber(2, "TRANSCEIVER"));
74
75 context = new DefaultContext();
76
hirokif4ed5212018-05-26 22:39:38 -070077 topology = TapiTopologyHandler.create().getModelObject();
hirokid8fd7862018-10-09 15:24:24 +090078 DefaultTopologyContext topologyContext = TapiTopologyContextHandler.create().getModelObject();
79
80 DefaultAugmentedTapiCommonContext augmentedTopologyContext = new DefaultAugmentedTapiCommonContext();
hiroki684aa2f2018-05-19 20:48:49 -070081 Augmentable augmentableContext = context;
hirokid8fd7862018-10-09 15:24:24 +090082 augmentableContext.addAugmentation(augmentedTopologyContext);
83
84 augmentedTopologyContext.topologyContext(topologyContext);
85 topologyContext.addToTopology(topology);
hiroki684aa2f2018-05-19 20:48:49 -070086
hirokif4ed5212018-05-26 22:39:38 -070087 node1 = TapiNodeHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -070088 .setTopologyUuid(topology.uuid())
89 .setDeviceId(did1)
90 .getModelObject();
91
hirokif4ed5212018-05-26 22:39:38 -070092 node2 = TapiNodeHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -070093 .setTopologyUuid(topology.uuid())
94 .setDeviceId(did2)
95 .getModelObject();
96
hirokif4ed5212018-05-26 22:39:38 -070097 sip11 = TapiSipHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -070098 .setConnectPoint(cp11).getModelObject();
99
hirokif4ed5212018-05-26 22:39:38 -0700100 sip21 = TapiSipHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -0700101 .setConnectPoint(cp21).getModelObject();
102
hirokif4ed5212018-05-26 22:39:38 -0700103 nep11 = TapiNepHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -0700104 .setTopologyUuid(topology.uuid())
105 .setNodeUuid(node1.uuid())
106 .setConnectPoint(cp11)
107 .addSip(sip11.uuid())
108 .getModelObject();
109
hirokif4ed5212018-05-26 22:39:38 -0700110 nep12 = TapiNepHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -0700111 .setTopologyUuid(topology.uuid())
112 .setNodeUuid(node1.uuid())
113 .setConnectPoint(cp12)
114 .getModelObject();
115
hirokif4ed5212018-05-26 22:39:38 -0700116 nep21 = TapiNepHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -0700117 .setTopologyUuid(topology.uuid())
118 .setNodeUuid(node2.uuid())
119 .setConnectPoint(cp21)
120 .addSip(sip21.uuid())
121 .getModelObject();
122
hirokif4ed5212018-05-26 22:39:38 -0700123 nep22 = TapiNepHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -0700124 .setTopologyUuid(topology.uuid())
125 .setNodeUuid(node2.uuid())
126 .setConnectPoint(cp22)
127 .getModelObject();
128
129 }
130
131 @Test
132 public void testUpdateCache() {
133
134 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
135 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
136
137 topology.addToNode(node1);
138 topology.addToNode(node2);
139 context.addToServiceInterfacePoint(sip11);
140 context.addToServiceInterfacePoint(sip21);
141 node1.addToOwnedNodeEdgePoint(nep11);
142 node1.addToOwnedNodeEdgePoint(nep12);
143 node2.addToOwnedNodeEdgePoint(nep21);
144 node2.addToOwnedNodeEdgePoint(nep22);
145
146 List<TapiNodeRef> expectNodes = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700147 DcsBasedTapiObjectRefFactory.create(topology, node1).setDeviceId(did1),
148 DcsBasedTapiObjectRefFactory.create(topology, node2).setDeviceId(did2)
hiroki684aa2f2018-05-19 20:48:49 -0700149 );
150 List<TapiNepRef> expectNeps = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700151 DcsBasedTapiObjectRefFactory.create(topology, node1, nep11).setConnectPoint(cp11)
hiroki684aa2f2018-05-19 20:48:49 -0700152 .setSipId(sip11.uuid().toString()),
hirokifca084b2018-06-02 08:29:42 -0700153 DcsBasedTapiObjectRefFactory.create(topology, node1, nep12).setConnectPoint(cp12),
154 DcsBasedTapiObjectRefFactory.create(topology, node2, nep21).setConnectPoint(cp21)
hiroki684aa2f2018-05-19 20:48:49 -0700155 .setSipId(sip21.uuid().toString()),
hirokifca084b2018-06-02 08:29:42 -0700156 DcsBasedTapiObjectRefFactory.create(topology, node2, nep22).setConnectPoint(cp22)
hiroki684aa2f2018-05-19 20:48:49 -0700157 );
158
159 mockResolver.addNodeRefList(expectNodes);
160 expectLastCall().once();
161 mockResolver.addNepRefList(expectNeps);
162 expectLastCall().once();
163 replay(mockResolver);
164
165 dataProvider.updateCache(mockResolver, context);
166 verify(mockResolver);
167 }
168
169 @Test
170 public void testUpdateCacheWithoutSip() {
171
172 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
173 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
174
175 topology.addToNode(node1);
176 topology.addToNode(node2);
177 node1.addToOwnedNodeEdgePoint(nep11);
178 node2.addToOwnedNodeEdgePoint(nep21);
179 node2.addToOwnedNodeEdgePoint(nep22);
180
181 List<TapiNodeRef> expectNodes = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700182 DcsBasedTapiObjectRefFactory.create(topology, node1).setDeviceId(did1),
183 DcsBasedTapiObjectRefFactory.create(topology, node2).setDeviceId(did2)
hiroki684aa2f2018-05-19 20:48:49 -0700184 );
185 List<TapiNepRef> expectNeps = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700186 DcsBasedTapiObjectRefFactory.create(topology, node1, nep11).setConnectPoint(cp11),
187 DcsBasedTapiObjectRefFactory.create(topology, node2, nep21).setConnectPoint(cp21),
188 DcsBasedTapiObjectRefFactory.create(topology, node2, nep22).setConnectPoint(cp22)
hiroki684aa2f2018-05-19 20:48:49 -0700189 );
190
191 mockResolver.addNodeRefList(expectNodes);
192 expectLastCall().once();
193 mockResolver.addNepRefList(expectNeps);
194 expectLastCall().once();
195 replay(mockResolver);
196
197 dataProvider.updateCache(mockResolver, context);
198 verify(mockResolver);
199 }
200
201 @Test
202 public void testUpdateCacheWithoutNep() {
203
204 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
205 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
206
207 topology.addToNode(node1);
208 topology.addToNode(node2);
209
210 List<TapiNodeRef> expectNodes = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700211 DcsBasedTapiObjectRefFactory.create(topology, node1).setDeviceId(did1),
212 DcsBasedTapiObjectRefFactory.create(topology, node2).setDeviceId(did2)
hiroki684aa2f2018-05-19 20:48:49 -0700213 );
214 List<TapiNepRef> expectNeps = Collections.emptyList();
215
216 mockResolver.addNodeRefList(expectNodes);
217 expectLastCall().once();
218 mockResolver.addNepRefList(expectNeps);
219 expectLastCall().once();
220 replay(mockResolver);
221
222 dataProvider.updateCache(mockResolver, context);
223 verify(mockResolver);
224 }
225
226 @Test
227 public void testUpdateCacheWithoutNode() {
228
229 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
230 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
231
232 List<TapiNodeRef> expectNodes = Collections.emptyList();
233 List<TapiNepRef> expectNeps = Collections.emptyList();
234
235 mockResolver.addNodeRefList(expectNodes);
236 expectLastCall().once();
237 mockResolver.addNepRefList(expectNeps);
238 expectLastCall().once();
239 replay(mockResolver);
240
241 dataProvider.updateCache(mockResolver, context);
242 verify(mockResolver);
243 }
244
hirokid8fd7862018-10-09 15:24:24 +0900245}