blob: b259235fc92ba60f59e9df01261ea5d51d6f2d31 [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;
28import org.onosproject.odtn.utils.tapi.DcsBasedTapiNepRef;
29import org.onosproject.odtn.utils.tapi.DcsBasedTapiNodeRef;
30import org.onosproject.odtn.utils.tapi.TapiNepBuilder;
31import org.onosproject.odtn.utils.tapi.TapiNepRef;
32import org.onosproject.odtn.utils.tapi.TapiNodeBuilder;
33import org.onosproject.odtn.utils.tapi.TapiNodeRef;
34import org.onosproject.odtn.utils.tapi.TapiSipBuilder;
35import org.onosproject.odtn.utils.tapi.TapiTopologyBuilder;
36import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.DefaultContext;
37import org.onosproject.yang.gen.v1.tapicommon.rev20180307.tapicommon.tapicontext.DefaultServiceInterfacePoint;
38import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.context.DefaultAugmentedTapiCommonContext;
39import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.node.DefaultOwnedNodeEdgePoint;
40import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topology.DefaultNode;
41import org.onosproject.yang.gen.v1.tapitopology.rev20180307.tapitopology.topologycontext.DefaultTopology;
42import org.onosproject.yang.model.Augmentable;
43
44import static org.easymock.EasyMock.expectLastCall;
45import static org.easymock.EasyMock.replay;
46import static org.easymock.EasyMock.verify;
47
48public class DcsBasedTapiDataProducerTest {
49
50 private DefaultContext context;
51 private DefaultTopology topology;
52 private DefaultNode node1, node2;
53 private DefaultServiceInterfacePoint sip11, sip21;
54 private DefaultOwnedNodeEdgePoint nep11, nep12, nep21, nep22;
55
56 private DeviceId did1, did2;
57 private ConnectPoint cp11, cp12, cp21, cp22;
58
59 @Before
60 public void setUp() {
61 makeTestData();
62 }
63
64 private void makeTestData() {
65
66 did1 = DeviceId.deviceId("netconf:127.0.0.1:11001");
67 did2 = DeviceId.deviceId("netconf:127.0.0.1:11002");
68
69 cp11 = new ConnectPoint(did1, PortNumber.portNumber(1, "TRANSCEIVER"));
70 cp12 = new ConnectPoint(did1, PortNumber.portNumber(2, "TRANSCEIVER"));
71 cp21 = new ConnectPoint(did2, PortNumber.portNumber(1, "TRANSCEIVER"));
72 cp22 = new ConnectPoint(did2, PortNumber.portNumber(2, "TRANSCEIVER"));
73
74 context = new DefaultContext();
75
76 topology = TapiTopologyBuilder.builder(new DefaultTopology()).getModelObject();
77 DefaultAugmentedTapiCommonContext topologyContext = new DefaultAugmentedTapiCommonContext();
78 topologyContext.addToTopology(topology);
79 Augmentable augmentableContext = context;
80 augmentableContext.addAugmentation(topologyContext);
81
82 node1 = TapiNodeBuilder.builder()
83 .setTopologyUuid(topology.uuid())
84 .setDeviceId(did1)
85 .getModelObject();
86
87 node2 = TapiNodeBuilder.builder()
88 .setTopologyUuid(topology.uuid())
89 .setDeviceId(did2)
90 .getModelObject();
91
92 sip11 = TapiSipBuilder.builder()
93 .setConnectPoint(cp11).getModelObject();
94
95 sip21 = TapiSipBuilder.builder()
96 .setConnectPoint(cp21).getModelObject();
97
98 nep11 = TapiNepBuilder.builder()
99 .setTopologyUuid(topology.uuid())
100 .setNodeUuid(node1.uuid())
101 .setConnectPoint(cp11)
102 .addSip(sip11.uuid())
103 .getModelObject();
104
105 nep12 = TapiNepBuilder.builder()
106 .setTopologyUuid(topology.uuid())
107 .setNodeUuid(node1.uuid())
108 .setConnectPoint(cp12)
109 .getModelObject();
110
111 nep21 = TapiNepBuilder.builder()
112 .setTopologyUuid(topology.uuid())
113 .setNodeUuid(node2.uuid())
114 .setConnectPoint(cp21)
115 .addSip(sip21.uuid())
116 .getModelObject();
117
118 nep22 = TapiNepBuilder.builder()
119 .setTopologyUuid(topology.uuid())
120 .setNodeUuid(node2.uuid())
121 .setConnectPoint(cp22)
122 .getModelObject();
123
124 }
125
126 @Test
127 public void testUpdateCache() {
128
129 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
130 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
131
132 topology.addToNode(node1);
133 topology.addToNode(node2);
134 context.addToServiceInterfacePoint(sip11);
135 context.addToServiceInterfacePoint(sip21);
136 node1.addToOwnedNodeEdgePoint(nep11);
137 node1.addToOwnedNodeEdgePoint(nep12);
138 node2.addToOwnedNodeEdgePoint(nep21);
139 node2.addToOwnedNodeEdgePoint(nep22);
140
141 List<TapiNodeRef> expectNodes = Arrays.asList(
142 DcsBasedTapiNodeRef.create(topology, node1).setDeviceId(did1),
143 DcsBasedTapiNodeRef.create(topology, node2).setDeviceId(did2)
144 );
145 List<TapiNepRef> expectNeps = Arrays.asList(
146 DcsBasedTapiNepRef.create(topology, node1, nep11).setConnectPoint(cp11)
147 .setSipId(sip11.uuid().toString()),
148 DcsBasedTapiNepRef.create(topology, node1, nep12).setConnectPoint(cp12),
149 DcsBasedTapiNepRef.create(topology, node2, nep21).setConnectPoint(cp21)
150 .setSipId(sip21.uuid().toString()),
151 DcsBasedTapiNepRef.create(topology, node2, nep22).setConnectPoint(cp22)
152 );
153
154 mockResolver.addNodeRefList(expectNodes);
155 expectLastCall().once();
156 mockResolver.addNepRefList(expectNeps);
157 expectLastCall().once();
158 replay(mockResolver);
159
160 dataProvider.updateCache(mockResolver, context);
161 verify(mockResolver);
162 }
163
164 @Test
165 public void testUpdateCacheWithoutSip() {
166
167 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
168 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
169
170 topology.addToNode(node1);
171 topology.addToNode(node2);
172 node1.addToOwnedNodeEdgePoint(nep11);
173 node2.addToOwnedNodeEdgePoint(nep21);
174 node2.addToOwnedNodeEdgePoint(nep22);
175
176 List<TapiNodeRef> expectNodes = Arrays.asList(
177 DcsBasedTapiNodeRef.create(topology, node1).setDeviceId(did1),
178 DcsBasedTapiNodeRef.create(topology, node2).setDeviceId(did2)
179 );
180 List<TapiNepRef> expectNeps = Arrays.asList(
181 DcsBasedTapiNepRef.create(topology, node1, nep11).setConnectPoint(cp11),
182 DcsBasedTapiNepRef.create(topology, node2, nep21).setConnectPoint(cp21),
183 DcsBasedTapiNepRef.create(topology, node2, nep22).setConnectPoint(cp22)
184 );
185
186 mockResolver.addNodeRefList(expectNodes);
187 expectLastCall().once();
188 mockResolver.addNepRefList(expectNeps);
189 expectLastCall().once();
190 replay(mockResolver);
191
192 dataProvider.updateCache(mockResolver, context);
193 verify(mockResolver);
194 }
195
196 @Test
197 public void testUpdateCacheWithoutNep() {
198
199 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
200 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
201
202 topology.addToNode(node1);
203 topology.addToNode(node2);
204
205 List<TapiNodeRef> expectNodes = Arrays.asList(
206 DcsBasedTapiNodeRef.create(topology, node1).setDeviceId(did1),
207 DcsBasedTapiNodeRef.create(topology, node2).setDeviceId(did2)
208 );
209 List<TapiNepRef> expectNeps = Collections.emptyList();
210
211 mockResolver.addNodeRefList(expectNodes);
212 expectLastCall().once();
213 mockResolver.addNepRefList(expectNeps);
214 expectLastCall().once();
215 replay(mockResolver);
216
217 dataProvider.updateCache(mockResolver, context);
218 verify(mockResolver);
219 }
220
221 @Test
222 public void testUpdateCacheWithoutNode() {
223
224 DcsBasedTapiDataProducer dataProvider = new DcsBasedTapiDataProducer();
225 DefaultTapiResolver mockResolver = EasyMock.createMock(DefaultTapiResolver.class);
226
227 List<TapiNodeRef> expectNodes = Collections.emptyList();
228 List<TapiNepRef> expectNeps = Collections.emptyList();
229
230 mockResolver.addNodeRefList(expectNodes);
231 expectLastCall().once();
232 mockResolver.addNepRefList(expectNeps);
233 expectLastCall().once();
234 replay(mockResolver);
235
236 dataProvider.updateCache(mockResolver, context);
237 verify(mockResolver);
238 }
239
240
241}