Added some junit tests to increase coverage of ONAP-logger.
Many classes still need test cases.
Also fixed some sonar issues:
Returned interface instead of ConcurrentHashMap.
Used EnumMap instead of HashMap.
Used StringBuilder instead of StringBuffer.
Replaced literals with constants.
Replaced enum1.toString().equals(enum2.toString()) with enum1 == enum2
Updated license dates.
Updated another license date.
Change-Id: I777b6a913d7d03187a29dfeb817800b386ee23aa
Issue-ID: POLICY-582
Signed-off-by: Jim Hahn <jrh3@att.com>
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.common.logging.eelf;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
public class DroolsPDPMDCInfo implements MDCInfo {
* @return the instance of ConcurrentHashMap
*/
@Override
- public ConcurrentHashMap<String, String> getMDCInfo() {
+ public ConcurrentMap<String, String> getMDCInfo() {
return mdcMap;
}
}
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.common.logging.eelf;
-import java.util.HashMap;
+import java.util.EnumMap;
/**
*
public class ErrorCodeMap {
- protected static final HashMap<MessageCodes, ErrorCodeInfo> hm = new HashMap<>();
+ protected static final EnumMap<MessageCodes, ErrorCodeInfo> hm = new EnumMap<>(MessageCodes.class);
private static final String ERROR_PERMISSIONS = "POLICY-100E";
private static final String ERROR_PERMISSIONS_DESCRIPTION = "This is a Permissions Error. Please check the error message for detail information";
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.common.logging.eelf;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
/**
* EventTrackInfo contains a ConcurrentHashMap of EventData.
*/
public class EventTrackInfo {
- private ConcurrentHashMap<String, EventData> eventInfo = null;
+ private final ConcurrentMap<String, EventData> eventInfo;
public EventTrackInfo() {
/*
/**
* Returns a ConcurrentHashMap of EventData
*/
- public ConcurrentHashMap<String, EventData> getEventInfo() {
+ public ConcurrentMap<String, EventData> getEventInfo() {
return eventInfo;
}
}
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import java.util.ArrayList;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
/**
*
if (eventTrackInfo == null) {
return;
}
- ConcurrentHashMap<String, EventData> eventInfo = eventTrackInfo.getEventInfo();
+ ConcurrentMap<String, EventData> eventInfo = eventTrackInfo.getEventInfo();
if (eventInfo == null || eventInfo.isEmpty()) {
return;
}
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.common.logging.eelf;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
/**
*
* Returns MDC info.
* @return MDC info
*/
- ConcurrentHashMap<String, String> getMDCInfo();
+ ConcurrentMap<String, String> getMDCInfo();
}
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.common.logging.eelf;
-import org.slf4j.MDC;
-
import static org.onap.policy.common.logging.eelf.Configuration.*;
import org.onap.policy.common.logging.flexlogger.LoggerType;
-import org.onap.policy.common.logging.eelf.PolicyLogger;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFLogger.Level;
import com.att.eelf.configuration.EELFManager;
import java.util.Timer;
import java.util.TimerTask;
import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import org.slf4j.MDC;
/**
*
private static EELFLogger debugLogger = EELFManager.getInstance()
.getDebugLogger();
+
+ private static final String POLICY_LOGGER = "PolicyLogger";
private static EventTrackInfo eventTracker = new EventTrackInfo();
private static Level auditLevel = Level.INFO;
private static Level metricsLevel = Level.INFO;
private static Level errorLevel = Level.ERROR;
- private static String CLASS_NAME = "ClassName";
+ private static String classNameProp = "ClassName";
private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS+00:00";
private static final String COMPLETE_STATUS = "COMPLETE";
hostName = InetAddress.getLocalHost().getHostName();
hostAddress = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "PolicyLogger", "UnknownHostException");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER, "UnknownHostException");
}
}
}
}
public static String getClassname() {
- return CLASS_NAME;
+ return classNameProp;
}
public static synchronized void setClassname(String name) {
- CLASS_NAME = name;
+ classNameProp = name;
}
/**
MDC.put(MDC_SERVER_FQDN, hostName);
MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
} catch (Exception e) {
- errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, "PolicyLogger");
+ errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
}
Instant startTime = Instant.now();
Instant endTime = Instant.now();
MDC.put(MDC_KEY_REQUEST_ID, transId);
if(mdcInfo != null && mdcInfo.getMDCInfo() != null && !mdcInfo.getMDCInfo().isEmpty()){
- ConcurrentHashMap<String, String> mdcMap = mdcInfo.getMDCInfo();
+ ConcurrentMap<String, String> mdcMap = mdcInfo.getMDCInfo();
Iterator<String> keyIterator = mdcMap.keySet().iterator();
String key;
MDC.put(MDC_SERVER_FQDN, hostName);
MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
} catch (Exception e) {
- errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, "PolicyLogger");
+ errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
}
Instant startTime = Instant.now();
Instant endTime = Instant.now();
MDC.put(MDC_SERVER_FQDN, hostName);
MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
} catch (Exception e) {
- errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, "PolicyLogger");
+ errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
}
MDC.put(MDC_INSTANCE_UUID, "");
MDC.put(MDC_ALERT_SEVERITY, "");
* @param arguments
*/
public static void info(MessageCodes msg, String... arguments) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.info(msg, arguments);
}
* @param arguments
*/
public static void info(MessageCodes msg, String className, String... arguments) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
debugLogger.info(msg, arguments);
}
* @param arg0
*/
public static void info( String className, String arg0) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
debugLogger.info(MessageCodes.GENERAL_INFO, arg0);
}
* @param arg0
*/
public static void info(Object arg0) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.info(MessageCodes.GENERAL_INFO, String.valueOf(arg0));
}
*/
public static void info(MessageCodes msg, Throwable arg0,
String... arguments) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
String arguments2 = getNormalizedStackTrace(arg0, arguments);
debugLogger.info(msg, arguments2);
}
*/
public static void info(MessageCodes msg, String className, Throwable arg0,
String... arguments) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
String arguments2 = getNormalizedStackTrace(arg0, arguments);
debugLogger.info(msg, arguments2);
}
* @param className class name
*/
public static void warn( String className, String arg0) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
debugLogger.warn(MessageCodes.GENERAL_INFO, arg0);
}
* @param arg0
*/
public static void warn(Object arg0) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.warn(MessageCodes.GENERAL_WARNING, "" + arg0);
}
* @param arg0
*/
public static void warn(String arg0) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.warn(MessageCodes.GENERAL_WARNING, arg0);
}
* @param arguments
*/
public static void warn(MessageCodes msg, String... arguments) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.warn(msg, arguments);
}
* @param arguments
*/
public static void warn(MessageCodes msg, String className, String... arguments) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
debugLogger.warn(msg, arguments);
}
*/
public static void warn(MessageCodes msg, Throwable arg0,
String... arguments) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
String arguments2 = getNormalizedStackTrace(arg0, arguments);
debugLogger.warn(msg, arguments2);
}
*/
public static void warn(MessageCodes msg, String className, Throwable arg0,
String... arguments) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
String arguments2 = getNormalizedStackTrace(arg0, arguments);
debugLogger.warn(msg, arguments2);
}
* @param arg0 log message
*/
public static void error( String className, String arg0) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
if(ErrorCodeMap.hm.get(MessageCodes.GENERAL_ERROR) != null){
MDC.put(ERROR_CODE, ErrorCodeMap.hm.get(MessageCodes.GENERAL_ERROR).getErrorCode());
MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.hm.get(MessageCodes.GENERAL_ERROR).getErrorDesc());
* @param arg0
*/
public static void error(String arg0) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
if(ErrorCodeMap.hm.get(MessageCodes.GENERAL_ERROR) != null){
* @param arg0
*/
public static void error(Object arg0) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
if(ErrorCodeMap.hm.get(MessageCodes.GENERAL_ERROR) != null){
*/
public static void error(MessageCodes msg, Throwable arg0,
String... arguments) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
if(ErrorCodeMap.hm.get(msg) != null){
*/
public static void error(MessageCodes msg, String className, Throwable arg0,
String... arguments) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
if(ErrorCodeMap.hm.get(msg) != null){
* @param arguments
*/
public static void error(MessageCodes msg, String... arguments) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
if(ErrorCodeMap.hm.get(msg) != null){
* @param arguments
*/
public static void debug(MessageCodes msg, String... arguments) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.debug(msg, arguments);
}
* @param arg0
*/
public static void debug( String className, String arg0) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
debugLogger.debug(MessageCodes.GENERAL_INFO, arg0);
}
* @param arg0
*/
public static void debug(String arg0) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.debug(arg0);
}
*/
public static void debug(Object arg0) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.debug("" + arg0);
}
*/
public static void audit(String className, Object arg0) {
MDC.put(STATUS_CODE, COMPLETE_STATUS);
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
auditLogger.info("" + arg0);
}
*/
public static void audit(Object arg0) {
MDC.put(STATUS_CODE, COMPLETE_STATUS);
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
auditLogger.info("" + arg0);
}
*/
public static void debug(MessageCodes msg, Throwable arg0,
String... arguments) {
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
String arguments2 = getNormalizedStackTrace(arg0, arguments);
errorLogger.error(msg, arguments2);
}
*/
public static void debug(MessageCodes msg, String className, Throwable arg0,
String... arguments) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
String arguments2 = getNormalizedStackTrace(arg0, arguments);
errorLogger.error(msg, arguments2);
}
* @param arg0
*/
public static void trace( String className, String arg0) {
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
errorLogger.info(MessageCodes.GENERAL_INFO, arg0);
}
*/
public static void trace(Object arg0){
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
debugLogger.trace(""+arg0);
}
/**
seTimeStamps();
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
String serviceName = MDC.get(MDC_SERVICE_NAME);
MDC.put(MDC_KEY_REQUEST_ID, eventId);
metricsLogger.info(MessageCodes.RULE_AUDIT_END_INFO,
*/
public static void metrics(String className, Object arg0) {
seTimeStamps();
- MDC.put(CLASS_NAME, className);
+ MDC.put(classNameProp, className);
String serviceName = MDC.get(MDC_SERVICE_NAME);
metricsLogger.info(MessageCodes.RULE_METRICS_INFO,
serviceName, ""+arg0);
*/
public static void metrics(Object arg0) {
seTimeStamps();
- MDC.put(CLASS_NAME, "");
+ MDC.put(classNameProp, "");
String serviceName = MDC.get(MDC_SERVICE_NAME);
metricsLogger.info(MessageCodes.RULE_METRICS_INFO,
serviceName, ""+arg0);
t.printStackTrace(pw);
String newStValue = sw.toString().replace ('|', '!').replace ("\n", " - ");
int curSize = arguments == null ? 0 : arguments.length;
- StringBuffer newArgument = new StringBuffer();
+ StringBuilder newArgument = new StringBuilder();
for(int i=0; i<curSize; i++) {
newArgument.append(arguments[i]);
newArgument.append(":");
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @return boolean
*/
@Override
- public boolean isAuditEnabled(){
- if(PolicyLogger.getAuditLevel() != null && PolicyLogger.getAuditLevel().toString().equals(Level.OFF.toString())){
- return false;
- }else {
- return true;
- }
+ public boolean isAuditEnabled(){
+ return(PolicyLogger.getAuditLevel() != Level.OFF);
}
/**
* @return boolean
*/
@Override
- public boolean isMetricsEnabled(){
- if(PolicyLogger.getMetricsLevel() != null && PolicyLogger.getMetricsLevel().toString().equals(Level.OFF.toString())){
- return false;
- }else {
- return true;
- }
+ public boolean isMetricsEnabled(){
+ return(PolicyLogger.getMetricsLevel() != Level.OFF);
}
/**
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
@Override
public boolean isAuditEnabled(){
- return !(PolicyLogger.getAuditLevel() != null && PolicyLogger.getAuditLevel().toString().equals(Level.OFF.toString()));
+ return(PolicyLogger.getAuditLevel() != Level.OFF);
}
/**
* @return boolean
*/
@Override
- public boolean isMetricsEnabled(){
- return !(PolicyLogger.getMetricsLevel() != null && PolicyLogger.getMetricsLevel().toString().equals(Level.OFF.toString()));
+ public boolean isMetricsEnabled(){
+ return(PolicyLogger.getMetricsLevel() != Level.OFF);
}
/**
-/*-
+/*
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
private void initLevel(){
- if(PolicyLogger.getDebugLevel() != null && PolicyLogger.getDebugLevel().toString().equals(Level.DEBUG.toString())){
+ if(PolicyLogger.getDebugLevel() == Level.DEBUG){
isDebugEnabled = true;
isInfoEnabled = true;
isWarnEnabled = true;
isDebugEnabled = false;
}
- if(PolicyLogger.getDebugLevel() != null && PolicyLogger.getDebugLevel().toString().equals(Level.INFO.toString())){
+ if(PolicyLogger.getDebugLevel() == Level.INFO){
isInfoEnabled = true;
isWarnEnabled = true;
isDebugEnabled = false;
}
- if(PolicyLogger.getDebugLevel() != null && PolicyLogger.getDebugLevel().toString().equals(Level.OFF.toString())){
+ if(PolicyLogger.getDebugLevel() == Level.OFF){
isInfoEnabled = false;
isWarnEnabled = false;
isDebugEnabled = false;
}
- if(PolicyLogger.getErrorLevel() != null && PolicyLogger.getErrorLevel().toString().equals(Level.OFF.toString())){
+ if(PolicyLogger.getErrorLevel() == Level.OFF){
isErrorEnabled = false;
}
- if(PolicyLogger.getAuditLevel() != null && PolicyLogger.getAuditLevel().toString().equals(Level.OFF.toString())){
+ if(PolicyLogger.getAuditLevel() == Level.OFF){
isAuditEnabled = false;
}
- if(PolicyLogger.getMetricsLevel() != null && PolicyLogger.getMetricsLevel().toString().equals(Level.OFF.toString())){
+ if(PolicyLogger.getMetricsLevel() == Level.OFF){
isMetricsEnabled = false;
}
}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.common.logging.eelf;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ *
+ */
+public class DroolsPDPMDCInfoTest {
+
+ /**
+ * Test method for {@link org.onap.policy.common.logging.eelf.DroolsPDPMDCInfo#getMDCInfo()}.
+ */
+ @Test
+ public void testGetMDCInfo() {
+ DroolsPDPMDCInfo di = new DroolsPDPMDCInfo();
+
+ assertNotNull(di.getMDCInfo());
+ assertEquals("Policy.droolsPdp", di.getMDCInfo().get(Configuration.MDC_SERVICE_NAME));
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.common.logging.eelf;
+
+import static org.junit.Assert.*;
+
+import java.time.Instant;
+
+import org.junit.Test;
+
+/**
+ *
+ */
+public class EventDataTest {
+ private static final Instant istart = Instant.ofEpochMilli(100000l);
+ private static final Instant iend = Instant.ofEpochMilli(200000l);
+
+ /**
+ * Test method for {@link EventData#EventData()}.
+ */
+ @Test
+ public void testEventData() {
+ EventData d = new EventData();
+
+ assertNull(d.getEndTime());
+ assertNull(d.getRequestID());
+ assertNull(d.getStartTime());
+ }
+
+ /**
+ * Test method for {@link EventData#EventData(String, Instant, Instant)}.
+ */
+ @Test
+ public void testEventDataStringInstantInstant() {
+ EventData d = new EventData("myreq", istart, iend);
+
+ assertEquals("myreq", d.getRequestID());
+ assertEquals(istart, d.getStartTime());
+ assertEquals(iend, d.getEndTime());
+ }
+
+ /**
+ * Test method for {@link EventData#getRequestID()} and
+ * {@link EventData#setRequestID(String)}.
+ */
+ @Test
+ public void testGetSetRequestID() {
+ EventData d = new EventData();
+ assertNull(d.getRequestID());
+
+ d.setRequestID("abc");
+ assertEquals("abc", d.getRequestID());
+
+ d.setRequestID("def");
+ assertEquals("def", d.getRequestID());
+ }
+
+ /**
+ * Test method for {@link EventData#getStartTime()} and
+ * {@link EventData#setStartTime(Instant)}.
+ */
+ @Test
+ public void testGetSetStartTime() {
+ EventData d = new EventData();
+ assertNull(d.getStartTime());
+
+ d.setStartTime(istart);
+ assertEquals(istart, d.getStartTime());
+
+ d.setStartTime(iend);
+ assertEquals(iend, d.getStartTime());
+
+ // setting end-time should not effect start-time
+ d.setEndTime(istart);
+ assertEquals(iend, d.getStartTime());
+ }
+
+ /**
+ * Test method for {@link EventData#getEndTime()} and
+ * {@link EventData#setEndTime(Instant)}.
+ */
+ @Test
+ public void testGetSetEndTime() {
+ EventData d = new EventData();
+ assertNull(d.getEndTime());
+
+ d.setEndTime(iend);
+ assertEquals(iend, d.getEndTime());
+
+ d.setEndTime(istart);
+ assertEquals(istart, d.getEndTime());
+
+ // setting start-time should not effect end-time
+ d.setStartTime(iend);
+ assertEquals(istart, d.getEndTime());
+ }
+
+ /**
+ * Test method for {@link EventData#toString()}.
+ */
+ @Test
+ public void testToString() {
+ EventData d = new EventData("myreq", istart, iend);
+ assertEquals("myreq Starting Time : 1970-01-01T00:01:40Z Ending Time : 1970-01-01T00:03:20Z", d.toString());
+ }
+
+ /**
+ * Test method for {@link EventData#hashCode()}.
+ */
+ @Test
+ public void testHashCode() {
+ int hc1 = new EventData("abc", istart, iend).hashCode();
+
+ assertNotEquals(hc1, new EventData("abd", istart, iend).hashCode());
+ assertEquals(hc1, new EventData("abc", iend, istart).hashCode());
+ }
+
+ /**
+ * Test method for {@link EventData#equals(Object)}.
+ */
+ @Test
+ public void testEqualsObject() {
+ EventData d1 = new EventData("abc", istart, iend);
+ EventData d2 = new EventData("abd", istart, iend);
+ EventData d3 = new EventData("abc", iend, istart);
+
+ // same object
+ assertTrue(d1.equals(d1));
+
+ // compare with null
+ assertFalse(d1.equals(null));
+
+ // compare with request id
+ assertTrue(d1.equals("abc"));
+ assertFalse(d1.equals("abd"));
+
+ // compare with int - different class type
+ assertFalse(d1.equals(10));
+
+ // "this" has null request id
+ assertFalse(new EventData().equals(d1));
+
+ // both null
+ assertTrue(new EventData().equals(new EventData()));
+
+ // this request id is not null, other is null
+ assertFalse(d1.equals(new EventData()));
+
+ // neither null, same
+ assertTrue(d1.equals(d3));
+
+ // neither null, diff
+ assertFalse(d1.equals(d2));
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.common.logging.eelf;
+
+import static org.junit.Assert.*;
+
+import java.time.Instant;
+import java.util.concurrent.ConcurrentMap;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class EventTrackInfoHandlerTest {
+
+ private static final Instant inow = Instant.now();
+ private static final Instant iexpired = Instant.ofEpochMilli(10000l);
+
+ private static final EventData data1 = new EventData("abc", inow, inow);
+ private static final EventData data2 = new EventData("def", inow, inow);
+
+ private static EventTrackInfo tracker;
+ private static ConcurrentMap<String, EventData> info;
+
+ private EventTrackInfoHandler hdlr;
+
+ @BeforeClass
+ public static void setUpBeforeClass() {
+ tracker = PolicyLogger.getEventTracker();
+ info = tracker.getEventInfo();
+ }
+
+ @Before
+ public void setUp() {
+ info.clear();
+
+ hdlr = new EventTrackInfoHandler();
+ }
+
+ @Test
+ public void testNoEvents() {
+ hdlr.run();
+ assertEquals(0, info.size());
+ }
+
+ @Test
+ public void testNothingExpired() {
+ tracker.storeEventData(data1);
+ tracker.storeEventData(data2);
+
+ hdlr.run();
+ assertEquals(2, info.size());
+ }
+
+ @Test
+ public void testSomeExpired() {
+ // not expired
+ tracker.storeEventData(data1);
+ tracker.storeEventData(data2);
+
+ // start time is expired
+ tracker.storeEventData(new EventData("expiredA", iexpired, inow));
+ tracker.storeEventData(new EventData("expiredB", iexpired, inow));
+
+ // end time is expired, but that has no impact - these should be retained
+ EventData oka = new EventData("okA", inow, iexpired);
+ EventData okb = new EventData("okB", inow, iexpired);
+
+ tracker.storeEventData(oka);
+ tracker.storeEventData(okb);
+
+ hdlr.run();
+ assertEquals(4, info.size());
+
+ assertEquals(data1, info.get("abc"));
+ assertEquals(data2, info.get("def"));
+ assertEquals(oka, info.get("okA"));
+ assertEquals(okb, info.get("okB"));
+ }
+
+ @Test
+ public void testMultipleRuns() {
+
+ hdlr.run();
+ assertEquals(0, info.size());
+
+ // not expired
+ tracker.storeEventData(data1);
+ tracker.storeEventData(data2);
+
+ hdlr.run();
+ assertEquals(2, info.size());
+
+ // start time is expired
+ tracker.storeEventData(new EventData("expiredA", iexpired, inow));
+ tracker.storeEventData(new EventData("expiredB", iexpired, inow));
+
+ // end time is expired, but that has no impact - these should be retained
+ tracker.storeEventData(new EventData("okA", inow, iexpired));
+ tracker.storeEventData(new EventData("okB", inow, iexpired));
+
+ hdlr.run();
+ assertEquals(4, info.size());
+
+ hdlr.run();
+ assertEquals(4, info.size());
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.common.logging.eelf;
+
+import static org.junit.Assert.*;
+
+import java.time.Instant;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class EventTrackInfoTest {
+
+ private static final Instant istart = Instant.ofEpochMilli(100000l);
+ private static final Instant iend = Instant.ofEpochMilli(200000l);
+
+ private static final EventData data1 = new EventData("abc", istart, iend);
+ private static final EventData data2 = new EventData("def", iend, istart);
+
+ private EventTrackInfo info;
+
+ @Before
+ public void setUp() {
+ info = new EventTrackInfo();
+
+ }
+
+ /**
+ * Test method for {@link EventTrackInfo#EventTrackInfo()}.
+ */
+ @Test
+ public void testEventTrackInfo() {
+ assertNotNull(info.getEventInfo());
+ }
+
+ /**
+ * Test method for {@link EventTrackInfo#getEventDataByRequestID(String)}.
+ */
+ @Test
+ public void testGetEventDataByRequestID() {
+ info.storeEventData(data1);
+ info.storeEventData(data2);
+
+ assertTrue(data1 == info.getEventDataByRequestID("abc"));
+ assertTrue(data2 == info.getEventDataByRequestID("def"));
+ assertNull(info.getEventDataByRequestID("hello"));
+ }
+
+ /**
+ * Test method for {@link EventTrackInfo#storeEventData(EventData)}.
+ */
+ @Test
+ public void testStoreEventData() {
+ // should ignore null
+ info.storeEventData(null);
+ assertTrue(info.getEventInfo().isEmpty());
+
+ // should ignore if request id is null or empty
+ info.storeEventData(new EventData());
+ info.storeEventData(new EventData("", istart, iend));
+ assertTrue(info.getEventInfo().isEmpty());
+
+ info.storeEventData(data1);
+ info.storeEventData(data2);
+ assertEquals(2, info.getEventInfo().size());
+
+ // look-up by request id
+ assertTrue(data1 == info.getEventDataByRequestID("abc"));
+ assertTrue(data2 == info.getEventDataByRequestID("def"));
+
+ // doesn't replace existing value
+ info.storeEventData(new EventData("abc", iend, istart));
+ assertEquals(2, info.getEventInfo().size());
+ assertTrue(data1 == info.getEventDataByRequestID("abc"));
+ assertTrue(data2 == info.getEventDataByRequestID("def"));
+ }
+
+ /**
+ * Test method for {@link EventTrackInfo#remove(String)}.
+ */
+ @Test
+ public void testRemove() {
+ info.storeEventData(data1);
+ info.storeEventData(data2);
+
+ info.remove("abc");
+
+ // ensure only that item was removed
+ assertEquals(1, info.getEventInfo().size());
+
+ // look-up by request id
+ assertNull(info.getEventDataByRequestID("abc"));
+ assertTrue(data2 == info.getEventDataByRequestID("def"));
+ }
+
+ /**
+ * Test method for {@link EventTrackInfo#getEventInfo()}.
+ */
+ @Test
+ public void testGetEventInfo() {
+ info.storeEventData(data1);
+ info.storeEventData(data2);
+
+ assertEquals(2, info.getEventInfo().size());
+ assertTrue(data1 == info.getEventInfo().get("abc"));
+ assertTrue(data2 == info.getEventInfo().get("def"));
+ }
+
+}