mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-06 03:50:04 +02:00
114 lines
2.8 KiB
PHP
114 lines
2.8 KiB
PHP
<?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);
|
|
}
|
|
|
|
/** @test */
|
|
public function shouldPreserveTheOrderOfArrayWhenResolvingAsyncPromises()
|
|
{
|
|
$mock = $this->createCallableMock();
|
|
$mock
|
|
->expects($this->once())
|
|
->method('__invoke')
|
|
->with($this->identicalTo([1, 2, 3]));
|
|
|
|
$deferred = new Deferred();
|
|
|
|
all([resolve(1), $deferred->promise(), resolve(3)])
|
|
->then($mock);
|
|
|
|
$deferred->resolve(2);
|
|
}
|
|
}
|