From 6a047319718f8fd22f1f7acca82bf90e171d7ec6 Mon Sep 17 00:00:00 2001 From: Dale Wijnand <344610+dwijnand@users.noreply.github.com> Date: Mon, 5 Nov 2018 09:55:40 +0000 Subject: [PATCH] Dilation cleanups (#25861) * Avoid calling asInstanceOf in dilated * Fix the rounding in dilated for Java * Delegate Java dilated to Scala dilated * Import scala.concurrent.duration.Duration --- .../scala/akka/actor/testkit/typed/TestKitSettings.scala | 7 ++++--- akka-testkit/src/main/scala/akka/testkit/package.scala | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/akka-actor-testkit-typed/src/main/scala/akka/actor/testkit/typed/TestKitSettings.scala b/akka-actor-testkit-typed/src/main/scala/akka/actor/testkit/typed/TestKitSettings.scala index 1cf94b4836..b50a49c8f5 100644 --- a/akka-actor-testkit-typed/src/main/scala/akka/actor/testkit/typed/TestKitSettings.scala +++ b/akka-actor-testkit-typed/src/main/scala/akka/actor/testkit/typed/TestKitSettings.scala @@ -6,7 +6,8 @@ package akka.actor.testkit.typed import com.typesafe.config.Config -import scala.concurrent.duration.FiniteDuration +import scala.concurrent.duration.{ Duration, FiniteDuration } +import akka.util.JavaDurationConverters._ import akka.util.Timeout import akka.actor.typed.ActorSystem @@ -67,11 +68,11 @@ final class TestKitSettings(val config: Config) { * Scala API: Scale the `duration` with the configured `TestTimeFactor` */ def dilated(duration: FiniteDuration): FiniteDuration = - (duration * TestTimeFactor).asInstanceOf[FiniteDuration] + Duration.fromNanos((duration.toNanos * TestTimeFactor + 0.5).toLong) /** * Java API: Scale the `duration` with the configured `TestTimeFactor` */ def dilated(duration: java.time.Duration): java.time.Duration = - java.time.Duration.ofMillis((duration.toMillis * TestTimeFactor).toLong) + dilated(duration.asScala).asJava } diff --git a/akka-testkit/src/main/scala/akka/testkit/package.scala b/akka-testkit/src/main/scala/akka/testkit/package.scala index a949349e93..e9a95ebffe 100644 --- a/akka-testkit/src/main/scala/akka/testkit/package.scala +++ b/akka-testkit/src/main/scala/akka/testkit/package.scala @@ -48,7 +48,7 @@ package object testkit { */ implicit class TestDuration(val duration: FiniteDuration) extends AnyVal { def dilated(implicit system: ActorSystem): FiniteDuration = - (duration * TestKitExtension(system).TestTimeFactor).asInstanceOf[FiniteDuration] + Duration.fromNanos((duration.toNanos * TestKitExtension(system).TestTimeFactor + 0.5).toLong) } }