2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 Nokia Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
20 package org.onap.vid.reports;
22 import com.google.common.collect.ImmutableMap;
23 import io.joshworks.restclient.http.Headers;
24 import io.joshworks.restclient.http.HttpResponse;
25 import io.joshworks.restclient.http.exceptions.RestClientException;
26 import nu.xom.jaxen.util.SingletonList;
27 import org.junit.Test;
28 import org.junit.runner.RunWith;
29 import org.mockito.Answers;
30 import org.mockito.InjectMocks;
31 import org.mockito.Mock;
32 import org.mockito.junit.MockitoJUnitRunner;
33 import org.onap.portalsdk.core.domain.User;
34 import org.onap.portalsdk.core.util.SystemProperties;
35 import org.onap.vid.aai.AaiClient;
36 import org.onap.vid.model.SubscriberList;
37 import org.onap.vid.model.errorReport.ReportCreationParameters;
38 import org.onap.vid.model.probes.ExternalComponentStatus;
39 import org.onap.vid.model.probes.StatusMetadata;
40 import org.onap.vid.roles.RoleProvider;
41 import org.onap.vid.scheduler.SchedulerService;
42 import org.onap.vid.services.AaiService;
43 import org.onap.vid.services.ProbeService;
44 import org.onap.vid.utils.SystemPropertiesWrapper;
45 import org.springframework.http.HttpStatus;
47 import javax.servlet.http.HttpServletRequest;
48 import java.util.Arrays;
49 import java.util.Collections;
50 import java.util.List;
52 import static org.assertj.core.api.Assertions.assertThat;
53 import static org.mockito.Mockito.mock;
54 import static org.mockito.Mockito.when;
56 @RunWith(MockitoJUnitRunner.class)
57 public class BasicReportGeneratorTest {
59 private static final String USER_ATTRIBUTE = "userAttribute";
60 private ReportCreationParameters creationParameters = new ReportCreationParameters();
62 @Mock(answer = Answers.RETURNS_DEEP_STUBS)
63 private HttpServletRequest request;
65 private HttpResponse<SubscriberList> subscriberListResponse;
67 private ProbeService probeService;
70 private AaiClient aaiClient;
72 private SchedulerService schedulerService;
74 private AaiService aaiService;
76 private RoleProvider roleProvider;
78 private SystemPropertiesWrapper systemPropertiesWrapper;
81 private BasicReportGenerator basicReportGenerator;
84 public void shouldAlwaysReturnTrueAsConditionOfGeneration() {
88 assertThat(basicReportGenerator.canGenerate(creationParameters)).isTrue();
92 public void shouldGetUserIDFromSystemProperties() {
94 final String expectedUserID = "user_id";
95 User user = new User();
96 user.setLoginId(expectedUserID);
98 when(systemPropertiesWrapper.getProperty(SystemProperties.USER_ATTRIBUTE_NAME)).thenReturn(USER_ATTRIBUTE);
99 when(request.getSession().getAttribute(USER_ATTRIBUTE)).thenReturn(user);
102 String actualUserID = basicReportGenerator.getUserIDFromSystemProperties(request);
105 assertThat(actualUserID).isEqualTo(expectedUserID);
109 public void shouldGetProbes() {
111 ExternalComponentStatus status = new ExternalComponentStatus(
112 ExternalComponentStatus.Component.MSO,
114 mock(StatusMetadata.class));
115 List<ExternalComponentStatus> expectedProbes = Collections.singletonList(status);
117 when(probeService.getProbe()).thenReturn(expectedProbes);
120 List<ExternalComponentStatus> actualProbes = basicReportGenerator.getProbe();
123 assertThat(actualProbes).isEqualTo(expectedProbes);
127 public void shouldGetFullSubscriberList() {
129 SubscriberList subscriberList = new SubscriberList();
130 Headers headers = new Headers();
131 int status = HttpStatus.OK.value();
133 ImmutableMap<String, Object> expectedSubscriberList = ImmutableMap.<String, Object>builder()
134 .put("status", status)
135 .put("body", subscriberList)
136 .put("headers", headers)
139 when(aaiService.getFullSubscriberList()).thenReturn(subscriberListResponse);
140 when(subscriberListResponse.getStatus()).thenReturn(status);
141 when(subscriberListResponse.getBody()).thenReturn(subscriberList);
142 when(subscriberListResponse.getHeaders()).thenReturn(headers);
145 ImmutableMap<String, Object> actualSubscriberList = basicReportGenerator.getFullSubscriberList();
148 assertThat(actualSubscriberList).isEqualTo(expectedSubscriberList);
152 public void shouldReturnExceptionInfoWhileGettingFullSubscriberList() {
154 RestClientException expectedException = mock(RestClientException.class);
155 ImmutableMap<String, Object> expectedResult = ImmutableMap.of("exception", expectedException.toString());
157 when(aaiService.getFullSubscriberList()).thenThrow(expectedException);
160 ImmutableMap<String, Object> actualResult = basicReportGenerator.getFullSubscriberList();
163 assertThat(actualResult).isEqualTo(expectedResult);