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