51a06dfc40dfe4ddce2ab7471016013653bf0a4c
[msb/apigateway.git] / apiroute / apiroute-service / src / test / java / org / onap / msb / apiroute / wrapper / util / ConfigUtilTest.java
1 /*******************************************************************************
2  * Copyright 2016-2017 ZTE, Inc. and others.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5  * in compliance with the License. You may obtain a copy of the License at
6  * 
7  * http://www.apache.org/licenses/LICENSE-2.0
8  * 
9  * Unless required by applicable law or agreed to in writing, software distributed under the License
10  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11  * or implied. See the License for the specific language governing permissions and limitations under
12  * the License.
13  ******************************************************************************/
14 package org.onap.msb.apiroute.wrapper.util;
15
16
17
18 import java.lang.reflect.Field;
19
20 import org.junit.Assert;
21 import org.junit.Test;
22 import org.junit.runner.RunWith;
23 import org.onap.msb.apiroute.ApiRouteAppConfig;
24 import org.onap.msb.apiroute.api.DiscoverInfo;
25 import org.powermock.api.mockito.PowerMockito;
26 import org.powermock.core.classloader.annotations.PrepareForTest;
27 import org.powermock.modules.junit4.PowerMockRunner;
28
29 @RunWith(PowerMockRunner.class)
30 @PrepareForTest({ConfigUtil.class})
31 public class ConfigUtilTest {
32
33     @Test
34     public void test_initRootPath() {
35         try {
36             ConfigUtil.getInstance().initRootPath();
37             String iuiRootPath = ConfigUtil.getInstance().getIUI_ROOT_PATH();
38             String apiRootPath = ConfigUtil.getInstance().getAPI_ROOT_PATH();
39             Assert.assertEquals("iui", iuiRootPath);
40             Assert.assertEquals("api", apiRootPath);
41         } catch (Exception e) {
42             Assert.fail("throw exception means error occured!" + e.getMessage());
43
44         }
45
46     }
47
48     @Test
49     public void test_initApiGatewayPort() {
50
51         PowerMockito.mockStatic(System.class);
52         PowerMockito.when(System.getenv("APIGATEWAY_EXPOSE_PORT")).thenReturn(null);
53         ConfigUtil.getInstance().initApiGatewayPort();
54         Assert.assertEquals("80", ConfigUtil.getInstance().getServerPort());
55
56
57         PowerMockito.mockStatic(System.class);
58         PowerMockito.when(System.getenv("APIGATEWAY_EXPOSE_PORT")).thenReturn("81");
59
60         ConfigUtil.getInstance().initApiGatewayPort();
61         Assert.assertEquals("81", ConfigUtil.getInstance().getServerPort());
62     }
63
64     @Test
65     public void test_initRouteNameSpaceMatches() {
66
67         PowerMockito.mockStatic(System.class);
68         PowerMockito.when(System.getenv("APIGATEWAY_EXPOSE_PORT")).thenReturn(null);
69         ConfigUtil.getInstance().initRouteNameSpaceMatches();
70         Assert.assertEquals("all", ConfigUtil.getInstance().getNamespaceMatches());
71
72
73         PowerMockito.when(System.getenv("NAMESPACE")).thenReturn("net");
74
75         ConfigUtil.getInstance().initRouteNameSpaceMatches();
76         Assert.assertEquals("net", ConfigUtil.getInstance().getNamespaceMatches());
77     }
78
79     @Test
80     public void test_initRouteLabelsMatches() {
81
82         PowerMockito.mockStatic(System.class);
83         PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn(null);
84         ConfigUtil.getInstance().initRouteLabelsMatches();
85         Assert.assertEquals("0", ConfigUtil.getInstance().getVisualRangeMatches());
86         Assert.assertEquals("net", ConfigUtil.getInstance().getNetwork_plane_typeMatches());
87         Assert.assertTrue(ConfigUtil.getInstance().getLabelMapMatches().containsKey("custom-key"));
88
89
90
91         PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn("visualRange:1,network_plane_type:net,custom:test");
92
93         ConfigUtil.getInstance().initRouteLabelsMatches();
94         Assert.assertEquals("1", ConfigUtil.getInstance().getVisualRangeMatches());
95         Assert.assertEquals("net", ConfigUtil.getInstance().getNetwork_plane_typeMatches());
96         Assert.assertTrue(ConfigUtil.getInstance().getLabelMapMatches().containsKey("custom"));
97
98     }
99
100     @Test
101     public void test_initRouteWay() {
102         PowerMockito.mockStatic(System.class);
103
104         PowerMockito.when(System.getenv("ROUTE_WAY")).thenReturn(null);
105         ConfigUtil.getInstance().initRouteWay();
106         String[] ip_routeWay = {"ip"};
107         Assert.assertArrayEquals(ip_routeWay, ConfigUtil.getInstance().getRouteWay());
108
109         PowerMockito.when(System.getenv("ROUTE_WAY")).thenReturn("ip|domain");
110
111         ConfigUtil.getInstance().initRouteWay();
112         String[] routeWay = {"ip", "domain"};
113         Assert.assertArrayEquals(routeWay, ConfigUtil.getInstance().getRouteWay());
114     }
115
116     @Test
117     public void test_initDiscoverInfo() {
118         PowerMockito.mockStatic(System.class);
119
120
121         ApiRouteAppConfig configuration = new ApiRouteAppConfig();
122
123         DiscoverInfo discoverInfo = new DiscoverInfo();
124         discoverInfo.setEnabled(true);
125         discoverInfo.setIp("127.0.0.1");
126         discoverInfo.setPort(10081);
127
128         configuration.setDiscoverInfo(discoverInfo);
129         PowerMockito.when(System.getenv("SDCLIENT_IP")).thenReturn(null);
130         ConfigUtil.getInstance().initDiscoverInfo(configuration);
131         Assert.assertEquals("127.0.0.1:10081", ConfigUtil.getInstance().getDiscoverInfo().toString());
132
133         PowerMockito.when(System.getenv("SDCLIENT_IP")).thenReturn("10.74.44.86");
134         ConfigUtil.getInstance().initDiscoverInfo(configuration);
135         Assert.assertEquals("10.74.44.86:10081", ConfigUtil.getInstance().getDiscoverInfo().toString());
136     }
137
138     @Test
139     public void test_initNodeMeta() {
140
141         // CONSUL_REGISTER_MODE not catalog
142         ConfigUtil util = ConfigUtil.getInstance();
143         util.initNodeMetaQueryParam();
144         System.out.println(util.getNodeMetaQueryParam());
145         Assert.assertEquals(util.getNodeMetaQueryParam(), "");
146
147         // CONSUL_REGISTER_MODE catalog
148         PowerMockito.mockStatic(System.class);
149         PowerMockito.when(System.getenv("CONSUL_REGISTER_MODE")).thenReturn("agnet");
150         util.initNodeMetaQueryParam();
151         System.out.println(util.getNodeMetaQueryParam());
152         Assert.assertEquals(util.getNodeMetaQueryParam(), "");
153
154
155         // CONSUL_REGISTER_MODE catalog
156         PowerMockito.mockStatic(System.class);
157         PowerMockito.when(System.getenv("CONSUL_REGISTER_MODE")).thenReturn("catalog");
158         try {
159             Field visualRangeField = util.getClass().getDeclaredField("visualRangeMatches");
160             visualRangeField.setAccessible(true);
161
162             Field namespaceField = util.getClass().getDeclaredField("namespaceMatches");
163             namespaceField.setAccessible(true);
164
165             // 0:default;
166             visualRangeField.set(util, "0");
167             namespaceField.set(util, "default");
168
169             util.initNodeMetaQueryParam();
170             System.out.println(util.getNodeMetaQueryParam());
171             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=external:true&node-meta=ns:default");
172
173             // 1:default;
174             visualRangeField.set(util, "1");
175             util.initNodeMetaQueryParam();
176             System.out.println(util.getNodeMetaQueryParam());
177             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true&node-meta=ns:default");
178
179             // 0|1:default
180             visualRangeField.set(util, "0|1");
181             util.initNodeMetaQueryParam();
182             System.out.println(util.getNodeMetaQueryParam());
183             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=ns:default");
184
185             // 0|1:all
186             namespaceField.set(util, "all");
187             util.initNodeMetaQueryParam();
188             System.out.println(util.getNodeMetaQueryParam());
189             Assert.assertEquals(util.getNodeMetaQueryParam(), "");
190
191             ///////////////////////////////////////////////////////////////////////////
192             // 1:all
193             visualRangeField.set(util, "1");
194             namespaceField.set(util, "all");
195             util.initNodeMetaQueryParam();
196             System.out.println(util.getNodeMetaQueryParam());
197             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true");
198
199             // 1:!
200             namespaceField.set(util, "!default");
201             util.initNodeMetaQueryParam();
202             System.out.println(util.getNodeMetaQueryParam());
203             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true");
204
205             // 1:&
206             namespaceField.set(util, "tenant1&tenant2");
207             util.initNodeMetaQueryParam();
208             System.out.println(util.getNodeMetaQueryParam());
209             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true");
210
211             // 1:|
212             namespaceField.set(util, "tenant1|tenant2");
213             util.initNodeMetaQueryParam();
214             System.out.println(util.getNodeMetaQueryParam());
215             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true");
216
217         } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
218             // TODO Auto-generated catch block
219             e.printStackTrace();
220         }
221
222     }
223
224
225 }