blob: 5fcad14541c74f5d24e36c3323f95be1d748460b [file] [log] [blame]
hirokiec18d3a2018-05-16 15:27:37 -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
hiroki684aa2f2018-05-19 20:48:49 -070017package org.onosproject.odtn.internal;
hirokiec18d3a2018-05-16 15:27:37 -070018
hirokif4ed5212018-05-26 22:39:38 -070019import java.util.Arrays;
20import java.util.HashMap;
21import java.util.List;
22import java.util.Map;
hirokiec18d3a2018-05-16 15:27:37 -070023import java.util.NoSuchElementException;
hiroki684aa2f2018-05-19 20:48:49 -070024import org.easymock.EasyMock;
hirokiec18d3a2018-05-16 15:27:37 -070025import org.junit.Before;
26import org.junit.Test;
27import org.onosproject.net.ConnectPoint;
28import org.onosproject.net.DeviceId;
29import org.onosproject.net.PortNumber;
hirokif4ed5212018-05-26 22:39:38 -070030import org.onosproject.odtn.behaviour.OdtnDeviceDescriptionDiscovery;
hiroki684aa2f2018-05-19 20:48:49 -070031import org.onosproject.odtn.utils.tapi.TapiNepRef;
32import org.onosproject.odtn.utils.tapi.TapiNodeRef;
hirokiec18d3a2018-05-16 15:27:37 -070033
hiroki684aa2f2018-05-19 20:48:49 -070034import static org.easymock.EasyMock.replay;
hirokiec18d3a2018-05-16 15:27:37 -070035import static org.hamcrest.Matchers.is;
36import static org.junit.Assert.*;
hirokif4ed5212018-05-26 22:39:38 -070037import static org.onosproject.odtn.utils.tapi.TapiObjectHandler.DEVICE_ID;
38import static org.onosproject.odtn.utils.tapi.TapiObjectHandler.ODTN_PORT_TYPE;
hirokiec18d3a2018-05-16 15:27:37 -070039
hiroki684aa2f2018-05-19 20:48:49 -070040public class DefaultTapiResolverTest {
hirokiec18d3a2018-05-16 15:27:37 -070041
hiroki684aa2f2018-05-19 20:48:49 -070042 private DefaultTapiResolver tapiResolver;
hirokiec18d3a2018-05-16 15:27:37 -070043
hirokif4ed5212018-05-26 22:39:38 -070044 private TapiNodeRef nodeRef, nodeRefNullAttr;
45 private TapiNepRef nepRef, nepRefNullAttr;
hirokiec18d3a2018-05-16 15:27:37 -070046 private DeviceId deviceId;
47 private ConnectPoint cp;
48 private String sipId;
49
50 private DeviceId dummyDeviceId;
51 private Integer dummyPort;
52 private ConnectPoint dummyCp;
53 private String dummySipId;
hirokif4ed5212018-05-26 22:39:38 -070054 private String portType;
hirokiec18d3a2018-05-16 15:27:37 -070055
hiroki684aa2f2018-05-19 20:48:49 -070056 private TapiDataProducer mockTapiDataProducer;
hirokiec18d3a2018-05-16 15:27:37 -070057
58 @Before
59 public void setUp() {
hiroki684aa2f2018-05-19 20:48:49 -070060 nodeRef = TapiNodeRef.create(
hirokiec18d3a2018-05-16 15:27:37 -070061 "49e2ac46-3975-44b4-b84f-8fab28222a39",
62 "5638e8e6-ac17-40d9-86e4-7c1febab6f1a");
hiroki684aa2f2018-05-19 20:48:49 -070063 nepRef = TapiNepRef.create(
hirokiec18d3a2018-05-16 15:27:37 -070064 "59e2ac46-3975-44b4-b84f-8fab28222a39",
65 "6638e8e6-ac17-40d9-86e4-7c1febab6f1a",
66 "cd673055-e2b2-4f67-88c8-adfae96385bc");
hirokif4ed5212018-05-26 22:39:38 -070067 nodeRefNullAttr = TapiNodeRef.create(
68 "59e2ac46-3975-44b4-b84f-8fab28222a39",
69 "6638e8e6-ac17-40d9-86e4-7c1febab6f1a");
70 nepRefNullAttr = TapiNepRef.create(
71 "69e2ac46-3975-44b4-b84f-8fab28222a39",
72 "7638e8e6-ac17-40d9-86e4-7c1febab6f1a",
73 "dd673055-e2b2-4f67-88c8-adfae96385bc");
hirokiec18d3a2018-05-16 15:27:37 -070074 deviceId = DeviceId.deviceId("netconf:172.24.3.5:11011");
75 cp = new ConnectPoint(deviceId, PortNumber.portNumber("42"));
76 sipId = "01c39723-7c0d-4754-8d64-fd9ff412404c";
hirokif4ed5212018-05-26 22:39:38 -070077 portType = OdtnDeviceDescriptionDiscovery.OdtnPortType.CLIENT.value();
hirokiec18d3a2018-05-16 15:27:37 -070078 nodeRef.setDeviceId(deviceId);
hirokif4ed5212018-05-26 22:39:38 -070079 nepRef.setConnectPoint(cp).setSipId(sipId).setPortType(portType);
hirokiec18d3a2018-05-16 15:27:37 -070080
81 dummyDeviceId = DeviceId.deviceId("dummy");
82 dummyPort = 4;
83 dummyCp = new ConnectPoint(dummyDeviceId, PortNumber.portNumber(dummyPort));
84 dummySipId = "00000000-0000-0000-0000-000000000000";
85
hiroki684aa2f2018-05-19 20:48:49 -070086 tapiResolver = new DefaultTapiResolver();
87
88 mockTapiDataProducer = EasyMock.createMock(TapiDataProducer.class);
89 mockTapiDataProducer.updateCacheRequest(tapiResolver);
90 replay(mockTapiDataProducer);
91
92 tapiResolver.dataProvider = mockTapiDataProducer;
hirokiec18d3a2018-05-16 15:27:37 -070093 }
94
95 @Test
96 public void testGetNodeRef() {
hiroki684aa2f2018-05-19 20:48:49 -070097 tapiResolver.addNodeRef(nodeRef);
98 assertThat(nodeRef, is(tapiResolver.getNodeRef(deviceId)));
hirokiec18d3a2018-05-16 15:27:37 -070099 }
100
101 @Test
hirokif4ed5212018-05-26 22:39:38 -0700102 public void testGetNepRefByConnectPoint() {
hiroki684aa2f2018-05-19 20:48:49 -0700103 tapiResolver.addNepRef(nepRef);
104 assertThat(nepRef, is(tapiResolver.getNepRef(cp)));
hirokiec18d3a2018-05-16 15:27:37 -0700105 }
106
107 @Test
hirokif4ed5212018-05-26 22:39:38 -0700108 public void testGetNepRefBySipId() {
109 tapiResolver.addNepRef(nepRef);
110 assertThat(nepRef, is(tapiResolver.getNepRef(sipId)));
111 }
112
113 @Test
114 public void testGetNodeRefWithNullAttrObj() {
115 tapiResolver.addNodeRef(nodeRefNullAttr);
116 tapiResolver.addNodeRef(nodeRef);
117 assertThat(nodeRef, is(tapiResolver.getNodeRef(deviceId)));
118 }
119
120 @Test
121 public void testGetNepRefByConnectPointWithNullAttrObj() {
122 tapiResolver.addNepRef(nepRefNullAttr);
123 tapiResolver.addNepRef(nepRef);
124 assertThat(nepRef, is(tapiResolver.getNepRef(cp)));
125 }
126
127 @Test
128 public void testGetNepRefBySipIdWithNullAttrObj() {
129 tapiResolver.addNepRef(nepRefNullAttr);
hiroki684aa2f2018-05-19 20:48:49 -0700130 tapiResolver.addNepRef(nepRef);
131 assertThat(nepRef, is(tapiResolver.getNepRef(sipId)));
hirokiec18d3a2018-05-16 15:27:37 -0700132 }
133
134 @Test(expected = NoSuchElementException.class)
135 public void testGetNodeRefWhenEmpty() {
136 tapiResolver.getNodeRef(deviceId);
137 }
138
139 @Test(expected = NoSuchElementException.class)
140 public void testGetNepRefWithConnectPointWhenEmpty() {
141 tapiResolver.getNepRef(cp);
142 }
143
144 @Test(expected = NoSuchElementException.class)
145 public void testGetNepRefWithSipIdWhenEmpty() {
hirokif4ed5212018-05-26 22:39:38 -0700146 tapiResolver.getNepRef(sipId);
hirokiec18d3a2018-05-16 15:27:37 -0700147 }
148
149 @Test(expected = NoSuchElementException.class)
150 public void testGetNodeRefNotExist() {
hirokif4ed5212018-05-26 22:39:38 -0700151 tapiResolver.addNodeRef(nodeRefNullAttr);
hirokiec18d3a2018-05-16 15:27:37 -0700152 tapiResolver.addNodeRef(nodeRef);
153 tapiResolver.getNodeRef(dummyDeviceId);
154 }
155
156 @Test(expected = NoSuchElementException.class)
157 public void testGetNepRefWithConnectPointNotExist() {
hirokif4ed5212018-05-26 22:39:38 -0700158 tapiResolver.addNepRef(nepRefNullAttr);
hirokiec18d3a2018-05-16 15:27:37 -0700159 tapiResolver.addNepRef(nepRef);
160 tapiResolver.getNepRef(dummyCp);
161 }
162
163 @Test(expected = NoSuchElementException.class)
164 public void testGetNepRefWithSipIdNotExist() {
hirokif4ed5212018-05-26 22:39:38 -0700165 tapiResolver.addNepRef(nepRefNullAttr);
hirokiec18d3a2018-05-16 15:27:37 -0700166 tapiResolver.addNepRef(nepRef);
167 tapiResolver.getNepRef(dummySipId);
168 }
169
hirokif4ed5212018-05-26 22:39:38 -0700170 @Test
171 public void testGetNodeRefsFiltered() {
172 tapiResolver.addNodeRef(nodeRefNullAttr);
173 tapiResolver.addNodeRef(nodeRef);
174 List<TapiNodeRef> exp = Arrays.asList(nodeRef);
175 Map<String, String> filter = new HashMap<>();
176 filter.put(DEVICE_ID, deviceId.toString());
177
178 assertThat(tapiResolver.getNodeRefs(filter), is(exp));
179 }
180
181 @Test
182 public void testGetNepRefsFiltered() {
183 tapiResolver.addNepRef(nepRefNullAttr);
184 tapiResolver.addNepRef(nepRef);
185 List<TapiNepRef> exp = Arrays.asList(nepRef);
186 Map<String, String> filter = new HashMap<>();
187
188 filter.put(DEVICE_ID, deviceId.toString());
189 assertThat(tapiResolver.getNepRefs(filter), is(exp));
190
191 filter.put(ODTN_PORT_TYPE, portType);
192 assertThat(tapiResolver.getNepRefs(filter), is(exp));
193 }
194
hirokiec18d3a2018-05-16 15:27:37 -0700195}