Catalog alignment
[sdc.git] / common-app-logging / src / test / java / org / openecomp / sdc / common / log / elements / LoggerAsdcUtilTest.java
1 package org.openecomp.sdc.common.log.elements;
2
3
4 import org.junit.Assert;
5 import org.junit.Before;
6 import org.junit.Test;
7 import org.junit.runner.RunWith;
8 import org.mockito.Mock;
9 import org.mockito.junit.MockitoJUnitRunner;
10 import org.onap.logging.ref.slf4j.ONAPLogConstants;
11 import org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode;
12 import org.openecomp.sdc.common.log.enums.LogLevel;
13 import org.openecomp.sdc.common.log.enums.Severity;
14 import org.openecomp.sdc.common.log.wrappers.LoggerSdcAudit;
15 import org.openecomp.sdc.common.log.wrappers.LoggerSdcUtilBase;
16 import org.slf4j.MarkerFactory;
17
18 import javax.ws.rs.container.ContainerRequestContext;
19 import javax.ws.rs.core.UriInfo;
20 import java.net.URI;
21 import java.net.URISyntaxException;
22
23 import static java.net.HttpURLConnection.*;
24 import static org.junit.Assert.*;
25 import static org.mockito.ArgumentMatchers.anyString;
26 import static org.mockito.Mockito.when;
27
28 /**
29  * Created by dd4296 on 12/19/2017.
30  *
31  * test get partner name
32  */
33 @RunWith(MockitoJUnitRunner.class)
34 public class LoggerAsdcUtilTest {
35
36     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";
37     private final String firefoxUserAgent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.13) Gecko/20080313 Firefox";
38     private final String explorerUserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)";
39
40     private final String testUserId = "ml007";
41     private final String urlWithUserName = "/api/v1/user/" + testUserId;
42     private final String xOnapPartnerName = "ml007";
43
44     class SdcEelfAuditTest extends LoggerSdcAudit {
45
46         SdcEelfAuditTest(Class<?> clazz) {
47             super(clazz);
48         }
49
50         public String getPartnerName(String userAgent, String userID, String url, String xOnapPartnerName) {
51             return super.getPartnerName(userAgent, userID, url, xOnapPartnerName);
52         }
53     }
54
55     @Mock
56     private ContainerRequestContext requestContext;
57     @Mock
58     UriInfo uriInfo;
59
60     private SdcEelfAuditTest asdcEelfAudit;
61
62     @Before
63     public void Init () throws URISyntaxException {
64         asdcEelfAudit = new SdcEelfAuditTest(LoggerAsdcUtilTest.class);
65         when(requestContext.getHeaderString(anyString())).thenReturn("ab2222");
66         when(requestContext.getUriInfo()).thenReturn(uriInfo);
67         URI uri = new URI("http:/abc.com/getId");
68         when(uriInfo.getRequestUri()).thenReturn(uri);
69         when(uriInfo.getBaseUri()).thenReturn(uri);
70
71     }
72
73     @Test
74     public void extract_user_id_from_userAgentTest() {
75
76         String userIdChrome = asdcEelfAudit.getPartnerName(chromeUserAgent, "", "", "");
77         assertEquals(userIdChrome.toLowerCase(), "chrome_FE".toLowerCase());
78
79         String userIdFireFox = asdcEelfAudit.getPartnerName(firefoxUserAgent, "", "", "");
80         assertEquals(userIdFireFox.toLowerCase(), "firefox_FE".toLowerCase());
81
82         String userIdIE = asdcEelfAudit.getPartnerName(explorerUserAgent, "", "", "");
83         assertEquals(userIdIE.toLowerCase(), "explorer_FE".toLowerCase());
84     }
85
86     @Test
87     public void extract_user_id_from_urlTest() {
88
89         String userId = asdcEelfAudit.getPartnerName("", "", urlWithUserName, "");
90         assertEquals(testUserId, userId);
91     }
92
93     @Test
94     public void extract_user_id_from_paramTest() {
95
96         String userId = asdcEelfAudit.getPartnerName("", testUserId, "", "");
97         assertEquals(userId, testUserId);
98     }
99
100     @Test
101     public void extract_user_id_from_xOnapPartnerNameTest() {
102
103         String userId = asdcEelfAudit.getPartnerName("", "", "", xOnapPartnerName);
104         assertEquals(userId, testUserId);
105     }
106
107     @Test
108     public void extract_user_id_priorityTest() {
109
110         String userId = asdcEelfAudit.getPartnerName(chromeUserAgent, testUserId, urlWithUserName, xOnapPartnerName);
111         assertEquals(userId, testUserId);
112
113         String userIdUrl = asdcEelfAudit.getPartnerName(chromeUserAgent, "", urlWithUserName, "");
114         assertEquals(userIdUrl, testUserId);
115
116         String userIdUserAgent = asdcEelfAudit.getPartnerName(chromeUserAgent, "", "", "");
117         assertEquals(userIdUserAgent.toLowerCase(), "chrome_FE".toLowerCase());
118     }
119
120     @Test
121     public void check_http_error_convert_to_eelf_code() {
122         class LoggerSdcUtilBaseTest extends LoggerSdcUtilBase {
123             public EcompLoggerErrorCode convertHttpCodeToErrorCode(int httpResponseCode) {
124                 return super.convertHttpCodeToErrorCode(httpResponseCode);
125             }
126         }
127
128         LoggerSdcUtilBaseTest utilBase = new LoggerSdcUtilBaseTest();
129
130         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_BAD_REQUEST), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
131         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_UNAUTHORIZED), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
132         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_NOT_FOUND), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
133         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_CLIENT_TIMEOUT), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
134         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_GONE), EcompLoggerErrorCode.AVAILABILITY_TIMEOUTS_ERROR);
135
136         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_PAYMENT_REQUIRED), EcompLoggerErrorCode.PERMISSION_ERROR);
137         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_FORBIDDEN), EcompLoggerErrorCode.PERMISSION_ERROR);
138         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_BAD_METHOD), EcompLoggerErrorCode.PERMISSION_ERROR);
139         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_PROXY_AUTH), EcompLoggerErrorCode.PERMISSION_ERROR);
140
141         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_NOT_ACCEPTABLE), EcompLoggerErrorCode.DATA_ERROR);
142         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_LENGTH_REQUIRED), EcompLoggerErrorCode.DATA_ERROR);
143         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_PRECON_FAILED), EcompLoggerErrorCode.DATA_ERROR);
144         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_REQ_TOO_LONG), EcompLoggerErrorCode.DATA_ERROR);
145         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_ENTITY_TOO_LARGE), EcompLoggerErrorCode.DATA_ERROR);
146         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_UNSUPPORTED_TYPE), EcompLoggerErrorCode.DATA_ERROR);
147
148         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_CONFLICT), EcompLoggerErrorCode.SCHEMA_ERROR);
149
150         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_OK), EcompLoggerErrorCode.SUCCESS);
151
152         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_INTERNAL_ERROR), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
153         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_NOT_IMPLEMENTED), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
154         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_BAD_GATEWAY), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
155         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_UNAVAILABLE), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
156         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_GATEWAY_TIMEOUT), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
157         Assert.assertEquals(utilBase.convertHttpCodeToErrorCode(HTTP_VERSION), EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR);
158
159     }
160
161     @Test
162     public void takenCareOf_shouldBeTrue_ifStartedLogWasCalled(){
163         asdcEelfAudit.startLog(requestContext);
164         assertTrue(asdcEelfAudit.isFlowBeingTakenCare());
165     }
166
167     @Test
168     public void takenCareOf_shouldBeFalse_ifStartedLogWasNoCalled(){
169         assertFalse(asdcEelfAudit.isFlowBeingTakenCare());
170     }
171
172     @Test
173     public void takenCareOf_shouldBeFalse_ifStartedLogWasCalleAndLogWasCalledToo(){
174         asdcEelfAudit.startLog(requestContext);
175         
176         asdcEelfAudit.logExit(null,null,null, LogLevel.INFO,  Severity.OK,
177                 "message", MarkerFactory.getMarker(ONAPLogConstants.Markers.EXIT.getName()));
178         assertFalse(asdcEelfAudit.isFlowBeingTakenCare());
179     }
180 }