2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 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.
19 * ============LICENSE_END=========================================================
22 package org.onap.appc.logging;
24 import org.junit.Test;
25 import org.powermock.reflect.Whitebox;
27 import com.att.eelf.configuration.EELFLogger;
28 import com.att.eelf.configuration.EELFManager;
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.assertNotNull;
31 import static org.junit.Assert.assertNull;
32 import static org.junit.Assert.fail;
33 import java.lang.Class;
34 import java.lang.reflect.Method;
35 import java.time.Instant;
37 public class LoggingUtilsTest {
38 @Test(expected = IllegalAccessError.class)
39 public void testConstructor() throws Exception {
40 Whitebox.invokeConstructor(LoggingUtils.class);
44 public void testLogErrorMessageStringStringStringStringStringString() {
46 LoggingUtils.logErrorMessage("ERROR_CODE", "ERROR_DESCRIPTION", "TARGET_ENTITY", "TARGET_SERVICE_NAME", "ADDITIONAL_MESSAGE", "CLASS_NAME");
47 assertNull(MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
48 } catch (Exception e) {
49 fail("Exception invoking logErrorMessage: " + e.toString());
54 public void testLogErrorMessageStringStringStringString() {
56 LoggingUtils.logErrorMessage("TARGET_ENTITY", "TARGET_SERVICE_NAME", "ADDITIONAL_MESSAGE", "CLASS_NAME");
57 assertNull(MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
58 } catch (Exception e) {
59 fail("Exception invoking logErrorMessage: " + e.toString());
64 public void testLogErrorMessageStringStringString() {
66 LoggingUtils.logErrorMessage("TARGET_SERVICE_NAME", "ADDITIONAL_MESSAGE", "CLASS_NAME");
67 assertNull(MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
68 } catch (Exception e) {
69 fail("Exception invoking logErrorMessage: " + e.toString());
74 public void testLogError() {
76 Class<?>[] paramString = { String.class, String.class, String.class, String.class, String.class, String.class };
77 Method m = LoggingUtils.class.getDeclaredMethod("logError", paramString);
78 m.setAccessible(true);
79 m.invoke(null, "ERROR_CODE", "ERROR_DESCRIPTION", "TARGET_ENTITY", "TARGET_SERVICE_NAME", "ADDITIONAL_MESSAGE", "CLASS_NAME");
80 assertNull(MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
81 } catch (Exception e) {
82 fail("Exception invoking logError: " + e.toString());
87 public void testLogAuditMessage() {
89 Class<?>[] paramString = { Instant.class, Instant.class, String.class, String.class, String.class };
90 Method m = LoggingUtils.class.getDeclaredMethod("logAuditMessage", paramString);
91 m.setAccessible(true);
92 java.util.Date timestamp = new java.util.Date();
93 m.invoke(null, timestamp.toInstant(), timestamp.toInstant(), "CODE", "RESPONSE_DESCRIPTION", "CLASS_NAME");
94 assertNull(MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
95 } catch (Exception e) {
96 fail("Exception invoking logAuditMessage: " + e.toString());
101 public void testAuditInfo() {
103 EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
104 auditLogger.info("Audit logging test info");
105 } catch (Exception e) {
106 fail("Exception invoking testAuditInfo: " + e.toString());
111 public void testAuditWarn() {
113 EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
114 auditLogger.warn("Audit logging test warning");
115 } catch (Exception e) {
116 fail("Exception invoking testAuditWarn: " + e.toString());
121 public void testLogMetricsMessage() {
123 java.util.Date timestamp = new java.util.Date();
124 LoggingUtils.logMetricsMessage(timestamp.toInstant(), timestamp.toInstant(), "TARGET_ENTITY", "TARGET_SERVICE_NAME", "STATUS_CODE", "RESPONSE_CODE", "RESPONSE_DESCRIPTION", "CLASS_NAME");
125 assertNull(MDC.get(LoggingConstants.MDCKeys.STATUS_CODE));
127 } catch (Exception e) {
128 fail("Exception invoking logMetricsMessage: " + e.toString());
133 public void testPopulateAuditLogContext() {
135 Class<?>[] paramString = { Instant.class, Instant.class, String.class, String.class, String.class };
136 Method m = LoggingUtils.class.getDeclaredMethod("populateAuditLogContext", paramString);
137 m.setAccessible(true);
138 java.util.Date timestamp = new java.util.Date();
139 m.invoke(null, timestamp.toInstant(), timestamp.toInstant(), "100", "RESPONSE_DESCRIPTION", "CLASS_NAME");
140 assertEquals("COMPLETE", MDC.get(LoggingConstants.MDCKeys.STATUS_CODE));
141 assertEquals("100", MDC.get(LoggingConstants.MDCKeys.RESPONSE_CODE));
142 assertEquals("RESPONSE_DESCRIPTION", MDC.get(LoggingConstants.MDCKeys.RESPONSE_DESCRIPTION));
143 } catch (Exception e) {
144 fail("Exception invoking populateAuditLogContext: " + e.toString());
149 public void testCleanAuditErrorContext() {
151 Method m = LoggingUtils.class.getDeclaredMethod("cleanAuditErrorContext");
152 m.setAccessible(true);
153 MDC.put(LoggingConstants.MDCKeys.STATUS_CODE, "STATUS_CODE");
154 MDC.put(LoggingConstants.MDCKeys.RESPONSE_CODE, "RESPONSE_CODE");
155 MDC.put(LoggingConstants.MDCKeys.RESPONSE_DESCRIPTION, "RESPONSE_DESCRIPTION");
156 MDC.put(LoggingConstants.MDCKeys.CLASS_NAME, "CLASS_NAME");
158 assertNull(MDC.get(LoggingConstants.MDCKeys.STATUS_CODE));
159 assertNull(MDC.get(LoggingConstants.MDCKeys.RESPONSE_CODE));
160 assertNull(MDC.get(LoggingConstants.MDCKeys.RESPONSE_DESCRIPTION));
161 assertNull(MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
162 } catch (Exception e) {
163 fail("Exception invoking cleanAuditErrorLogContext: " + e.toString());
168 public void testPopulateErrorLogContext() {
170 Class<?>[] paramString = { String.class, String.class, String.class, String.class, String.class };
171 Method m = LoggingUtils.class.getDeclaredMethod("populateErrorLogContext", paramString);
172 m.setAccessible(true);
173 m.invoke(null, "ERROR_CODE", "ERROR_DESCRIPTION", "TARGET_ENTITY", "TARGET_SERVICENAME", "CLASS_NAME");
174 assertEquals("CLASS_NAME", MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
175 } catch (Exception e) {
176 fail("Exception invoking populateErrorLogContext: " + e.toString());
181 public void testCleanErrorLogContext() {
183 Method m = LoggingUtils.class.getDeclaredMethod("cleanErrorLogContext");
184 m.setAccessible(true);
185 MDC.put(LoggingConstants.MDCKeys.CLASS_NAME, "CLASS_NAME");
187 assertNull(MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
188 } catch (Exception e) {
189 fail("Exception invoking cleanErrorLogContext: " + e.toString());
194 public void testPopulateMetricLogContext() {
196 Class<?>[] paramString = { Instant.class, Instant.class, String.class, String.class, String.class,
197 String.class, String.class, String.class };
198 Method m = LoggingUtils.class.getDeclaredMethod("populateMetricLogContext", paramString);
199 m.setAccessible(true);
200 java.util.Date timestamp = new java.util.Date();
201 m.invoke(null, timestamp.toInstant(), timestamp.toInstant(), "TARGET_ENTITY", "TARGET_SERVICE_NAME", "STATUS_CODE", "RESPONSE_CODE", "RESPONSE_DESCRIPTION", "CLASS_NAME");
202 assertEquals("STATUS_CODE", MDC.get(LoggingConstants.MDCKeys.STATUS_CODE));
203 assertEquals("RESPONSE_CODE", MDC.get(LoggingConstants.MDCKeys.RESPONSE_CODE));
204 assertEquals("RESPONSE_DESCRIPTION", MDC.get(LoggingConstants.MDCKeys.RESPONSE_DESCRIPTION));
205 } catch (Exception e) {
206 fail("Exception invoking populateMetricLogContext: " + e.toString());
211 public void testCleanMetricContext() {
213 Method m = LoggingUtils.class.getDeclaredMethod("cleanMetricContext");
214 m.setAccessible(true);
215 MDC.put(LoggingConstants.MDCKeys.CLASS_NAME, "CLASS_NAME");
217 assertNull(MDC.get(LoggingConstants.MDCKeys.CLASS_NAME));
218 } catch (Exception e) {
219 fail("Exception invoking cleanMetricContext: " + e.toString());
224 public void testPopulateTargetContext() {
226 Class<?>[] paramString = { String.class, String.class };
227 Method m = LoggingUtils.class.getDeclaredMethod("populateTargetContext", paramString);
228 m.setAccessible(true);
229 m.invoke(null, "TARGET_ENTITY", "TARGET_SERVICE_NAME");
230 assertEquals("TARGET_ENTITY", MDC.get(LoggingConstants.MDCKeys.TARGET_ENTITY));
231 assertEquals("TARGET_SERVICE_NAME", MDC.get(LoggingConstants.MDCKeys.TARGET_SERVICE_NAME));
232 } catch (Exception e) {
233 fail("Exception invoking populateTargetContext: " + e.toString());
238 public void testCleanTargetContext() {
240 Method m = LoggingUtils.class.getDeclaredMethod("cleanTargetContext");
241 m.setAccessible(true);
242 MDC.put(LoggingConstants.MDCKeys.TARGET_ENTITY, "TARGET_ENTITY");
243 MDC.put(LoggingConstants.MDCKeys.TARGET_SERVICE_NAME, "TARGET_SERVICE_NAME");
245 assertNull(MDC.get(LoggingConstants.MDCKeys.TARGET_ENTITY));
246 assertNull(MDC.get(LoggingConstants.MDCKeys.TARGET_SERVICE_NAME));
247 } catch (Exception e) {
248 fail("Exception invoking cleanTargetContext: " + e.toString());
253 public void testPopulateTimeContext() {
255 Class<?>[] paramString = { Instant.class, Instant.class };
256 Method m = LoggingUtils.class.getDeclaredMethod("populateTimeContext", paramString);
257 m.setAccessible(true);
258 java.util.Date timestamp = new java.util.Date();
259 m.invoke(null, timestamp.toInstant(), timestamp.toInstant());
260 } catch (Exception e) {
261 fail("Exception invoking populateTimeContext: " + e.toString());
266 public void testGenerateTimestampStr() {
268 Class<?>[] paramString = { Instant.class };
269 Method m = LoggingUtils.class.getDeclaredMethod("generateTimestampStr", paramString);
270 m.setAccessible(true);
271 java.util.Date timestamp = new java.util.Date();
272 assertNotNull((String) m.invoke(null, timestamp.toInstant()));
273 } catch (Exception e) {
274 fail("Exception invoking testGenerateTimestampStr: " + e.toString());
280 public void testCleanTimeContext() {
282 Method m = LoggingUtils.class.getDeclaredMethod("cleanTimeContext");
283 m.setAccessible(true);
284 MDC.put(LoggingConstants.MDCKeys.BEGIN_TIMESTAMP, "BEGIN_TIMESTAMP");
285 MDC.put(LoggingConstants.MDCKeys.END_TIMESTAMP, "END_TIMESTAMP");
286 MDC.put(LoggingConstants.MDCKeys.ELAPSED_TIME, "ELAPSED_TIME");
288 assertNull(MDC.get(LoggingConstants.MDCKeys.BEGIN_TIMESTAMP));
289 assertNull(MDC.get(LoggingConstants.MDCKeys.END_TIMESTAMP));
290 assertNull(MDC.get(LoggingConstants.MDCKeys.ELAPSED_TIME));
291 } catch (Exception e) {
292 fail("Exception invoking cleanErrorContext: " + e.toString());
297 public void testPopulateResponseContext() {
299 Class<?>[] paramString = { String.class, String.class, String.class };
300 Method m = LoggingUtils.class.getDeclaredMethod("populateResponseContext", paramString);
301 m.setAccessible(true);
302 m.invoke(null, "STATUS_CODE", "RESPONSE_CODE", "RESPONSE_DESCRIPTION");
303 assertEquals("STATUS_CODE", MDC.get(LoggingConstants.MDCKeys.STATUS_CODE));
304 assertEquals("RESPONSE_CODE", MDC.get(LoggingConstants.MDCKeys.RESPONSE_CODE));
305 assertEquals("RESPONSE_DESCRIPTION", MDC.get(LoggingConstants.MDCKeys.RESPONSE_DESCRIPTION));
306 } catch (Exception e) {
307 fail("Exception invoking populateResponseContext: " + e.toString());
312 public void testCleanResponseContext() {
314 Method m = LoggingUtils.class.getDeclaredMethod("cleanResponseContext");
315 m.setAccessible(true);
316 MDC.put(LoggingConstants.MDCKeys.STATUS_CODE, "STATUS_CODE");
317 MDC.put(LoggingConstants.MDCKeys.RESPONSE_CODE, "RESPONSE_CODE");
318 MDC.put(LoggingConstants.MDCKeys.RESPONSE_DESCRIPTION, "RESPONSE_DESCRIPTION");
320 assertNull(MDC.get(LoggingConstants.MDCKeys.STATUS_CODE));
321 assertNull(MDC.get(LoggingConstants.MDCKeys.RESPONSE_CODE));
322 assertNull(MDC.get(LoggingConstants.MDCKeys.RESPONSE_DESCRIPTION));
323 } catch (Exception e) {
324 fail("Exception invoking cleanErrorContext: " + e.toString());
329 public void testPopulateErrorContext() {
331 Class<?>[] paramString = { String.class, String.class };
332 Method m = LoggingUtils.class.getDeclaredMethod("populateErrorContext", paramString);
333 m.setAccessible(true);
334 m.invoke(null, "ERROR_CODE", "ERROR_DESCRIPTION");
335 assertEquals("ERROR_CODE", MDC.get(LoggingConstants.MDCKeys.ERROR_CODE));
336 assertEquals("ERROR_DESCRIPTION", MDC.get(LoggingConstants.MDCKeys.ERROR_DESCRIPTION));
337 } catch (Exception e) {
338 fail("Exception invoking populateErrorContext: " + e.toString());
343 public void testCleanErrorContext() {
345 Method m = LoggingUtils.class.getDeclaredMethod("cleanErrorContext");
346 m.setAccessible(true);
347 MDC.put(LoggingConstants.MDCKeys.ERROR_CODE, "ERROR_CODE");
348 MDC.put(LoggingConstants.MDCKeys.ERROR_DESCRIPTION, "ERROR_DESCRIPTION");
350 assertNull(MDC.get(LoggingConstants.MDCKeys.ERROR_CODE));
351 assertNull(MDC.get(LoggingConstants.MDCKeys.ERROR_DESCRIPTION));
352 } catch (Exception e) {
353 fail("Exception invoking cleanErrorContext: " + e.toString());