Commit inicial con archivos existentes
This commit is contained in:
85
vendor/react/partial/tests/BindTest.php
vendored
Executable file
85
vendor/react/partial/tests/BindTest.php
vendored
Executable file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace React\Partial;
|
||||
|
||||
class BindTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testBindWithNoArgs()
|
||||
{
|
||||
$add = $this->createAddFunction();
|
||||
$newAdd = bind($add);
|
||||
$this->assertSame(6, $newAdd(1, 5));
|
||||
}
|
||||
|
||||
public function testBindWithOneArg()
|
||||
{
|
||||
$add = $this->createAddFunction();
|
||||
$addOne = bind($add, 1);
|
||||
$this->assertSame(6, $addOne(5));
|
||||
}
|
||||
|
||||
public function testBindWithTwoArgs()
|
||||
{
|
||||
$add = $this->createAddFunction();
|
||||
$addOneAndFive = bind($add, 1, 5);
|
||||
$this->assertSame(6, $addOneAndFive());
|
||||
}
|
||||
|
||||
public function testBindWithPlaceholder()
|
||||
{
|
||||
$add = $this->createAddFunction();
|
||||
$addFun = bind($add, …(), 10);
|
||||
$this->assertSame(20, $addFun(10));
|
||||
$this->assertSame(30, $addFun(20));
|
||||
}
|
||||
|
||||
public function testBindWithMultiplePlaceholders()
|
||||
{
|
||||
$prod = $this->createProdFunction();
|
||||
$prodTwo = bind($prod, …(), 2, …());
|
||||
$this->assertSame(4, $prodTwo(1, 2));
|
||||
$this->assertSame(6, $prodTwo(1, 3));
|
||||
$this->assertSame(8, $prodTwo(2, 2));
|
||||
$this->assertSame(24, $prodTwo(3, 4));
|
||||
$this->assertSame(48, $prodTwo(3, 8));
|
||||
}
|
||||
|
||||
public function testPlaceholderParameterPosition()
|
||||
{
|
||||
$substr = bind('substr', …(), 0, …());
|
||||
$this->assertSame('foo', $substr('foo', 3));
|
||||
$this->assertSame('fo', $substr('foo', 2));
|
||||
$this->assertSame('f', $substr('foo', 1));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException InvalidArgumentException
|
||||
* @expectedExceptionMessage Cannot resolve parameter placeholder at position 0. Parameter stack is empty
|
||||
*/
|
||||
public function testStringConversion()
|
||||
{
|
||||
$add = $this->createAddFunction();
|
||||
$addTwo = bind($add, …(), 2);
|
||||
|
||||
$addTwo();
|
||||
}
|
||||
|
||||
public function testAliasForUnicodePlaceholderFunction()
|
||||
{
|
||||
$this->assertSame(…(), placeholder());
|
||||
}
|
||||
|
||||
private function createAddFunction()
|
||||
{
|
||||
return function ($a, $b) {
|
||||
return $a + $b;
|
||||
};
|
||||
}
|
||||
|
||||
private function createProdFunction()
|
||||
{
|
||||
return function ($a, $b, $c) {
|
||||
return $a * $b * $c;
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user