2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T 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=========================================================
21 package org.openecomp.sdc.common.log.elements;
24 import org.junit.Assert;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.junit.runner.RunWith;
28 import org.mockito.Mock;
29 import org.mockito.junit.MockitoJUnitRunner;
30 import org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode;
31 import org.openecomp.sdc.common.log.enums.LogLevel;
32 import org.openecomp.sdc.common.log.enums.Severity;
33 import org.openecomp.sdc.common.log.wrappers.LoggerSdcAudit;
34 import org.openecomp.sdc.common.log.wrappers.LoggerSdcUtilBase;
36 import javax.ws.rs.container.ContainerRequestContext;
37 import javax.ws.rs.core.UriInfo;
39 import java.net.URISyntaxException;
41 import static java.net.HttpURLConnection.*;
42 import static org.junit.Assert.*;
43 import static org.mockito.ArgumentMatchers.anyString;
44 import static org.mockito.Mockito.when;
47 * Created by dd4296 on 12/19/2017.
49 * test get partner name
51 @RunWith(MockitoJUnitRunner.class)
52 public class LoggerAsdcUtilTest {
54 private final String chromeUserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
55 private final String firefoxUserAgent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.13) Gecko/20080313 Firefox";
56 private final String explorerUserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)";
58 private final String testUserId = "ml007";
59 private final String urlWithUserName = "/api/v1/user/" + testUserId;
61 class SdcEelfAuditTest extends LoggerSdcAudit {
63 SdcEelfAuditTest(Class<?> clazz) {
67 public String getPartnerName(String userAgent, String userID, String url) {
68 return super.getPartnerName(userAgent, userID, url);
73 private ContainerRequestContext requestContext;
77 private SdcEelfAuditTest asdcEelfAudit;
80 public void Init () throws URISyntaxException {
81 asdcEelfAudit = new SdcEelfAuditTest(LoggerAsdcUtilTest.class);
82 when(requestContext.getHeaderString(anyString())).thenReturn("ab2222");
83 when(requestContext.getUriInfo()).thenReturn(uriInfo);
84 URI uri = new URI("http:/abc.com/getId");
85 when(uriInfo.getRequestUri()).thenReturn(uri);
86 when(uriInfo.getBaseUri()).thenReturn(uri);
91 public void extract_user_id_from_userAgentTest() {
93 String userIdChrome = asdcEelfAudit.getPartnerName(chromeUserAgent, "", "");
94 assertEquals(userIdChrome.toLowerCase(), "chrome_FE".toLowerCase());
96 String userIdFireFox = asdcEelfAudit.getPartnerName(firefoxUserAgent, "", "");
97 assertEquals(userIdFireFox.toLowerCase(), "firefox_FE".toLowerCase());
99 String userIdIE = asdcEelfAudit.getPartnerName(explorerUserAgent, "", "");
100 assertEquals(userIdIE.toLowerCase(), "explorer_FE".toLowerCase());
104 public void extract_user_id_from_urlTest() {
106 String userId = asdcEelfAudit.getPartnerName("", "", urlWithUserName);
107 assertEquals(testUserId, userId);
111 public void extract_user_id_from_paramTest() {
113 String userId = asdcEelfAudit.getPartnerName("", testUserId, "");
114 assertEquals(userId, testUserId);
118 public void extract_user_id_priorityTest() {
120 String userId = asdcEelfAudit.getPartnerName(chromeUserAgent, testUserId, urlWithUserName);
121 assertEquals(userId, testUserId);
123 String userIdUrl = asdcEelfAudit.getPartnerName(chromeUserAgent, "", urlWithUserName);
124 assertEquals(userIdUrl, testUserId);
126 String userIdUserAgent = asdcEelfAudit.getPartnerName(chromeUserAgent, "", "");
127 assertEquals(userIdUserAgent.toLowerCase(), "chrome_FE".toLowerCase());
131 public void check_http_error_convert_to_eelf_code() {
132 class LoggerSdcUtilBaseTest extends LoggerSdcUtilBase {
133 public EcompLoggerErrorCode convertHttpCodeToErrorCode(int httpResponseCode) {
134 return super.convertHttpCodeToErrorCode(httpResponseCode);
138 LoggerSdcUtilBaseTest utilBase = new LoggerSdcUtilBaseTest();
140 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_BAD_REQUEST), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
141 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_UNAUTHORIZED), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
142 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_NOT_FOUND), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
143 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_CLIENT_TIMEOUT), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
144 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_GONE), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
146 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_PAYMENT_REQUIRED), EcompLoggerErrorCode.PERMISSION_ERROR);
147 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_FORBIDDEN), EcompLoggerErrorCode.PERMISSION_ERROR);
148 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_BAD_METHOD), EcompLoggerErrorCode.PERMISSION_ERROR);
149 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_PROXY_AUTH), EcompLoggerErrorCode.PERMISSION_ERROR);
151 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_NOT_ACCEPTABLE), EcompLoggerErrorCode.DATA_ERROR);
152 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_LENGTH_REQUIRED), EcompLoggerErrorCode.DATA_ERROR);
153 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_PRECON_FAILED), EcompLoggerErrorCode.DATA_ERROR);
154 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_REQ_TOO_LONG), EcompLoggerErrorCode.DATA_ERROR);
155 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_ENTITY_TOO_LARGE), EcompLoggerErrorCode.DATA_ERROR);
156 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_UNSUPPORTED_TYPE), EcompLoggerErrorCode.DATA_ERROR);
158 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_CONFLICT), EcompLoggerErrorCode.SCHEMA_ERROR);
160 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_OK), EcompLoggerErrorCode.SUCCESS);
162 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_INTERNAL_ERROR), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
163 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_NOT_IMPLEMENTED), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
164 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_BAD_GATEWAY), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
165 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_UNAVAILABLE), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
166 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_GATEWAY_TIMEOUT), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
167 Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_VERSION), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
172 public void takenCareOf_shouldBeTrue_ifStartedLogWasCalled(){
173 asdcEelfAudit.startLog(requestContext);
174 assertTrue(asdcEelfAudit.isFlowBeingTakenCare());
178 public void takenCareOf_shouldBeFalse_ifStartedLogWasNoCalled(){
179 assertFalse(asdcEelfAudit.isFlowBeingTakenCare());
183 public void takenCareOf_shouldBeFalse_ifStartedLogWasCalleAndLogWasCalledToo(){
184 asdcEelfAudit.startLog(requestContext);
186 asdcEelfAudit.log(null,null,null, LogLevel.INFO, Severity.OK, "message");
187 assertFalse(asdcEelfAudit.isFlowBeingTakenCare());