init
This commit is contained in:
198
vendor/react/promise/tests/FunctionMapTest.php
vendored
Executable file
198
vendor/react/promise/tests/FunctionMapTest.php
vendored
Executable file
@@ -0,0 +1,198 @@
|
||||
<?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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user