From b4e7fb0364672f73b613b3d04eba9535e97d7c65 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Fri, 15 Jun 2018 09:10:00 -0400 Subject: Add CurrentTime utilities Add some comments. Update license text. Change-Id: I4cee208378c44d9730274aee337feb95f9026add Issue-ID: POLICY-908 Signed-off-by: Jim Hahn --- .../onap/policy/common/utils/time/CurrentTime.java | 61 ++++++++++++++++++++++ .../policy/common/utils/time/CurrentTimeTest.java | 59 +++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 utils/src/main/java/org/onap/policy/common/utils/time/CurrentTime.java create mode 100644 utils/src/test/java/org/onap/policy/common/utils/time/CurrentTimeTest.java (limited to 'utils') diff --git a/utils/src/main/java/org/onap/policy/common/utils/time/CurrentTime.java b/utils/src/main/java/org/onap/policy/common/utils/time/CurrentTime.java new file mode 100644 index 00000000..cab469e5 --- /dev/null +++ b/utils/src/main/java/org/onap/policy/common/utils/time/CurrentTime.java @@ -0,0 +1,61 @@ +/* + * ============LICENSE_START======================================================= + * Common Utils + * ================================================================================ + * 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.utils.time; + +import java.util.Date; + +/** + * Methods to access the current time. Classes can use objects of this type to get current + * time information, while allowing the objects to be overridden by junit tests. + */ +public class CurrentTime { + + /** + * + */ + public CurrentTime() { + super(); + } + + /** + * @return the current time, in milliseconds + */ + public long getMillis() { + return System.currentTimeMillis(); + } + + /** + * @return the current Date + */ + public Date getDate() { + return new Date(); + } + + /** + * Sleeps for a period of time. + * + * @param sleepMs amount of time to sleep, in milliseconds + * @throws InterruptedException + */ + public void sleep(long sleepMs) throws InterruptedException { + Thread.sleep(sleepMs); + } +} diff --git a/utils/src/test/java/org/onap/policy/common/utils/time/CurrentTimeTest.java b/utils/src/test/java/org/onap/policy/common/utils/time/CurrentTimeTest.java new file mode 100644 index 00000000..694a3d21 --- /dev/null +++ b/utils/src/test/java/org/onap/policy/common/utils/time/CurrentTimeTest.java @@ -0,0 +1,59 @@ +/* + * ============LICENSE_START======================================================= + * Common Utils + * ================================================================================ + * 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.utils.time; + +import static org.junit.Assert.assertTrue; +import org.junit.Test; + +public class CurrentTimeTest { + + @Test + public void testGetMillis() { + long tcur = System.currentTimeMillis(); + long tval = new CurrentTime().getMillis(); + long tval2 = new CurrentTime().getMillis(); + long tend = System.currentTimeMillis(); + + assertTrue(tval >= tcur && tval <= tend); + assertTrue(tval2 >= tcur && tval2 <= tend); + } + + @Test + public void testGetDate() { + long tcur = System.currentTimeMillis(); + long tval = new CurrentTime().getDate().getTime(); + long tval2 = new CurrentTime().getDate().getTime(); + long tend = System.currentTimeMillis(); + + assertTrue(tval >= tcur && tval <= tend); + assertTrue(tval2 >= tcur && tval2 <= tend); + } + + @Test + public void testSleep() throws Exception { + long tcur = System.currentTimeMillis(); + new CurrentTime().sleep(10); + long tend = System.currentTimeMillis(); + + assertTrue(tend >= tcur + 10 - 1); + } + +} -- cgit 1.2.3-korg