1 package org.onap.msb.apiroute.wrapper.util;
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.HashSet;
10 import org.junit.Assert;
11 import org.junit.Test;
12 import org.junit.runner.RunWith;
13 import org.onap.msb.apiroute.api.MicroServiceFullInfo;
14 import org.onap.msb.apiroute.api.Node;
15 import org.onap.msb.apiroute.wrapper.consulextend.model.health.ImmutableService;
16 import org.onap.msb.apiroute.wrapper.consulextend.model.health.ImmutableServiceHealth;
17 import org.onap.msb.apiroute.wrapper.consulextend.model.health.Service;
18 import org.onap.msb.apiroute.wrapper.consulextend.model.health.ServiceHealth;
19 import org.onap.msb.apiroute.wrapper.util.ConfigUtil;
20 import org.onap.msb.apiroute.wrapper.util.ServiceFilter;
21 import org.powermock.api.mockito.PowerMockito;
22 import org.powermock.core.classloader.annotations.PrepareForTest;
23 import org.powermock.modules.junit4.PowerMockRunner;
25 import com.orbitz.consul.model.health.ImmutableNode;
27 @RunWith(PowerMockRunner.class)
28 @PrepareForTest({ConfigUtil.class})
29 public class ServiceFilterTest {
34 public void test_isNeedNotifyByNameSpace() {
36 PowerMockito.mockStatic(System.class);
38 PowerMockito.when(System.getenv("NAMESPACE")).thenReturn("all");
39 ConfigUtil.getInstance().initRouteNameSpaceMatches();
40 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNameSpace("test")); // namespaceMatches:all
42 PowerMockito.when(System.getenv("NAMESPACE")).thenReturn("default");
43 ConfigUtil.getInstance().initRouteNameSpaceMatches();
44 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByNameSpace("test"));// namespaceMatches:default
45 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNameSpace(""));// namespaceMatches:default
46 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNameSpace("default"));// namespaceMatches:default
49 PowerMockito.when(System.getenv("NAMESPACE")).thenReturn("!default");
50 ConfigUtil.getInstance().initRouteNameSpaceMatches();
51 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNameSpace("test"));// namespaceMatches:!default
52 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByNameSpace(""));// namespaceMatches:!default
54 PowerMockito.when(System.getenv("NAMESPACE")).thenReturn("ns|ns2");
55 ConfigUtil.getInstance().initRouteNameSpaceMatches();
56 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNameSpace("ns"));
57 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNameSpace("ns2"));
58 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByNameSpace("ns3"));
59 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByNameSpace(""));
62 PowerMockito.when(System.getenv("NAMESPACE")).thenReturn("!ns&!ns2");
63 ConfigUtil.getInstance().initRouteNameSpaceMatches();
64 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByNameSpace("ns"));
65 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByNameSpace("ns2"));
66 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNameSpace("ns3"));
71 * @Test public void test_isNeedNotifyByVisualRange(){
73 * Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByVisualRange("0"));
74 * Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByVisualRange("1"));
75 * Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByVisualRange("0|1")); }
79 public void test_isNeedNotifyByProtocol() {
80 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByProtocol("HTTP"));
81 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByProtocol("UI"));
82 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByProtocol("REST"));
83 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByProtocol("TCP"));
87 public void test_isNeedNotifyByNetwork_plane_typeMatches() {
89 PowerMockito.mockStatic(System.class);
90 PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn("network_plane_type:network");
91 ConfigUtil.getInstance().initRouteLabelsMatches();
92 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByNetwork_plane_typeMatches("net"));
93 Assert.assertTrue(ServiceFilter.getInstance()
94 .isNeedNotifyByNetwork_plane_typeMatches("network"));
96 PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn("network_plane_type:net1|net2");
97 ConfigUtil.getInstance().initRouteLabelsMatches();
98 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByNetwork_plane_typeMatches("net"));
99 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNetwork_plane_typeMatches("net1"));
100 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByNetwork_plane_typeMatches("net2"));
105 public void test_isNeedNotifyByRouteLabels() {
106 Map<String, String> labelMap = new HashMap<String, String>();
107 labelMap.put("lab1", "val1");
109 PowerMockito.mockStatic(System.class);
110 PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn("lab1:val,visualRange:1");
111 ConfigUtil.getInstance().initRouteLabelsMatches();
112 Assert.assertFalse(ServiceFilter.getInstance().isNeedNotifyByRouteLabels(labelMap));
114 PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn("lab1:val1");
115 ConfigUtil.getInstance().initRouteLabelsMatches();
116 Assert.assertTrue(ServiceFilter.getInstance().isNeedNotifyByRouteLabels(labelMap));
121 public void test_isFilterService() {
122 PowerMockito.mockStatic(System.class);
123 PowerMockito.when(System.getenv("NAMESPACE")).thenReturn("ns1");
124 ConfigUtil.getInstance().initRouteNameSpaceMatches();
126 PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn(
127 "visualRange:0,network_plane_type:net,customLabel:custom|custom2");
128 ConfigUtil.getInstance().initRouteLabelsMatches();
130 List<String> tagList = new ArrayList<String>();
131 tagList.add("\"base\":{\"protocol\":\"REST\",\"version\":\"v1\",\"url\":\"/api/msbtest/v1\"}");
133 .add("\"labels\":{\"visualRange\":\"0\",\"network_plane_type\":\"net\",\"customLabel\":\"custom\"}");
134 tagList.add("\"ns\":{\"namespace\":\"ns1\"}");
135 Assert.assertTrue(ServiceFilter.getInstance().isFilterService(tagList));
138 tagList.add("\"base\":{\"protocol\":\"TCP\",\"version\":\"v1\",\"url\":\"/api/msbtest/v1\"}");
139 Assert.assertFalse(ServiceFilter.getInstance().isFilterService(tagList));
142 tagList.add("\"base\":{\"protocol\":\"UI\",\"version\":\"v1\",\"url\":\"/api/msbtest/v1\"}");
143 tagList.add("\"ns\":{\"namespace\":\"ns2\"}");
144 Assert.assertFalse(ServiceFilter.getInstance().isFilterService(tagList));
147 tagList.add("\"base\":{\"protocol\":\"UI\",\"version\":\"v1\",\"url\":\"/api/msbtest/v1\"}");
148 tagList.add("\"ns\":{\"namespace\":\"ns1\"}");
150 .add("\"labels\":{\"visualRange\":\"1\",\"network_plane_type\":\"net\",\"customLabel\":\"custom\"}");
151 Assert.assertFalse(ServiceFilter.getInstance().isFilterService(tagList));
154 tagList.add("\"base\":{\"protocol\":\"UI\",\"version\":\"v1\",\"url\":\"/api/msbtest/v1\"}");
155 tagList.add("\"ns\":{\"namespace\":\"ns1\"}");
157 .add("\"labels\":{\"visualRange\":\"0\",\"network_plane_type\":\"net2\",\"customLabel\":\"custom\"}");
158 Assert.assertFalse(ServiceFilter.getInstance().isFilterService(tagList));
161 tagList.add("\"base\":{\"protocol\":\"UI\",\"version\":\"v1\",\"url\":\"/api/msbtest/v1\"}");
162 tagList.add("\"ns\":{\"namespace\":\"ns1\"}");
164 .add("\"labels\":{\"visualRange\":\"0\",\"network_plane_type\":\"net\",\"customLabel\":\"custom3\"}");
165 Assert.assertFalse(ServiceFilter.getInstance().isFilterService(tagList));
170 public void test_transMicroServiceInfoFromConsul() {
171 List<String> tagList = new ArrayList<String>();
172 tagList.add("\"base\":{\"protocol\":\"REST\",\"version\":\"v1\",\"url\":\"/api/msbtest/v1\"}");
174 .add("\"labels\":{\"visualRange\":\"0\",\"network_plane_type\":\"net\",\"customLabel\":\"custom\"}");
175 tagList.add("\"ns\":{\"namespace\":\"ns1\"}");
178 ImmutableService.builder().id("id").port(8686).address("10.74.165.246").service("msbtest")
179 .addAllTags(tagList).createIndex(0).modifyIndex(0).build();
180 ServiceHealth serviceHealth =
181 ImmutableServiceHealth.builder().service(service)
182 .node(ImmutableNode.builder().node("server").address("192.168.1.98").build()).build();
183 List<ServiceHealth> serviceHealthList = new ArrayList<ServiceHealth>();
184 serviceHealthList.add(serviceHealth);
186 Map<String, MicroServiceFullInfo> serviceMap= ServiceFilter.getInstance().transMicroServiceInfoFromConsul(serviceHealthList);
187 Assert.assertTrue(serviceMap.containsKey("v1"));
189 MicroServiceFullInfo microService=new MicroServiceFullInfo();
190 microService.setServiceName("msbtest");
191 microService.setVersion("v1");
192 microService.setUrl("/api/msbtest/v1");
193 microService.setProtocol("REST");
194 microService.setVisualRange("0");
195 microService.setNamespace("ns1");
197 Set<Node> nodes=new HashSet<Node>();
198 nodes.add(new Node("10.74.165.246","8686"));
199 microService.setNodes(nodes);
203 Assert.assertEquals(microService,serviceMap.get("v1"));