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