33d310419d4ed78eae20e978d73a66d1d52ecef9
[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.Rule;
5 import org.junit.jupiter.api.Test;
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
18 import java.util.UUID;
19
20 import static java.util.Arrays.asList;
21 import static org.assertj.core.api.Assertions.assertThat;
22 import static org.mockito.ArgumentMatchers.any;
23 import static org.mockito.Mockito.doReturn;
24 import static org.mockito.Mockito.times;
25 import static org.mockito.Mockito.verify;
26
27 @SpringBootTest
28 @RunWith(MockitoJUnitRunner.class)
29 class HealthCheckServiceTest {
30     private final int portNumber = 8443;
31     @Rule
32     public WireMockRule wireMockRule = new WireMockRule(portNumber);
33
34     @InjectMocks
35     private HealthCheckService healthCheckService;
36
37     @Mock
38     private MulticloudClient multicloudClient;
39
40     @Test
41     public void healthCheckTest() {
42         try {
43             doReturn(getK8sRbInstanceHealthCheckSimple()).when(multicloudClient).startInstanceHealthCheck(any());
44             doReturn(getK8sRbInstanceHealthCheck()).when(multicloudClient).getInstanceHealthCheck(any(), any());
45             HealthCheckResponse response = healthCheckService.healthCheck(getTestCheckInstanceRequest());
46
47             verify(multicloudClient, times(3)).startInstanceHealthCheck(any());
48             verify(multicloudClient, times(3)).getInstanceHealthCheck(any(), any());
49             assertThat(response.getInstanceResponse()).hasSize(getTestCheckInstanceRequest().getInstances().size());
50         } catch (Exception e) {
51             e.printStackTrace();
52         }
53     }
54
55     private CheckInstanceRequest getTestCheckInstanceRequest() {
56         CheckInstanceRequest checkInstanceRequest = new CheckInstanceRequest();
57         checkInstanceRequest.setInstances(asList(getRandomInstance(), getRandomInstance(), getRandomInstance()));
58         return checkInstanceRequest;
59     }
60
61     private InstanceRequest getRandomInstance() {
62         InstanceRequest instanceRequest = new InstanceRequest();
63         instanceRequest.setInstanceId(UUID.randomUUID().toString());
64         return instanceRequest;
65     }
66
67     private K8sRbInstanceHealthCheckSimple getK8sRbInstanceHealthCheckSimple() {
68         K8sRbInstanceHealthCheckSimple k8sRbInstanceHealthCheckSimple = new K8sRbInstanceHealthCheckSimple();
69         k8sRbInstanceHealthCheckSimple.setId(UUID.randomUUID().toString());
70         k8sRbInstanceHealthCheckSimple.setStatus("RUNNING");
71         return k8sRbInstanceHealthCheckSimple;
72     }
73
74     private K8sRbInstanceHealthCheck getK8sRbInstanceHealthCheck() {
75         K8sRbInstanceHealthCheck k8sRbInstanceHealthCheck = new K8sRbInstanceHealthCheck();
76         k8sRbInstanceHealthCheck.setStatus("STOPPED");
77         return k8sRbInstanceHealthCheck;
78     }
79 }