From 7f6b1b0add6878e996e559c15337f46339c98901 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Tue, 20 Feb 2018 13:41:59 -0500 Subject: Increase junit coverage in ONAP-logging 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 --- .../common/logging/eelf/DroolsPDPMDCInfoTest.java | 43 +++++ .../policy/common/logging/eelf/EventDataTest.java | 174 +++++++++++++++++++++ .../logging/eelf/EventTrackInfoHandlerTest.java | 130 +++++++++++++++ .../common/logging/eelf/EventTrackInfoTest.java | 130 +++++++++++++++ 4 files changed, 477 insertions(+) create mode 100644 common-logging/src/test/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfoTest.java create mode 100644 common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventDataTest.java create mode 100644 common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandlerTest.java create mode 100644 common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventTrackInfoTest.java (limited to 'common-logging/src/test/java/org') diff --git a/common-logging/src/test/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfoTest.java b/common-logging/src/test/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfoTest.java new file mode 100644 index 00000000..1be10dae --- /dev/null +++ b/common-logging/src/test/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfoTest.java @@ -0,0 +1,43 @@ +/* + * ============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)); + } + +} diff --git a/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventDataTest.java b/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventDataTest.java new file mode 100644 index 00000000..edd57ee1 --- /dev/null +++ b/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventDataTest.java @@ -0,0 +1,174 @@ +/* + * ============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)); + } + +} diff --git a/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandlerTest.java b/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandlerTest.java new file mode 100644 index 00000000..68fd52de --- /dev/null +++ b/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandlerTest.java @@ -0,0 +1,130 @@ +/* + * ============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 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()); + } + +} diff --git a/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventTrackInfoTest.java b/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventTrackInfoTest.java new file mode 100644 index 00000000..3690bc5c --- /dev/null +++ b/common-logging/src/test/java/org/onap/policy/common/logging/eelf/EventTrackInfoTest.java @@ -0,0 +1,130 @@ +/* + * ============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")); + } + +} -- cgit 1.2.3-korg