fix powermock issue
[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 import org.powermock.core.classloader.annotations.PowerMockIgnore;
29
30 @RunWith(PowerMockRunner.class)
31 @PrepareForTest({ConfigUtil.class})
32 @PowerMockIgnore("jdk.internal.reflect.*")
33 public class ConfigUtilTest {
34
35     @Test
36     public void test_initRootPath() {
37         try {
38             ConfigUtil.getInstance().initRootPath();
39             String iuiRootPath = ConfigUtil.getInstance().getIUI_ROOT_PATH();
40             String apiRootPath = ConfigUtil.getInstance().getAPI_ROOT_PATH();
41             Assert.assertEquals("iui", iuiRootPath);
42             Assert.assertEquals("api", apiRootPath);
43         } catch (Exception e) {
44             Assert.fail("throw exception means error occured!" + e.getMessage());
45
46         }
47
48     }
49
50     @Test
51     public void test_initApiGatewayPort() {
52
53         PowerMockito.mockStatic(System.class);
54         PowerMockito.when(System.getenv("APIGATEWAY_EXPOSE_PORT")).thenReturn(null);
55         ConfigUtil.getInstance().initApiGatewayPort();
56         Assert.assertEquals("80", ConfigUtil.getInstance().getServerPort());
57
58
59         PowerMockito.mockStatic(System.class);
60         PowerMockito.when(System.getenv("APIGATEWAY_EXPOSE_PORT")).thenReturn("81");
61
62         ConfigUtil.getInstance().initApiGatewayPort();
63         Assert.assertEquals("81", ConfigUtil.getInstance().getServerPort());
64     }
65
66     @Test
67     public void test_initRouteNameSpaceMatches() {
68
69         PowerMockito.mockStatic(System.class);
70         PowerMockito.when(System.getenv("APIGATEWAY_EXPOSE_PORT")).thenReturn(null);
71         ConfigUtil.getInstance().initRouteNameSpaceMatches();
72         Assert.assertEquals("all", ConfigUtil.getInstance().getNamespaceMatches());
73
74
75         PowerMockito.when(System.getenv("NAMESPACE")).thenReturn("net");
76
77         ConfigUtil.getInstance().initRouteNameSpaceMatches();
78         Assert.assertEquals("net", ConfigUtil.getInstance().getNamespaceMatches());
79     }
80
81     @Test
82     public void test_initRouteLabelsMatches() {
83
84         PowerMockito.mockStatic(System.class);
85         PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn(null);
86         ConfigUtil.getInstance().initRouteLabelsMatches();
87         Assert.assertEquals("0", ConfigUtil.getInstance().getVisualRangeMatches());
88         Assert.assertEquals("net", ConfigUtil.getInstance().getNetwork_plane_typeMatches());
89         Assert.assertTrue(ConfigUtil.getInstance().getLabelMapMatches().containsKey("custom-key"));
90
91
92
93         PowerMockito.when(System.getenv("ROUTE_LABELS")).thenReturn("visualRange:1,network_plane_type:net,custom:test");
94
95         ConfigUtil.getInstance().initRouteLabelsMatches();
96         Assert.assertEquals("1", ConfigUtil.getInstance().getVisualRangeMatches());
97         Assert.assertEquals("net", ConfigUtil.getInstance().getNetwork_plane_typeMatches());
98         Assert.assertTrue(ConfigUtil.getInstance().getLabelMapMatches().containsKey("custom"));
99
100     }
101
102     @Test
103     public void test_initRouteWay() {
104         PowerMockito.mockStatic(System.class);
105
106         PowerMockito.when(System.getenv("ROUTE_WAY")).thenReturn(null);
107         ConfigUtil.getInstance().initRouteWay();
108         String[] ip_routeWay = {"ip"};
109         Assert.assertArrayEquals(ip_routeWay, ConfigUtil.getInstance().getRouteWay());
110
111         PowerMockito.when(System.getenv("ROUTE_WAY")).thenReturn("ip|domain");
112
113         ConfigUtil.getInstance().initRouteWay();
114         String[] routeWay = {"ip", "domain"};
115         Assert.assertArrayEquals(routeWay, ConfigUtil.getInstance().getRouteWay());
116     }
117
118     @Test
119     public void test_initDiscoverInfo() {
120         PowerMockito.mockStatic(System.class);
121
122
123         ApiRouteAppConfig configuration = new ApiRouteAppConfig();
124
125         DiscoverInfo discoverInfo = new DiscoverInfo();
126         discoverInfo.setEnabled(true);
127         discoverInfo.setIp("127.0.0.1");
128         discoverInfo.setPort(10081);
129
130         configuration.setDiscoverInfo(discoverInfo);
131         PowerMockito.when(System.getenv("SDCLIENT_IP")).thenReturn(null);
132         ConfigUtil.getInstance().initDiscoverInfo(configuration);
133         Assert.assertEquals("127.0.0.1:10081", ConfigUtil.getInstance().getDiscoverInfo().toString());
134
135         PowerMockito.when(System.getenv("SDCLIENT_IP")).thenReturn("10.74.44.86");
136         ConfigUtil.getInstance().initDiscoverInfo(configuration);
137         Assert.assertEquals("10.74.44.86:10081", ConfigUtil.getInstance().getDiscoverInfo().toString());
138     }
139
140     @Test
141     public void test_initNodeMeta() {
142
143         // CONSUL_REGISTER_MODE not catalog
144         ConfigUtil util = ConfigUtil.getInstance();
145         util.initNodeMetaQueryParam();
146         System.out.println(util.getNodeMetaQueryParam());
147         Assert.assertEquals(util.getNodeMetaQueryParam(), "");
148
149         // CONSUL_REGISTER_MODE catalog
150         PowerMockito.mockStatic(System.class);
151         PowerMockito.when(System.getenv("CONSUL_REGISTER_MODE")).thenReturn("agnet");
152         util.initNodeMetaQueryParam();
153         System.out.println(util.getNodeMetaQueryParam());
154         Assert.assertEquals(util.getNodeMetaQueryParam(), "");
155
156
157         // CONSUL_REGISTER_MODE catalog
158         PowerMockito.mockStatic(System.class);
159         PowerMockito.when(System.getenv("CONSUL_REGISTER_MODE")).thenReturn("catalog");
160         try {
161             Field visualRangeField = util.getClass().getDeclaredField("visualRangeMatches");
162             visualRangeField.setAccessible(true);
163
164             Field namespaceField = util.getClass().getDeclaredField("namespaceMatches");
165             namespaceField.setAccessible(true);
166
167             // 0:default;
168             visualRangeField.set(util, "0");
169             namespaceField.set(util, "default");
170
171             util.initNodeMetaQueryParam();
172             System.out.println(util.getNodeMetaQueryParam());
173             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=external:true&node-meta=ns:default");
174
175             // 1:default;
176             visualRangeField.set(util, "1");
177             util.initNodeMetaQueryParam();
178             System.out.println(util.getNodeMetaQueryParam());
179             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true&node-meta=ns:default");
180
181             // 0|1:default
182             visualRangeField.set(util, "0|1");
183             util.initNodeMetaQueryParam();
184             System.out.println(util.getNodeMetaQueryParam());
185             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=ns:default");
186
187             // 0|1:all
188             namespaceField.set(util, "all");
189             util.initNodeMetaQueryParam();
190             System.out.println(util.getNodeMetaQueryParam());
191             Assert.assertEquals(util.getNodeMetaQueryParam(), "");
192
193             ///////////////////////////////////////////////////////////////////////////
194             // 1:all
195             visualRangeField.set(util, "1");
196             namespaceField.set(util, "all");
197             util.initNodeMetaQueryParam();
198             System.out.println(util.getNodeMetaQueryParam());
199             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true");
200
201             // 1:!
202             namespaceField.set(util, "!default");
203             util.initNodeMetaQueryParam();
204             System.out.println(util.getNodeMetaQueryParam());
205             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true");
206
207             // 1:&
208             namespaceField.set(util, "tenant1&tenant2");
209             util.initNodeMetaQueryParam();
210             System.out.println(util.getNodeMetaQueryParam());
211             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true");
212
213             // 1:|
214             namespaceField.set(util, "tenant1|tenant2");
215             util.initNodeMetaQueryParam();
216             System.out.println(util.getNodeMetaQueryParam());
217             Assert.assertEquals(util.getNodeMetaQueryParam(), "node-meta=internal:true");
218
219         } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
220             // TODO Auto-generated catch block
221             e.printStackTrace();
222         }
223
224     }
225
226
227 }