blob: bfc45c72bfc31adfb8860418e776a6692c7c4825 [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;
34import org.onosproject.odtn.utils.tapi.TapiTopologyHandler;
hiroki684aa2f2018-05-19 20:48:49 -070035import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.DefaultContext;
36import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.tapicontext.DefaultServiceInterfacePoint;
37import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.context.DefaultAugmentedTapiCommonContext;
38import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.node.DefaultOwnedNodeEdgePoint;
39import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topology.DefaultNode;
40import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.DefaultTopology;
41import org.onosproject.yang.model.Augmentable;
42
43import static org.easymock.EasyMock.expectLastCall;
44import static org.easymock.EasyMock.replay;
45import static org.easymock.EasyMock.verify;
46
47public class DcsBasedTapiDataProducerTest {
48
49 private DefaultContext context;
50 private DefaultTopology topology;
51 private DefaultNode node1, node2;
52 private DefaultServiceInterfacePoint sip11, sip21;
53 private DefaultOwnedNodeEdgePoint nep11, nep12, nep21, nep22;
54
55 private DeviceId did1, did2;
56 private ConnectPoint cp11, cp12, cp21, cp22;
57
58 @Before
59 public void setUp() {
60 makeTestData();
61 }
62
63 private void makeTestData() {
64
65 did1 = DeviceId.deviceId("netconf:127.0.0.1:11001");
66 did2 = DeviceId.deviceId("netconf:127.0.0.1:11002");
67
68 cp11 = new ConnectPoint(did1, PortNumber.portNumber(1, "TRANSCEIVER"));
69 cp12 = new ConnectPoint(did1, PortNumber.portNumber(2, "TRANSCEIVER"));
70 cp21 = new ConnectPoint(did2, PortNumber.portNumber(1, "TRANSCEIVER"));
71 cp22 = new ConnectPoint(did2, PortNumber.portNumber(2, "TRANSCEIVER"));
72
73 context = new DefaultContext();
74
hirokif4ed5212018-05-26 22:39:38 -070075 topology = TapiTopologyHandler.create().getModelObject();
hiroki684aa2f2018-05-19 20:48:49 -070076 DefaultAugmentedTapiCommonContext topologyContext = new DefaultAugmentedTapiCommonContext();
77 topologyContext.addToTopology(topology);
78 Augmentable augmentableContext = context;
79 augmentableContext.addAugmentation(topologyContext);
80
hirokif4ed5212018-05-26 22:39:38 -070081 node1 = TapiNodeHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -070082 .setTopologyUuid(topology.uuid())
83 .setDeviceId(did1)
84 .getModelObject();
85
hirokif4ed5212018-05-26 22:39:38 -070086 node2 = TapiNodeHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -070087 .setTopologyUuid(topology.uuid())
88 .setDeviceId(did2)
89 .getModelObject();
90
hirokif4ed5212018-05-26 22:39:38 -070091 sip11 = TapiSipHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -070092 .setConnectPoint(cp11).getModelObject();
93
hirokif4ed5212018-05-26 22:39:38 -070094 sip21 = TapiSipHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -070095 .setConnectPoint(cp21).getModelObject();
96
hirokif4ed5212018-05-26 22:39:38 -070097 nep11 = TapiNepHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -070098 .setTopologyUuid(topology.uuid())
99 .setNodeUuid(node1.uuid())
100 .setConnectPoint(cp11)
101 .addSip(sip11.uuid())
102 .getModelObject();
103
hirokif4ed5212018-05-26 22:39:38 -0700104 nep12 = TapiNepHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -0700105 .setTopologyUuid(topology.uuid())
106 .setNodeUuid(node1.uuid())
107 .setConnectPoint(cp12)
108 .getModelObject();
109
hirokif4ed5212018-05-26 22:39:38 -0700110 nep21 = TapiNepHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -0700111 .setTopologyUuid(topology.uuid())
112 .setNodeUuid(node2.uuid())
113 .setConnectPoint(cp21)
114 .addSip(sip21.uuid())
115 .getModelObject();
116
hirokif4ed5212018-05-26 22:39:38 -0700117 nep22 = TapiNepHandler.create()
hiroki684aa2f2018-05-19 20:48:49 -0700118 .setTopologyUuid(topology.uuid())
119 .setNodeUuid(node2.uuid())
120 .setConnectPoint(cp22)
121 .getModelObject();
122
123 }
124
125 @Test
126 public void testUpdateCache() {
127
128 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
129 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
130
131 topology.addToNode(node1);
132 topology.addToNode(node2);
133 context.addToServiceInterfacePoint(sip11);
134 context.addToServiceInterfacePoint(sip21);
135 node1.addToOwnedNodeEdgePoint(nep11);
136 node1.addToOwnedNodeEdgePoint(nep12);
137 node2.addToOwnedNodeEdgePoint(nep21);
138 node2.addToOwnedNodeEdgePoint(nep22);
139
140 List<TapiNodeRef> expectNodes = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700141 DcsBasedTapiObjectRefFactory.create(topology, node1).setDeviceId(did1),
142 DcsBasedTapiObjectRefFactory.create(topology, node2).setDeviceId(did2)
hiroki684aa2f2018-05-19 20:48:49 -0700143 );
144 List<TapiNepRef> expectNeps = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700145 DcsBasedTapiObjectRefFactory.create(topology, node1, nep11).setConnectPoint(cp11)
hiroki684aa2f2018-05-19 20:48:49 -0700146 .setSipId(sip11.uuid().toString()),
hirokifca084b2018-06-02 08:29:42 -0700147 DcsBasedTapiObjectRefFactory.create(topology, node1, nep12).setConnectPoint(cp12),
148 DcsBasedTapiObjectRefFactory.create(topology, node2, nep21).setConnectPoint(cp21)
hiroki684aa2f2018-05-19 20:48:49 -0700149 .setSipId(sip21.uuid().toString()),
hirokifca084b2018-06-02 08:29:42 -0700150 DcsBasedTapiObjectRefFactory.create(topology, node2, nep22).setConnectPoint(cp22)
hiroki684aa2f2018-05-19 20:48:49 -0700151 );
152
153 mockResolver.addNodeRefList(expectNodes);
154 expectLastCall().once();
155 mockResolver.addNepRefList(expectNeps);
156 expectLastCall().once();
157 replay(mockResolver);
158
159 dataProvider.updateCache(mockResolver, context);
160 verify(mockResolver);
161 }
162
163 @Test
164 public void testUpdateCacheWithoutSip() {
165
166 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
167 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
168
169 topology.addToNode(node1);
170 topology.addToNode(node2);
171 node1.addToOwnedNodeEdgePoint(nep11);
172 node2.addToOwnedNodeEdgePoint(nep21);
173 node2.addToOwnedNodeEdgePoint(nep22);
174
175 List<TapiNodeRef> expectNodes = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700176 DcsBasedTapiObjectRefFactory.create(topology, node1).setDeviceId(did1),
177 DcsBasedTapiObjectRefFactory.create(topology, node2).setDeviceId(did2)
hiroki684aa2f2018-05-19 20:48:49 -0700178 );
179 List<TapiNepRef> expectNeps = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700180 DcsBasedTapiObjectRefFactory.create(topology, node1, nep11).setConnectPoint(cp11),
181 DcsBasedTapiObjectRefFactory.create(topology, node2, nep21).setConnectPoint(cp21),
182 DcsBasedTapiObjectRefFactory.create(topology, node2, nep22).setConnectPoint(cp22)
hiroki684aa2f2018-05-19 20:48:49 -0700183 );
184
185 mockResolver.addNodeRefList(expectNodes);
186 expectLastCall().once();
187 mockResolver.addNepRefList(expectNeps);
188 expectLastCall().once();
189 replay(mockResolver);
190
191 dataProvider.updateCache(mockResolver, context);
192 verify(mockResolver);
193 }
194
195 @Test
196 public void testUpdateCacheWithoutNep() {
197
198 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
199 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
200
201 topology.addToNode(node1);
202 topology.addToNode(node2);
203
204 List<TapiNodeRef> expectNodes = Arrays.asList(
hirokifca084b2018-06-02 08:29:42 -0700205 DcsBasedTapiObjectRefFactory.create(topology, node1).setDeviceId(did1),
206 DcsBasedTapiObjectRefFactory.create(topology, node2).setDeviceId(did2)
hiroki684aa2f2018-05-19 20:48:49 -0700207 );
208 List<TapiNepRef> expectNeps = Collections.emptyList();
209
210 mockResolver.addNodeRefList(expectNodes);
211 expectLastCall().once();
212 mockResolver.addNepRefList(expectNeps);
213 expectLastCall().once();
214 replay(mockResolver);
215
216 dataProvider.updateCache(mockResolver, context);
217 verify(mockResolver);
218 }
219
220 @Test
221 public void testUpdateCacheWithoutNode() {
222
223 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
224 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
225
226 List<TapiNodeRef> expectNodes = Collections.emptyList();
227 List<TapiNepRef> expectNeps = Collections.emptyList();
228
229 mockResolver.addNodeRefList(expectNodes);
230 expectLastCall().once();
231 mockResolver.addNepRefList(expectNeps);
232 expectLastCall().once();
233 replay(mockResolver);
234
235 dataProvider.updateCache(mockResolver, context);
236 verify(mockResolver);
237 }
238
hiroki684aa2f2018-05-19 20:48:49 -0700239}