Viewing file: FunctionMapTest.php (4.63 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace React\Promise;
class FunctionMapTest extends TestCase { protected function mapper() { return function ($val) { return $val * 2; }; }
protected function promiseMapper() { return function ($val) { return resolve($val * 2); }; }
/** @test */ public function shouldMapInputValuesArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([2, 4, 6]));
map( [1, 2, 3], $this->mapper() )->then($mock); }
/** @test */ public function shouldMapInputPromisesArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([2, 4, 6]));
map( [resolve(1), resolve(2), resolve(3)], $this->mapper() )->then($mock); }
/** @test */ public function shouldMapMixedInputArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([2, 4, 6]));
map( [1, resolve(2), 3], $this->mapper() )->then($mock); }
/** @test */ public function shouldMapInputWhenMapperReturnsAPromise() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([2, 4, 6]));
map( [1, 2, 3], $this->promiseMapper() )->then($mock); }
/** @test */ public function shouldAcceptAPromiseForAnArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([2, 4, 6]));
map( resolve([1, resolve(2), 3]), $this->mapper() )->then($mock); }
/** @test */ public function shouldResolveToEmptyArrayWhenInputPromiseDoesNotResolveToArray() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([]));
map( resolve(1), $this->mapper() )->then($mock); }
/** @test */ public function shouldPreserveTheOrderOfArrayWhenResolvingAsyncPromises() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo([2, 4, 6]));
$deferred = new Deferred();
map( [resolve(1), $deferred->promise(), resolve(3)], $this->mapper() )->then($mock);
$deferred->resolve(2); }
/** @test */ public function shouldRejectWhenInputContainsRejection() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo(2));
map( [resolve(1), reject(2), resolve(3)], $this->mapper() )->then($this->expectCallableNever(), $mock); }
/** @test */ public function shouldRejectWhenInputPromiseRejects() { $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo(null));
map( reject(), $this->mapper() )->then($this->expectCallableNever(), $mock); }
/** @test */ public function shouldCancelInputPromise() { $mock = $this ->getMockBuilder('React\Promise\CancellablePromiseInterface') ->getMock(); $mock ->expects($this->once()) ->method('cancel');
map( $mock, $this->mapper() )->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');
map( [$mock1, $mock2], $this->mapper() )->cancel(); } }
|