Catalog alignment
[sdc.git] / common-app-logging / src / test / java / org / openecomp / sdc / common / log / elements / LoggerMetricTest.java
1 package org.openecomp.sdc.common.log.elements;
2
3 import org.junit.After;
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.LogLevel;
11 import org.openecomp.sdc.common.log.enums.Severity;
12 import org.openecomp.sdc.common.log.utils.LoggingThreadLocalsHolder;
13 import org.slf4j.Logger;
14 import org.slf4j.MDC;
15
16 import javax.ws.rs.core.Response;
17 import java.net.InetAddress;
18 import java.net.UnknownHostException;
19 import java.util.UUID;
20
21 import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.*;
22 import static org.onap.logging.ref.slf4j.ONAPLogConstants.ResponseStatus.COMPLETE;
23 import static org.openecomp.sdc.common.log.api.ILogConfiguration.MDC_CLASS_NAME;
24 import static org.openecomp.sdc.common.log.api.ILogConfiguration.MDC_ELAPSED_TIME;
25 import static org.openecomp.sdc.common.log.api.ILogConfiguration.MDC_END_TIMESTAMP;
26 import static org.openecomp.sdc.common.log.api.ILogConfiguration.MDC_PROCESS_KEY;
27 import static org.openecomp.sdc.common.log.api.ILogConfiguration.MDC_REMOTE_HOST;
28 import static org.openecomp.sdc.common.log.api.ILogConfiguration.MDC_SERVER_IP_ADDRESS;
29 import static org.openecomp.sdc.common.log.api.ILogConfiguration.MDC_SERVICE_INSTANCE_ID;
30 import static org.openecomp.sdc.common.log.api.ILogConfiguration.MDC_TARGET_VIRTUAL_ENTITY;
31 import static org.openecomp.sdc.common.log.elements.LogFieldsMdcHandler.hostAddress;
32
33 /**
34  * Created by dd4296 on 12/31/2017.
35  */
36 @RunWith(MockitoJUnitRunner.class)
37 public class LoggerMetricTest {
38     @Mock
39     private Logger logger;
40
41     @Mock
42     Response.StatusType statusType;
43
44     private LoggerMetric metricLog;
45
46     @Before
47     public void init() {
48         metricLog = new LoggerMetric(LogFieldsMdcHandler.getInstance(), logger);
49     }
50
51     @After
52     public void tearDown() {
53         MDC.clear();
54         LoggingThreadLocalsHolder.setUuid(null);
55     }
56
57     @Test
58     public void whenNoMetricFieldsArePopulated_ShouldReturnassertEquals_onMdcMap() {
59         metricLog.clear()
60                 .log(LogLevel.DEBUG, "some error code");
61         Assert.assertNotNull(MDC.get(SERVER_FQDN));
62         Assert.assertNotNull(MDC.get(MDC_SERVER_IP_ADDRESS));
63     }
64
65     @Test
66     public void whenAllMetricFieldsArePopulated_ShouldReturnassertEquals_onEachMACField() throws UnknownHostException {
67         String uuid = UUID.randomUUID().toString();
68         LoggingThreadLocalsHolder.setUuid(uuid);
69
70         String hostName = InetAddress.getByName(hostAddress).getCanonicalHostName();
71         String hostAddress = InetAddress.getLocalHost().getHostAddress();
72
73         metricLog.clear()
74                 .startTimer()
75                 .stopTimer()
76                 .setInstanceUUID(INSTANCE_UUID)
77                 .setRemoteHost(MDC_REMOTE_HOST)
78                 .setServiceName(SERVICE_NAME)
79                 .setResponseCode(500)
80                 .setStatusCode(COMPLETE.name())
81                 .setResponseDesc(RESPONSE_DESCRIPTION)
82                 .setPartnerName(PARTNER_NAME)
83                 .setOptClassName(LoggerMetricTest.class.toString())
84                 .setOptServiceInstanceId(MDC_SERVICE_INSTANCE_ID)
85                 .setTargetEntity(TARGET_ENTITY)
86                 .setTargetServiceName(TARGET_SERVICE_NAME)
87                 .setTargetVirtualEntity(MDC_TARGET_VIRTUAL_ENTITY)
88                 .log(LogLevel.DEBUG, "");
89
90
91         Assert.assertFalse(LogFieldsMdcHandler.getInstance().isMDCParamEmpty(INVOKE_TIMESTAMP));
92         Assert.assertFalse(LogFieldsMdcHandler.getInstance().isMDCParamEmpty(MDC_END_TIMESTAMP));
93         Assert.assertFalse(LogFieldsMdcHandler.getInstance().isMDCParamEmpty(MDC_ELAPSED_TIME));
94         Assert.assertEquals(MDC.get(MDC_SERVER_IP_ADDRESS),hostAddress);
95         Assert.assertEquals(MDC.get(SERVER_FQDN), hostName);
96         Assert.assertEquals(MDC.get(MDC_REMOTE_HOST), MDC_REMOTE_HOST);
97         Assert.assertEquals(MDC.get(RESPONSE_STATUS_CODE) , "COMPLETE");
98         Assert.assertEquals(MDC.get(REQUEST_ID), uuid);
99         Assert.assertEquals(MDC.get(SERVICE_NAME) , SERVICE_NAME);
100         Assert.assertEquals(MDC.get(PARTNER_NAME) , PARTNER_NAME);
101         Assert.assertEquals(MDC.get(RESPONSE_CODE) ,"500");
102         Assert.assertEquals(MDC.get(RESPONSE_DESCRIPTION) , RESPONSE_DESCRIPTION);
103         Assert.assertEquals(MDC.get(INSTANCE_UUID) , INSTANCE_UUID);
104         Assert.assertEquals(MDC.get(MDC_CLASS_NAME) ,LoggerMetricTest.class.toString());
105         Assert.assertEquals(MDC.get(MDC_SERVICE_INSTANCE_ID) ,MDC_SERVICE_INSTANCE_ID);
106         Assert.assertEquals(MDC.get(TARGET_ENTITY) , TARGET_ENTITY);
107         Assert.assertEquals(MDC.get(TARGET_SERVICE_NAME) , TARGET_SERVICE_NAME);
108         Assert.assertEquals(MDC.get(MDC_TARGET_VIRTUAL_ENTITY) ,MDC_TARGET_VIRTUAL_ENTITY);
109     }
110 }