d9919a5e38b27bc58f8d56e82522fa3a62aee583
[portal/nonrtric-controlpanel.git] / webapp-backend / src / test / java / org / oransc / portal / nonrtric / controlpanel / controller / PortalRestCentralServiceTest.java
1 /*-
2  * ========================LICENSE_START=================================
3  * O-RAN-SC
4  * %%
5  * Copyright (C) 2019 AT&T Intellectual Property
6  * Modifications Copyright (C) 2020 Nordix Foundation
7  * %%
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ========================LICENSE_END===================================
20  */
21 package org.oransc.portal.nonrtric.controlpanel.controller;
22
23 import static org.junit.jupiter.api.Assertions.assertThrows;
24
25 import java.lang.invoke.MethodHandles;
26 import java.net.URI;
27
28 import org.junit.jupiter.api.Assertions;
29 import org.junit.jupiter.api.Test;
30 import org.onap.portalsdk.core.onboarding.util.PortalApiConstants;
31 import org.slf4j.Logger;
32 import org.slf4j.LoggerFactory;
33 import org.springframework.http.ResponseEntity;
34 import org.springframework.web.reactive.function.client.WebClientResponseException;
35 import reactor.core.publisher.Mono;
36
37 class PortalRestCentralServiceTest extends AbstractControllerTest {
38
39     private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
40
41     @Test
42     void getAnalyticsTest() {
43         // paths are hardcoded here exactly like the EPSDK-FW library :(
44         URI uri = buildUri(null, PortalApiConstants.API_PREFIX, "/analytics");
45         logger.info("Invoking {}", uri);
46         Mono<ResponseEntity<String>> forEntity = webClient.getForEntity(uri.toString());
47         WebClientResponseException e = assertThrows(WebClientResponseException.class, () -> {
48             forEntity.block();
49         });
50         // No Portal is available so this always fails
51         Assertions.assertTrue(e.getStatusCode().is4xxClientError());
52     }
53
54     @Test
55     void getErrorPageTest() {
56         // Send unauthorized request
57
58         URI uri = buildUri(null, "/favicon.ico");
59         logger.info("Invoking {}", uri);
60         Mono<ResponseEntity<String>> forEntity = webClient.getForEntity(uri.toString());
61         WebClientResponseException e = assertThrows(WebClientResponseException.class, () -> {
62             forEntity.block();
63         });
64         Assertions.assertTrue(e.getStatusCode().is4xxClientError());
65         Assertions.assertTrue(e.getResponseBodyAsString().contains("Static error page"));
66     }
67 }