diff --git a/src/PollingTrait.php b/src/PollingTrait.php index 40922e23f..526b01255 100644 --- a/src/PollingTrait.php +++ b/src/PollingTrait.php @@ -68,7 +68,7 @@ private function poll(callable $pollCallable, array $options) if ($pollCallable()) { return true; } - $currentPollDelayMillis = min([ + $currentPollDelayMillis = (int) min([ $currentPollDelayMillis * $pollDelayMultiplier, $maxPollDelayMillis ]); diff --git a/tests/Tests/Unit/OperationResponseTest.php b/tests/Tests/Unit/OperationResponseTest.php index bdf331f77..b5ceef7c9 100644 --- a/tests/Tests/Unit/OperationResponseTest.php +++ b/tests/Tests/Unit/OperationResponseTest.php @@ -341,6 +341,18 @@ public function testNoDeleteOperation() $operationResponse->delete(); } + public function testPollingCastToInt() + { + $op = $this->createOperationResponse([], 3); + $op->pollUntilComplete([ + 'initialPollDelayMillis' => 3.0, + 'pollDelayMultiplier' => 1.5, + ]); + + $this->assertEquals($op->isDone(), true); + $this->assertEquals($op->getSleeps(), [3, 4, 6]); + } + private function createOperationResponse($options, $reloadCount) { $opName = 'operations/opname';