You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.3 KiB
97 lines
2.3 KiB
<?php
|
|
|
|
namespace React\Promise;
|
|
|
|
class FunctionAllTest extends TestCase
|
|
{
|
|
/** @test */
|
|
public function shouldResolveEmptyInput()
|
|
{
|
|
$mock = $this->createCallableMock();
|
|
$mock
|
|
->expects($this->once())
|
|
->method('__invoke')
|
|
->with($this->identicalTo([]));
|
|
|
|
all([])
|
|
->then($mock);
|
|
}
|
|
|
|
/** @test */
|
|
public function shouldResolveValuesArray()
|
|
{
|
|
$mock = $this->createCallableMock();
|
|
$mock
|
|
->expects($this->once())
|
|
->method('__invoke')
|
|
->with($this->identicalTo([1, 2, 3]));
|
|
|
|
all([1, 2, 3])
|
|
->then($mock);
|
|
}
|
|
|
|
/** @test */
|
|
public function shouldResolvePromisesArray()
|
|
{
|
|
$mock = $this->createCallableMock();
|
|
$mock
|
|
->expects($this->once())
|
|
->method('__invoke')
|
|
->with($this->identicalTo([1, 2, 3]));
|
|
|
|
all([resolve(1), resolve(2), resolve(3)])
|
|
->then($mock);
|
|
}
|
|
|
|
/** @test */
|
|
public function shouldResolveSparseArrayInput()
|
|
{
|
|
$mock = $this->createCallableMock();
|
|
$mock
|
|
->expects($this->once())
|
|
->method('__invoke')
|
|
->with($this->identicalTo([null, 1, null, 1, 1]));
|
|
|
|
all([null, 1, null, 1, 1])
|
|
->then($mock);
|
|
}
|
|
|
|
/** @test */
|
|
public function shouldRejectIfAnyInputPromiseRejects()
|
|
{
|
|
$mock = $this->createCallableMock();
|
|
$mock
|
|
->expects($this->once())
|
|
->method('__invoke')
|
|
->with($this->identicalTo(2));
|
|
|
|
all([resolve(1), reject(2), resolve(3)])
|
|
->then($this->expectCallableNever(), $mock);
|
|
}
|
|
|
|
/** @test */
|
|
public function shouldAcceptAPromiseForAnArray()
|
|
{
|
|
$mock = $this->createCallableMock();
|
|
$mock
|
|
->expects($this->once())
|
|
->method('__invoke')
|
|
->with($this->identicalTo([1, 2, 3]));
|
|
|
|
all(resolve([1, 2, 3]))
|
|
->then($mock);
|
|
}
|
|
|
|
/** @test */
|
|
public function shouldResolveToEmptyArrayWhenInputPromiseDoesNotResolveToArray()
|
|
{
|
|
$mock = $this->createCallableMock();
|
|
$mock
|
|
->expects($this->once())
|
|
->method('__invoke')
|
|
->with($this->identicalTo([]));
|
|
|
|
all(resolve(1))
|
|
->then($mock);
|
|
}
|
|
}
|
|
|