2 * Copyright 2016 ZTE, Inc. and others.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 package org.onap.msb.apiroute.wrapper.util;
18 import java.util.HashSet;
21 import org.junit.Assert;
22 import org.junit.Test;
23 import org.junit.runner.RunWith;
24 import org.onap.msb.apiroute.api.MicroServiceFullInfo;
25 import org.onap.msb.apiroute.api.Node;
26 import org.onap.msb.apiroute.api.RouteInfo;
27 import org.onap.msb.apiroute.api.RouteServer;
28 import org.onap.msb.apiroute.api.exception.UnprocessableEntityException;
29 import org.powermock.api.mockito.PowerMockito;
30 import org.powermock.core.classloader.annotations.PrepareForTest;
31 import org.powermock.modules.junit4.PowerMockRunner;
33 @RunWith(PowerMockRunner.class)
34 @PrepareForTest({ConfigUtil.class})
35 public class RouteUtilTest {
38 public void test_getPrefixedKey() {
39 Assert.assertEquals("msb:routing:test:v1", RouteUtil.getPrefixedKey("", "test", "v1"));
40 Assert.assertEquals("msb:5656:test:v1", RouteUtil.getPrefixedKey("5656", "test", "v1"));
45 public void test_getPrefixedKey4Host() {
46 Assert.assertEquals("msb:host:test:v1", RouteUtil.getPrefixedKey4Host("test", "v1"));
53 public void test_checkRouteWay() {
55 RouteUtil.checkRouteWay("ipp");
56 } catch (Exception e) {
57 Assert.assertTrue(e instanceof UnprocessableEntityException);
63 public void test_checkServiceNameAndVersion() {
65 RouteUtil.checkServiceNameAndVersion("","v1");
66 } catch (Exception e) {
67 Assert.assertTrue(e instanceof UnprocessableEntityException);
71 RouteUtil.checkServiceNameAndVersion("test","ve1");
72 } catch (Exception e) {
73 Assert.assertTrue(e instanceof UnprocessableEntityException);
78 public void test_checkServiceStatus() {
80 RouteUtil.checkServiceStatus("2");
81 } catch (Exception e) {
82 Assert.assertTrue(e instanceof UnprocessableEntityException);
87 public void test_checkRouterInfoFormat() {
88 RouteInfo routeInfo=new RouteInfo();
91 RouteUtil.checkRouterInfoFormat(routeInfo);
92 } catch (Exception e) {
93 Assert.assertTrue(e instanceof UnprocessableEntityException);
98 public void test_checkMicroServiceInfoFormat() {
99 MicroServiceFullInfo microServiceInfo=new MicroServiceFullInfo();
102 RouteUtil.checkMicroServiceInfoFormat(microServiceInfo,"");
103 } catch (Exception e) {
104 Assert.assertTrue(e instanceof UnprocessableEntityException);
109 public void test_checkMicroServiceInfoFormat_ip() {
110 MicroServiceFullInfo microServiceInfo=new MicroServiceFullInfo();
111 microServiceInfo.setServiceName("name");
112 microServiceInfo.setProtocol("REST");
113 Set<Node> nodeSet = new HashSet<>();
114 nodeSet.add(new Node("10.74.148.88.22","8080"));
115 microServiceInfo.setNodes(nodeSet);
118 RouteUtil.checkMicroServiceInfoFormat(microServiceInfo,"");
119 } catch (Exception e) {
120 Assert.assertTrue(e instanceof UnprocessableEntityException);
125 public void test_checkMicroServiceInfoFormat_port() {
126 MicroServiceFullInfo microServiceInfo=new MicroServiceFullInfo();
127 microServiceInfo.setServiceName("name");
128 microServiceInfo.setProtocol("REST");
129 Set<Node> nodeSet = new HashSet<>();
130 nodeSet.add(new Node("10.74.148.88.22","808770"));
131 microServiceInfo.setNodes(nodeSet);
134 RouteUtil.checkMicroServiceInfoFormat(microServiceInfo,"");
135 } catch (Exception e) {
136 Assert.assertTrue(e instanceof UnprocessableEntityException);
141 public void test_checkMicroServiceInfoFormat_version() {
142 MicroServiceFullInfo microServiceInfo=new MicroServiceFullInfo();
143 microServiceInfo.setServiceName("name");
144 microServiceInfo.setProtocol("REST");
145 Set<Node> nodeSet = new HashSet<>();
146 nodeSet.add(new Node("","8089"));
147 microServiceInfo.setNodes(nodeSet);
148 microServiceInfo.setVersion("cv2");
151 RouteUtil.checkMicroServiceInfoFormat(microServiceInfo,"10.74.55.36");
152 } catch (Exception e) {
153 Assert.assertTrue(e instanceof UnprocessableEntityException);
158 public void test_checkMicroServiceInfoFormat_url() {
159 MicroServiceFullInfo microServiceInfo=new MicroServiceFullInfo();
160 microServiceInfo.setServiceName("name");
161 microServiceInfo.setProtocol("REST");
162 Set<Node> nodeSet = new HashSet<>();
163 nodeSet.add(new Node("","8089"));
164 microServiceInfo.setNodes(nodeSet);
165 microServiceInfo.setVersion("v2");
166 microServiceInfo.setUrl("url");
169 RouteUtil.checkMicroServiceInfoFormat(microServiceInfo,"10.74.55.36");
170 } catch (Exception e) {
171 Assert.assertTrue(e instanceof UnprocessableEntityException);
176 public void test_checkMicroServiceInfoFormat_protocol() {
177 MicroServiceFullInfo microServiceInfo=new MicroServiceFullInfo();
178 microServiceInfo.setServiceName("name");
179 microServiceInfo.setProtocol("REST2");
180 Set<Node> nodeSet = new HashSet<>();
181 nodeSet.add(new Node("","8089"));
182 microServiceInfo.setNodes(nodeSet);
183 microServiceInfo.setVersion("v2");
184 microServiceInfo.setUrl("/url");
187 RouteUtil.checkMicroServiceInfoFormat(microServiceInfo,"10.74.55.36");
188 } catch (Exception e) {
189 Assert.assertTrue(e instanceof UnprocessableEntityException);
194 public void test_getAPIRedisPrefixedKey() {
195 Assert.assertEquals("msb:20081:api:testApi:v1", RouteUtil.getAPIRedisPrefixedKey("testApi", "v1", "testHost","20081","ip"));
196 Assert.assertEquals("msb:routing:api:testApi:v1", RouteUtil.getAPIRedisPrefixedKey("testApi", "v1", "testHost","","ip"));
197 Assert.assertEquals("msb:host:testHost:api:testApi:v1", RouteUtil.getAPIRedisPrefixedKey("testApi", "v1", "testHost","20081","domain"));
201 public void test_getRedisPrefixedKey() {
202 Assert.assertEquals("msb:20081:custom:/testName/v1", RouteUtil.getRedisPrefixedKey(RouteUtil.CUSTOMROUTE,"/testName/v1", "testHost","20081","ip"));
203 Assert.assertEquals("msb:routing:custom:/testName/v1", RouteUtil.getRedisPrefixedKey(RouteUtil.CUSTOMROUTE,"/testName/v1", "testHost","","ip"));
204 Assert.assertEquals("msb:host:testHost:custom:/testName/v1", RouteUtil.getRedisPrefixedKey(RouteUtil.CUSTOMROUTE,"/testName/v1", "testHost","20081","domain"));
206 Assert.assertEquals("msb:20081:iui:testName", RouteUtil.getRedisPrefixedKey(RouteUtil.IUIROUTE,"testName", "testHost","20081","ip"));
207 Assert.assertEquals("msb:routing:iui:testName", RouteUtil.getRedisPrefixedKey(RouteUtil.IUIROUTE,"testName", "testHost","","ip"));
208 Assert.assertEquals("msb:host:testHost:iui:testName", RouteUtil.getRedisPrefixedKey(RouteUtil.IUIROUTE,"testName", "testHost","20081","domain"));
212 public void test_getMutiRedisKey() {
213 Assert.assertEquals("msb:[^h]*:api:*", RouteUtil.getMutiRedisKey(RouteUtil.APIROUTE,"ip"));
214 Assert.assertEquals("msb:[^h]*:iui:*", RouteUtil.getMutiRedisKey(RouteUtil.IUIROUTE,"ip"));
215 Assert.assertEquals("msb:[^h]*:custom:*", RouteUtil.getMutiRedisKey(RouteUtil.CUSTOMROUTE,"ip"));
217 Assert.assertEquals("msb:host:*:api:*", RouteUtil.getMutiRedisKey(RouteUtil.APIROUTE,"domain"));
218 Assert.assertEquals("msb:host:*:iui:*", RouteUtil.getMutiRedisKey(RouteUtil.IUIROUTE,"domain"));
219 Assert.assertEquals("msb:host:*:custom:*", RouteUtil.getMutiRedisKey(RouteUtil.CUSTOMROUTE,"domain"));
223 public void test_getRouteNameByns() {
224 Assert.assertEquals("serviceName", RouteUtil.getRouteNameByns("serviceName",""));
225 Assert.assertEquals("serviceName", RouteUtil.getRouteNameByns("serviceName-ns","ns"));
226 Assert.assertEquals("serviceName-ns", RouteUtil.getRouteNameByns("serviceName-ns-ns","ns"));
227 Assert.assertEquals("serviceName", RouteUtil.getRouteNameByns("serviceName","default"));
231 public void test_getVisualRangeByRouter(){
232 Assert.assertEquals("0", RouteUtil.getVisualRangeByRouter("0|1"));
233 Assert.assertEquals("1", RouteUtil.getVisualRangeByRouter("1"));
234 Assert.assertEquals("0", RouteUtil.getVisualRangeByRouter("0"));
240 public void test_getVisualRangeByRouter_muti(){
241 PowerMockito.mockStatic(System.class);
242 PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn("lab1:val,visualRange:0|1");
243 ConfigUtil.getInstance().initRouteLabelsMatches();
244 Assert.assertEquals("0", RouteUtil.getVisualRangeByRouter("0|1"));
248 public void test_checkRouterInfoFormat_url() {
249 RouteInfo routeInfo=new RouteInfo();
250 routeInfo.setServiceName("name");
251 routeInfo.setUrl("url");
252 routeInfo.setServers( new RouteServer[]{new RouteServer("10.74.148.88","8080")});
255 RouteUtil.checkRouterInfoFormat(routeInfo);
256 } catch (Exception e) {
257 Assert.assertTrue(e instanceof UnprocessableEntityException);
262 public void test_checkRouterInfoFormat_visualRangeRange() {
263 RouteInfo routeInfo=new RouteInfo();
264 routeInfo.setServiceName("name");
265 routeInfo.setUrl("/url");
266 routeInfo.setServers( new RouteServer[]{new RouteServer("10.74.148.88","8080")});
267 routeInfo.setVisualRange("2");
270 RouteUtil.checkRouterInfoFormat(routeInfo);
271 } catch (Exception e) {
272 Assert.assertTrue(e instanceof UnprocessableEntityException);
278 public void test_checkRouterInfoFormat_controlRangeMatches() {
279 RouteInfo routeInfo=new RouteInfo();
280 routeInfo.setServiceName("name");
281 routeInfo.setUrl("/url");
282 routeInfo.setServers( new RouteServer[]{new RouteServer("10.74.148.88","8080")});
283 routeInfo.setVisualRange("0");
284 routeInfo.setControl("3");
287 RouteUtil.checkRouterInfoFormat(routeInfo);
288 } catch (Exception e) {
289 Assert.assertTrue(e instanceof UnprocessableEntityException);
294 public void test_checkRouterInfoFormat_statusRangeMatches() {
295 RouteInfo routeInfo=new RouteInfo();
296 routeInfo.setServiceName("name");
297 routeInfo.setUrl("/url");
298 routeInfo.setServers( new RouteServer[]{new RouteServer("10.74.148.88","8080")});
299 routeInfo.setVisualRange("0");
300 routeInfo.setControl("0");
301 routeInfo.setStatus("3");
304 RouteUtil.checkRouterInfoFormat(routeInfo);
305 } catch (Exception e) {
306 Assert.assertTrue(e instanceof UnprocessableEntityException);
312 public void test_checkRouterInfoFormat_useOwnUpstreamRangeMatches() {
313 RouteInfo routeInfo=new RouteInfo();
314 routeInfo.setServiceName("name");
315 routeInfo.setUrl("/url");
316 routeInfo.setServers( new RouteServer[]{new RouteServer("10.74.148.88","8080")});
317 routeInfo.setVisualRange("0");
318 routeInfo.setControl("0");
319 routeInfo.setStatus("0");
320 routeInfo.setUseOwnUpstream("3");
323 RouteUtil.checkRouterInfoFormat(routeInfo);
324 } catch (Exception e) {
325 Assert.assertTrue(e instanceof UnprocessableEntityException);
330 public void test_checkRouterInfoFormat_ip() {
331 RouteInfo routeInfo=new RouteInfo();
332 routeInfo.setServiceName("name");
333 routeInfo.setUrl("/url");
334 routeInfo.setServers( new RouteServer[]{new RouteServer("10.74.148.88.6","8080")});
335 routeInfo.setVisualRange("0");
336 routeInfo.setControl("0");
337 routeInfo.setStatus("0");
338 routeInfo.setUseOwnUpstream("1");
341 RouteUtil.checkRouterInfoFormat(routeInfo);
342 } catch (Exception e) {
343 Assert.assertTrue(e instanceof UnprocessableEntityException);
349 public void test_checkRouterInfoFormat_port() {
350 RouteInfo routeInfo=new RouteInfo();
351 routeInfo.setServiceName("name");
352 routeInfo.setUrl("/url");
353 routeInfo.setServers( new RouteServer[]{new RouteServer("10.74.148.88.6","757577")});
354 routeInfo.setVisualRange("0");
355 routeInfo.setControl("0");
356 routeInfo.setStatus("0");
357 routeInfo.setUseOwnUpstream("1");
360 RouteUtil.checkRouterInfoFormat(routeInfo);
361 } catch (Exception e) {
362 Assert.assertTrue(e instanceof UnprocessableEntityException);