download all files

This commit is contained in:
Roman Pyrih
2025-06-24 14:14:35 +02:00
parent ebed09c00b
commit 4c71b5d9c2
72007 changed files with 10407727 additions and 40029 deletions

View File

@@ -0,0 +1,211 @@
<?php
namespace React\Promise;
class FunctionRaceTest extends TestCase
{
/** @test */
public function shouldResolveEmptyInput()
{
$mock = $this->createCallableMock();
$mock
->expects($this->once())
->method('__invoke')
->with($this->identicalTo(null));
race(
[]
)->then($mock);
}
/** @test */
public function shouldResolveValuesArray()
{
$mock = $this->createCallableMock();
$mock
->expects($this->once())
->method('__invoke')
->with($this->identicalTo(1));
race(
[1, 2, 3]
)->then($mock);
}
/** @test */
public function shouldResolvePromisesArray()
{
$mock = $this->createCallableMock();
$mock
->expects($this->once())
->method('__invoke')
->with($this->identicalTo(2));
$d1 = new Deferred();
$d2 = new Deferred();
$d3 = new Deferred();
race(
[$d1->promise(), $d2->promise(), $d3->promise()]
)->then($mock);
$d2->resolve(2);
$d1->resolve(1);
$d3->resolve(3);
}
/** @test */
public function shouldResolveSparseArrayInput()
{
$mock = $this->createCallableMock();
$mock
->expects($this->once())
->method('__invoke')
->with($this->identicalTo(null));
race(
[null, 1, null, 2, 3]
)->then($mock);
}
/** @test */
public function shouldRejectIfFirstSettledPromiseRejects()
{
$mock = $this->createCallableMock();
$mock
->expects($this->once())
->method('__invoke')
->with($this->identicalTo(2));
$d1 = new Deferred();
$d2 = new Deferred();
$d3 = new Deferred();
race(
[$d1->promise(), $d2->promise(), $d3->promise()]
)->then($this->expectCallableNever(), $mock);
$d2->reject(2);
$d1->resolve(1);
$d3->resolve(3);
}
/** @test */
public function shouldAcceptAPromiseForAnArray()
{
$mock = $this->createCallableMock();
$mock
->expects($this->once())
->method('__invoke')
->with($this->identicalTo(1));
race(
resolve([1, 2, 3])
)->then($mock);
}
/** @test */
public function shouldResolveToNullWhenInputPromiseDoesNotResolveToArray()
{
$mock = $this->createCallableMock();
$mock
->expects($this->once())
->method('__invoke')
->with($this->identicalTo(null));
race(
resolve(1)
)->then($mock);
}
/** @test */
public function shouldRejectWhenInputPromiseRejects()
{
$mock = $this->createCallableMock();
$mock
->expects($this->once())
->method('__invoke')
->with($this->identicalTo(null));
race(
reject()
)->then($this->expectCallableNever(), $mock);
}
/** @test */
public function shouldCancelInputPromise()
{
$mock = $this
->getMockBuilder('React\Promise\CancellablePromiseInterface')
->getMock();
$mock
->expects($this->once())
->method('cancel');
race($mock)->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');
race([$mock1, $mock2])->cancel();
}
/** @test */
public function shouldNotCancelOtherPendingInputArrayPromisesIfOnePromiseFulfills()
{
$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');
race([$deferred->promise(), $mock2])->cancel();
}
/** @test */
public function shouldNotCancelOtherPendingInputArrayPromisesIfOnePromiseRejects()
{
$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');
race([$deferred->promise(), $mock2])->cancel();
}
}