Added oparent to sdc main
[sdc.git] / common-app-api / src / test / java / org / openecomp / sdc / common / log / elements / LoggerAsdcUtilTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.common.log.elements;
22
23
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;
35
36 import javax.ws.rs.container.ContainerRequestContext;
37 import javax.ws.rs.core.UriInfo;
38 import java.net.URI;
39 import java.net.URISyntaxException;
40
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;
45
46 /**
47  * Created by dd4296 on 12/19/2017.
48  *
49  * test get partner name
50  */
51 @RunWith(MockitoJUnitRunner.class)
52 public class LoggerAsdcUtilTest {
53
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)";
57
58     private final String testUserId = "ml007";
59     private final String urlWithUserName = "/api/v1/user/" + testUserId;
60
61     class SdcEelfAuditTest extends LoggerSdcAudit {
62
63         SdcEelfAuditTest(Class<?> clazz) {
64             super(clazz);
65         }
66
67         public String getPartnerName(String userAgent, String userID, String url) {
68             return super.getPartnerName(userAgent, userID, url);
69         }
70     }
71
72     @Mock
73     private ContainerRequestContext requestContext;
74     @Mock
75     UriInfo uriInfo;
76
77     private SdcEelfAuditTest asdcEelfAudit;
78
79     @Before
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);
87
88     }
89
90     @Test
91     public void extract_user_id_from_userAgentTest() {
92
93         String userIdChrome = asdcEelfAudit.getPartnerName(chromeUserAgent, "", "");
94         assertEquals(userIdChrome.toLowerCase(), "chrome_FE".toLowerCase());
95
96         String userIdFireFox = asdcEelfAudit.getPartnerName(firefoxUserAgent, "", "");
97         assertEquals(userIdFireFox.toLowerCase(), "firefox_FE".toLowerCase());
98
99         String userIdIE = asdcEelfAudit.getPartnerName(explorerUserAgent, "", "");
100         assertEquals(userIdIE.toLowerCase(), "explorer_FE".toLowerCase());
101     }
102
103     @Test
104     public void extract_user_id_from_urlTest() {
105
106         String userId = asdcEelfAudit.getPartnerName("", "", urlWithUserName);
107         assertEquals(testUserId, userId);
108     }
109
110     @Test
111     public void extract_user_id_from_paramTest() {
112
113         String userId = asdcEelfAudit.getPartnerName("", testUserId, "");
114         assertEquals(userId, testUserId);
115     }
116
117     @Test
118     public void extract_user_id_priorityTest() {
119
120         String userId = asdcEelfAudit.getPartnerName(chromeUserAgent, testUserId, urlWithUserName);
121         assertEquals(userId, testUserId);
122
123         String userIdUrl = asdcEelfAudit.getPartnerName(chromeUserAgent, "", urlWithUserName);
124         assertEquals(userIdUrl, testUserId);
125
126         String userIdUserAgent = asdcEelfAudit.getPartnerName(chromeUserAgent, "", "");
127         assertEquals(userIdUserAgent.toLowerCase(), "chrome_FE".toLowerCase());
128     }
129
130     @Test
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);
135             }
136         }
137
138         LoggerSdcUtilBaseTest utilBase = new LoggerSdcUtilBaseTest();
139
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);
145
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);
150
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);
157
158         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_CONFLICT), EcompLoggerErrorCode.SCHEMA_ERROR);
159
160         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_OK), EcompLoggerErrorCode.SUCCESS);
161
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);
168
169     }
170
171     @Test
172     public void takenCareOf_shouldBeTrue_ifStartedLogWasCalled(){
173         asdcEelfAudit.startLog(requestContext);
174         assertTrue(asdcEelfAudit.isFlowBeingTakenCare());
175     }
176
177     @Test
178     public void takenCareOf_shouldBeFalse_ifStartedLogWasNoCalled(){
179         assertFalse(asdcEelfAudit.isFlowBeingTakenCare());
180     }
181
182     @Test
183     public void takenCareOf_shouldBeFalse_ifStartedLogWasCalleAndLogWasCalledToo(){
184         asdcEelfAudit.startLog(requestContext);
185         
186         asdcEelfAudit.log(null,null,null, LogLevel.INFO,  Severity.OK, "message");
187         assertFalse(asdcEelfAudit.isFlowBeingTakenCare());
188     }
189
190 }