Onboarding Page Account Admin Change
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / service / ConsulHealthServiceImplTest.java
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  *
8  * Unless otherwise specified, all software contained herein is licensed
9  * under the Apache License, Version 2.0 (the "License");
10  * you may not use this software except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *             http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Unless otherwise specified, all documentation contained herein is licensed
22  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23  * you may not use this documentation except in compliance with the License.
24  * You may obtain a copy of the License at
25  *
26  *             https://creativecommons.org/licenses/by/4.0/
27  *
28  * Unless required by applicable law or agreed to in writing, documentation
29  * distributed under the License is distributed on an "AS IS" BASIS,
30  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31  * See the License for the specific language governing permissions and
32  * limitations under the License.
33  *
34  * ============LICENSE_END============================================
35  *
36  * 
37  */
38 package org.onap.portalapp.portal.service;
39
40 import static org.junit.Assert.assertEquals;
41 import static org.junit.Assert.assertNotNull;
42 import static org.mockito.Mockito.*;
43
44 import java.math.BigDecimal;
45 import java.util.ArrayList;
46 import java.util.List;
47
48 import org.junit.Before;
49 import org.junit.Test;
50 import org.junit.runner.RunWith;
51 import org.mockito.InjectMocks;
52 import org.mockito.Mock;
53 import org.mockito.MockitoAnnotations;
54 import org.onap.portalapp.portal.utils.EcompPortalUtils;
55 import org.powermock.api.mockito.PowerMockito;
56 import org.powermock.core.classloader.annotations.PrepareForTest;
57 import org.powermock.modules.junit4.PowerMockRunner;
58
59 import com.orbitz.consul.Consul;
60 import com.orbitz.consul.HealthClient;
61 import com.orbitz.consul.model.ConsulResponse;
62 import com.orbitz.consul.model.health.ServiceHealth;
63 import com.orbitz.consul.Consul.Builder;
64 import com.orbitz.consul.model.health.Node;
65 import com.orbitz.consul.model.health.Service;
66 @RunWith(PowerMockRunner.class)
67 @PrepareForTest({ Consul.class ,EcompPortalUtils.class})
68 public class ConsulHealthServiceImplTest {
69         
70         private static final String TEST="test";
71         @InjectMocks
72         ConsulHealthServiceImpl consulHealthServiceImpl;
73         
74         @Mock
75         Builder builder;
76         @Mock
77         Consul consul ;
78         @Mock
79         HealthClient healthClient;
80         @Mock
81         ServiceHealth serviceHealth;
82         @Mock
83         ConsulResponse<List<ServiceHealth>> response;
84         @Mock
85         Node node;
86         @Mock
87         Service service;
88         
89         @Before
90         public void setup() {
91                 MockitoAnnotations.initMocks(this);
92         }
93         
94         @Test
95         public void getServiceLocation_Error() {
96                 
97                 PowerMockito.mockStatic(Consul.class);
98                 PowerMockito.mockStatic(EcompPortalUtils.class);
99                 PowerMockito.when(Consul.builder()).thenReturn(builder);
100                 PowerMockito.when(EcompPortalUtils.localOrDockerHost()).thenReturn(TEST);
101                 when(builder.build()).thenReturn(consul);
102                 when(consul.healthClient()).thenReturn(healthClient);
103         String location=        consulHealthServiceImpl.getServiceLocation(TEST, TEST);
104         assertNotNull(location);
105                 
106         }
107         
108         @Test
109         public void getServiceLocation_Empty() {
110                 
111                 List<ServiceHealth> nodes=new ArrayList<>();
112                 nodes.add(serviceHealth);
113         
114                 PowerMockito.mockStatic(Consul.class);
115                 PowerMockito.mockStatic(EcompPortalUtils.class);
116                 PowerMockito.when(Consul.builder()).thenReturn(builder);
117                 PowerMockito.when(EcompPortalUtils.localOrDockerHost()).thenReturn(TEST);
118                 when(builder.build()).thenReturn(consul);
119                 when(consul.healthClient()).thenReturn(healthClient);
120                 when( healthClient.getHealthyServiceInstances(TEST)).thenReturn(null);
121         
122                 
123         String location=        consulHealthServiceImpl.getServiceLocation(TEST, TEST);
124         assertNotNull(location);
125                 
126         }
127         
128         
129         @Test
130         public void getServiceLocation() {
131                 
132                 List<ServiceHealth> nodes=new ArrayList<>();
133                 nodes.add(serviceHealth);
134         
135                 PowerMockito.mockStatic(Consul.class);
136                 PowerMockito.mockStatic(EcompPortalUtils.class);
137                 PowerMockito.when(Consul.builder()).thenReturn(builder);
138                 PowerMockito.when(EcompPortalUtils.localOrDockerHost()).thenReturn(TEST);
139                 when(builder.build()).thenReturn(consul);
140                 when(consul.healthClient()).thenReturn(healthClient);
141                 when( healthClient.getHealthyServiceInstances(TEST)).thenReturn(response);
142                 when(response.getResponse()).thenReturn(nodes);
143                 when(serviceHealth.getNode()).thenReturn(node);
144                 when(serviceHealth.getService()).thenReturn(service);
145                 
146         String location=        consulHealthServiceImpl.getServiceLocation(TEST, TEST);
147         assertNotNull(location);
148                 
149         }
150         
151         @Test
152         public void getAllHealthyNodes() {
153                 List<ServiceHealth> nodes=new ArrayList<>();
154                 nodes.add(serviceHealth);
155         
156                 PowerMockito.mockStatic(Consul.class);
157                 PowerMockito.when(Consul.builder()).thenReturn(builder);
158                 
159                 when(builder.build()).thenReturn(consul);
160                 when(consul.healthClient()).thenReturn(healthClient);
161                 when( healthClient.getHealthyServiceInstances(TEST)).thenReturn(response);
162                 when(response.getResponse()).thenReturn(nodes);
163                 List<ServiceHealth> list=       consulHealthServiceImpl.getAllHealthyNodes(TEST);
164                 assertEquals(1, list.size());
165                 
166         }
167         
168         @Test
169         public void getAllNodes() {
170                 List<ServiceHealth> nodes=new ArrayList<>();
171                 nodes.add(serviceHealth);
172         
173                 PowerMockito.mockStatic(Consul.class);
174                 PowerMockito.when(Consul.builder()).thenReturn(builder);
175                 
176                 when(builder.build()).thenReturn(consul);
177                 when(consul.healthClient()).thenReturn(healthClient);
178                 when( healthClient.getAllServiceInstances(TEST)).thenReturn(response);
179                 when(response.getResponse()).thenReturn(nodes);
180                 List<ServiceHealth> list=       consulHealthServiceImpl.getAllNodes(TEST);
181                 assertEquals(1, list.size());
182         }
183
184 }