Viewing file: FunctionSomeTest.php (6.53 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace React\Promise;
use React\Promise\Exception\LengthException;
class FunctionSomeTest extends TestCase { /** @test */ public function shouldRejectWithLengthExceptionWithEmptyInputArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with( $this->callback(function($exception){ return $exception instanceof LengthException && 'Input array must contain at least 1 item but contains only 0 items.' === $exception->getMessage(); }) );
some( [], 1 )->then($this->expectCallableNever(), $mock); }
/** @test */ public function shouldRejectWithLengthExceptionWithInputArrayContainingNotEnoughItems() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with( $this->callback(function($exception){ return $exception instanceof LengthException && 'Input array must contain at least 4 items but contains only 3 items.' === $exception->getMessage(); }) );
some( [1, 2, 3], 4 )->then($this->expectCallableNever(), $mock); }
/** @test */ public function shouldResolveToEmptyArrayWithNonArrayInput() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([]));
some( null, 1 )->then($mock); }
/** @test */ public function shouldResolveValuesArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([1, 2]));
some( [1, 2, 3], 2 )->then($mock); }
/** @test */ public function shouldResolvePromisesArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([1, 2]));
some( [resolve(1), resolve(2), resolve(3)], 2 )->then($mock); }
/** @test */ public function shouldResolveSparseArrayInput() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([null, 1]));
some( [null, 1, null, 2, 3], 2 )->then($mock); }
/** @test */ public function shouldRejectIfAnyInputPromiseRejectsBeforeDesiredNumberOfInputsAreResolved() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([1 => 2, 2 => 3]));
some( [resolve(1), reject(2), reject(3)], 2 )->then($this->expectCallableNever(), $mock); }
/** @test */ public function shouldAcceptAPromiseForAnArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([1, 2]));
some( resolve([1, 2, 3]), 2 )->then($mock); }
/** @test */ public function shouldResolveWithEmptyArrayIfHowManyIsLessThanOne() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([]));
some( [1], 0 )->then($mock); }
/** @test */ public function shouldResolveToEmptyArrayWhenInputPromiseDoesNotResolveToArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([]));
some( resolve(1), 1 )->then($mock); }
/** @test */ public function shouldRejectWhenInputPromiseRejects() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo(null));
some( reject(), 1 )->then($this->expectCallableNever(), $mock); }
/** @test */ public function shouldCancelInputPromise() { $mock = $this ->getMockBuilder('React\Promise\CancellablePromiseInterface') ->getMock(); $mock ->expects($this->once()) ->method('cancel');
some($mock, 1)->cancel(); }
/** @test */ public function shouldCancelInputArrayPromises() { $mock1 = $this ->getMockBuilder('React\Promise\CancellablePromiseInterface') ->getMock(); $mock1 ->expects($this->once()) ->method('cancel');
$mock2 = $this ->getMockBuilder('React\Promise\CancellablePromiseInterface') ->getMock(); $mock2 ->expects($this->once()) ->method('cancel');
some([$mock1, $mock2], 1)->cancel(); }
/** @test */ public function shouldNotCancelOtherPendingInputArrayPromisesIfEnoughPromisesFulfill() { $mock = $this->createCallableMock(); $mock ->expects($this->never()) ->method('__invoke');
$deferred = New Deferred($mock); $deferred->resolve();
$mock2 = $this ->getMockBuilder('React\Promise\CancellablePromiseInterface') ->getMock(); $mock2 ->expects($this->never()) ->method('cancel');
some([$deferred->promise(), $mock2], 1); }
/** @test */ public function shouldNotCancelOtherPendingInputArrayPromisesIfEnoughPromisesReject() { $mock = $this->createCallableMock(); $mock ->expects($this->never()) ->method('__invoke');
$deferred = New Deferred($mock); $deferred->reject();
$mock2 = $this ->getMockBuilder('React\Promise\CancellablePromiseInterface') ->getMock(); $mock2 ->expects($this->never()) ->method('cancel');
some([$deferred->promise(), $mock2], 2); } }
|