f3c0558dcdfa02fd585ab386c0abafc2105116fb
[so/adapters/so-cnf-adapter.git] /
1 package org.onap.so.adapters.cnf.service.aai;
2
3 import org.junit.Assert;
4 import org.junit.Test;
5 import org.junit.runner.RunWith;
6 import org.mockito.InjectMocks;
7 import org.mockito.Mock;
8 import org.onap.so.adapters.cnf.model.instantiation.AaiRequest;
9 import org.onap.so.adapters.cnf.model.statuscheck.K8sRbInstanceGvk;
10 import org.onap.so.adapters.cnf.model.statuscheck.K8sRbInstanceResourceStatus;
11 import org.onap.so.adapters.cnf.model.statuscheck.K8sStatus;
12 import org.onap.so.adapters.cnf.model.statuscheck.K8sStatusMetadata;
13 import org.springframework.test.context.junit4.SpringRunner;
14
15 import java.util.ArrayList;
16 import java.util.Collection;
17 import java.util.HashMap;
18 import java.util.Map;
19
20 import static org.junit.Assert.assertEquals;
21 import static org.mockito.Mockito.mock;
22 import static org.mockito.Mockito.when;
23
24 @RunWith(SpringRunner.class)
25 public class AaiResponseParserTest {
26
27     @InjectMocks
28     private AaiResponseParser aaiResponseParser;
29
30     @Mock
31     private AaiIdGeneratorService aaiIdGeneratorService;
32
33
34     @Test
35     public void shouldParseAaiResponse() {
36         // given
37         String id = "id";
38         String name = "name";
39         String group = "group";
40         String version = "version";
41         String kind = "kind";
42         String namespace = "namespace";
43         Map<String, String> labelsMap = new HashMap<>();
44         labelsMap.put("key", "value");
45         K8sRbInstanceResourceStatus status = mock(K8sRbInstanceResourceStatus.class);
46         AaiRequest aaiRequest = mock(AaiRequest.class);
47         K8sRbInstanceGvk gvk = mock(K8sRbInstanceGvk.class);
48         K8sStatusMetadata metadata = mock(K8sStatusMetadata.class);
49         K8sStatus k8sStatus = mock(K8sStatus.class);
50
51         // when
52         when(status.getGvk()).thenReturn(gvk);
53         when(status.getStatus()).thenReturn(k8sStatus);
54         when(k8sStatus.getK8sStatusMetadata()).thenReturn(metadata);
55         when(aaiIdGeneratorService.generateId(status, aaiRequest)).thenReturn(id);
56         when(status.getName()).thenReturn(name);
57         when(gvk.getGroup()).thenReturn(group);
58         when(gvk.getVersion()).thenReturn(version);
59         when(gvk.getKind()).thenReturn(kind);
60         when(metadata.getNamespace()).thenReturn(namespace);
61         when(aaiRequest.getInstanceId()).thenReturn(id);
62
63         when(metadata.getLabels()).thenReturn(labelsMap);
64
65         // then
66         ParseResult actual = aaiResponseParser.parse(status, aaiRequest);
67
68         Assert.assertNotNull(actual);
69         assertEquals(id, actual.getId());
70         assertEquals(name, actual.getName());
71         assertEquals(group, actual.getGroup());
72         assertEquals(version, actual.getVersion());
73         assertEquals(kind, actual.getKind());
74         assertEquals(namespace, actual.getNamespace());
75         assertEquals(2, actual.getLabels().size());
76         assertEquals("http://so-cnf-adapter:8090/api/cnf-adapter/v1/instance/id/query", actual.getK8sResourceSelfLink());
77
78     }
79
80     ParseResult parse(K8sRbInstanceResourceStatus status, AaiRequest aaiRequest) {
81         ParseResult result = new ParseResult();
82         K8sRbInstanceGvk gvk = status.getGvk();
83         K8sStatus k8sStatus = status.getStatus();
84         K8sStatusMetadata metadata = k8sStatus.getK8sStatusMetadata();
85         String id = aaiIdGeneratorService.generateId(status, aaiRequest);
86         result.setId(id);
87         result.setName(status.getName());
88         result.setGroup(gvk.getGroup());
89         result.setVersion(gvk.getVersion());
90         result.setKind(gvk.getKind());
91         result.setNamespace(metadata.getNamespace());
92         Collection<String> labels = new ArrayList<>();
93         metadata.getLabels().forEach((key, value) -> {
94             labels.add(key);
95             labels.add(value);
96         });
97         result.setLabels(labels);
98         result.setK8sResourceSelfLink(String.format("http://so-cnf-adapter:8090/api/cnf-adapter/v1/instance/%s/query", aaiRequest.getInstanceId()));
99         return result;
100     }
101 }