88035219b317fdc005fd4a8aca42d96f13f23283
[so/adapters/so-cnf-adapter.git] /
1 package org.onap.so.adapters.cnf.service.healthcheck;
2
3 import com.github.tomakehurst.wiremock.junit.WireMockRule;
4 import org.junit.Test;
5 import org.junit.Rule;
6 import org.junit.runner.RunWith;
7 import org.mockito.InjectMocks;
8 import org.mockito.Mock;
9 import org.mockito.junit.MockitoJUnitRunner;
10 import org.onap.so.adapters.cnf.client.MulticloudClient;
11 import org.onap.so.adapters.cnf.model.CheckInstanceRequest;
12 import org.onap.so.adapters.cnf.model.InstanceRequest;
13 import org.onap.so.adapters.cnf.model.healthcheck.HealthCheckResponse;
14 import org.onap.so.adapters.cnf.model.healthcheck.K8sRbInstanceHealthCheck;
15 import org.onap.so.adapters.cnf.model.healthcheck.K8sRbInstanceHealthCheckSimple;
16 import org.springframework.boot.test.context.SpringBootTest;
17 import org.springframework.test.context.junit4.SpringRunner;
18
19 import java.util.UUID;
20
21 import static java.util.Arrays.asList;
22 import static org.assertj.core.api.Assertions.assertThat;
23 import static org.mockito.ArgumentMatchers.any;
24 import static org.mockito.Mockito.doReturn;
25 import static org.mockito.Mockito.times;
26 import static org.mockito.Mockito.verify;
27
28 @SpringBootTest
29 @RunWith(SpringRunner.class)
30 public class HealthCheckServiceTest {
31     private final int portNumber = 8443;
32     @Rule
33     public WireMockRule wireMockRule = new WireMockRule(portNumber);
34
35     @InjectMocks
36     private HealthCheckService healthCheckService;
37
38     @Mock
39     private MulticloudClient multicloudClient;
40
41     @Test
42     public void healthCheckTest() {
43         try {
44             doReturn(getK8sRbInstanceHealthCheckSimple()).when(multicloudClient).startInstanceHealthCheck(any());
45             doReturn(getK8sRbInstanceHealthCheck()).when(multicloudClient).getInstanceHealthCheck(any(), any());
46             HealthCheckResponse response = healthCheckService.healthCheck(getTestCheckInstanceRequest());
47
48             verify(multicloudClient, times(3)).startInstanceHealthCheck(any());
49             verify(multicloudClient, times(3)).getInstanceHealthCheck(any(), any());
50             assertThat(response.getInstanceResponse()).hasSize(getTestCheckInstanceRequest().getInstances().size());
51         } catch (Exception e) {
52             e.printStackTrace();
53         }
54     }
55
56     private CheckInstanceRequest getTestCheckInstanceRequest() {
57         CheckInstanceRequest checkInstanceRequest = new CheckInstanceRequest();
58         checkInstanceRequest.setInstances(asList(getRandomInstance(), getRandomInstance(), getRandomInstance()));
59         return checkInstanceRequest;
60     }
61
62     private InstanceRequest getRandomInstance() {
63         InstanceRequest instanceRequest = new InstanceRequest();
64         instanceRequest.setInstanceId(UUID.randomUUID().toString());
65         return instanceRequest;
66     }
67
68     private K8sRbInstanceHealthCheckSimple getK8sRbInstanceHealthCheckSimple() {
69         K8sRbInstanceHealthCheckSimple k8sRbInstanceHealthCheckSimple = new K8sRbInstanceHealthCheckSimple();
70         k8sRbInstanceHealthCheckSimple.setId(UUID.randomUUID().toString());
71         k8sRbInstanceHealthCheckSimple.setStatus("RUNNING");
72         return k8sRbInstanceHealthCheckSimple;
73     }
74
75     private K8sRbInstanceHealthCheck getK8sRbInstanceHealthCheck() {
76         K8sRbInstanceHealthCheck k8sRbInstanceHealthCheck = new K8sRbInstanceHealthCheck();
77         k8sRbInstanceHealthCheck.setStatus("STOPPED");
78         return k8sRbInstanceHealthCheck;
79     }
80 }