From 9afa523e5147c971a0d8d0405361f3c3e8faa6ce Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Thu, 21 Jun 2018 16:23:19 -0400 Subject: IntegrityAuditor: remove sleep from junit tests Modified the code to use a CurrentTime object for its "time" operations (e.g., sleep(), currentTimeInMillis()). Modified junit tests to replace the CurrentTime object with TestTime objects so they don't actually do any sleeping. Reformat "commit" message. Remove TODO from junit test. Init testTime in junit setUp(). Add AuditorTime and test classes. Change "latch" to "semaphore" in comments. Change time units in junit test from SECONDS to MILLISECONDS. Add sleep() method to auditor test class. Reorder field qualifiers. Change utils scope to "compile" in pom. Change-Id: I8aa8b642b315156c00422192e4aa8e47b4503c2f Issue-ID: POLICY-908 Signed-off-by: Jim Hahn --- .../org/onap/policy/common/ia/AuditorTime.java | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 integrity-audit/src/main/java/org/onap/policy/common/ia/AuditorTime.java (limited to 'integrity-audit/src/main/java/org/onap/policy/common/ia/AuditorTime.java') diff --git a/integrity-audit/src/main/java/org/onap/policy/common/ia/AuditorTime.java b/integrity-audit/src/main/java/org/onap/policy/common/ia/AuditorTime.java new file mode 100644 index 00000000..9cff742c --- /dev/null +++ b/integrity-audit/src/main/java/org/onap/policy/common/ia/AuditorTime.java @@ -0,0 +1,56 @@ +/* + * ============LICENSE_START======================================================= + * Integrity Audit + * ================================================================================ + * 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.ia; + +import java.util.function.Supplier; +import org.onap.policy.common.utils.time.CurrentTime; + +/** + * "Current" time used by IntegrityMonitor classes. + */ +public class AuditorTime { + + /** + * Instance to be used. + */ + private static final CurrentTime currentTime = new CurrentTime(); + + /** + * Supplies the instance to be used for accessing the current time. This may be + * overridden by junit tests to provide a different time instance for each thread when + * multiple threads are run in parallel. + */ + private static Supplier supplier = () -> currentTime; + + /** + * + */ + private AuditorTime() { + super(); + } + + /** + * @return the CurrentTime singleton + */ + public static CurrentTime getInstance() { + return supplier.get(); + } +} -- cgit 1.2.3-korg