Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ef1436b
Move size() test to separate file
Im0rtality Oct 10, 2015
e7b6b69
Move all() test to separate file
Im0rtality Oct 10, 2015
b9fc170
Move any() test to separate file
Im0rtality Oct 10, 2015
ba517d5
Move contains() test to separate file
Im0rtality Oct 10, 2015
d234a4f
Move find() test to separate file
Im0rtality Oct 10, 2015
35e4a8f
Move has() test to separate file
Im0rtality Oct 10, 2015
00a5fe8
Move max() test to separate file
Im0rtality Oct 10, 2015
55c8e19
Move min() test to separate file
Im0rtality Oct 10, 2015
2a3efe4
Move reduce() test to separate file
Im0rtality Oct 10, 2015
de2675e
Move reduceRight() test to separate file
Im0rtality Oct 10, 2015
8b610f2
Move toArray() test to separate file
Im0rtality Oct 10, 2015
922d7c1
Move value() test to separate file
Im0rtality Oct 10, 2015
789e394
Move map() test to separate file
Im0rtality Oct 10, 2015
d59b0bd
Move pick() test to separate file
Im0rtality Oct 10, 2015
e449038
Move filter() test to separate file
Im0rtality Oct 10, 2015
592c0ac
Move reject() test to separate file
Im0rtality Oct 10, 2015
32f873b
Move head() test to separate file
Im0rtality Oct 10, 2015
8d3040e
Move tail() test to separate file
Im0rtality Oct 10, 2015
cfebdbc
Move initial() test to separate file
Im0rtality Oct 10, 2015
1faf3a6
Move last() test to separate file
Im0rtality Oct 10, 2015
030ff62
Move without() test to separate file
Im0rtality Oct 10, 2015
56f4753
Move merge() test to separate file
Im0rtality Oct 10, 2015
85bb4d9
Move values() test to separate file
Im0rtality Oct 10, 2015
6a96813
Move keys() test to separate file
Im0rtality Oct 10, 2015
cea9372
Move zip() test to separate file
Im0rtality Oct 10, 2015
10cbf20
Move groupBy() test to separate file
Im0rtality Oct 10, 2015
98051e6
Move sortBy() test to separate file
Im0rtality Oct 10, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Accessor/FindAccessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class FindAccessor extends Accessor
*
* @param Collection $collection
* @param callable $iterator
* @return Collection
* @return bool
*/
public function __invoke($collection, $iterator)
{
Expand Down
3 changes: 3 additions & 0 deletions src/Accessor/ValueAccessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
use Underscore\Accessor;
use Underscore\Collection;

/**
* @deprecated Use toArray() instead. Will be removed in later releases
*/
class ValueAccessor extends Accessor
{
/**
Expand Down
1 change: 1 addition & 0 deletions src/Collection.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public function getIteratorReversed()

/**
* @return mixed
* @deprecated Use toArray() instead. Will be removed in later releases
*/
public function value()
{
Expand Down
40 changes: 40 additions & 0 deletions tests/Accessor/AllAccessorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php

namespace Underscore\Test\Accessor;

use Underscore\Accessor;
use Underscore\Collection;

class AllAccessorTest extends BaseAccessorTest
{
/**
* @inheritDoc
*/
protected function getInstance()
{
return new Accessor\AllAccessor();
}

/**
* @inheritDoc
*/
public function getTestInvokeData()
{
$func = function ($value) {
return 3 <= strlen($value);
};
$ret = [];

$ret[] = [
true,
[new Collection($this->getDummy1()), $func],
];

$ret[] = [
false,
[new Collection($this->getDummy2()), $func],
];

return $ret;
}
}
40 changes: 40 additions & 0 deletions tests/Accessor/AnyAccessorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php

namespace Underscore\Test\Accessor;

use Underscore\Accessor;
use Underscore\Collection;

class AnyAccessorTest extends BaseAccessorTest
{
/**
* @inheritDoc
*/
protected function getInstance()
{
return new Accessor\AnyAccessor();
}

/**
* @inheritDoc
*/
public function getTestInvokeData()
{
$func = function ($value) {
return is_bool($value);
};
$ret = [];

$ret[] = [
false,
[new Collection($this->getDummy1()), $func],
];

$ret[] = [
true,
[new Collection($this->getDummy2()), $func],
];

return $ret;
}
}
91 changes: 91 additions & 0 deletions tests/Accessor/BaseAccessorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<?php

namespace Underscore\Test\Accessor;

use Underscore\Accessor;

abstract class BaseAccessorTest extends \PHPUnit_Framework_TestCase
{
protected static function getDummy1()
{
$dummy = new \stdClass();
$dummy->name = 'dummy';
$dummy->foo = 'bar';
$dummy->baz = 'qux';

return $dummy;
}

/**
* @return object
*/
protected static function getDummy2()
{
$dummy = self::getDummy1();
$dummy->false = false;
$dummy->null = null;
$dummy->zero = 0;

return $dummy;
}

protected static function getDummy3()
{
$dummy = [
'Angela' => [
'position' => 'dean',
'sex' => 'female',
],
'Bob' => [
'position' => 'janitor',
'sex' => 'male',
],
'Mark' => [
'position' => 'teacher',
'sex' => 'male',
'tenured' => true,
],
'Wendy' => [
'position' => 'teacher',
'sex' => 'female',
'tenured' => 1,
],
];

return $dummy;
}


/**
* @return object
*/
protected static function getDummy4()
{
$dummy = self::getDummy2();
$dummy->false = false;
$dummy->null = null;
$dummy->zero = 0;
$dummy->one = 1;

return $dummy;
}
/**
* @return Accessor|callable
*/
abstract protected function getInstance();

/**
* @return mixed[]
*/
abstract protected function getTestInvokeData();

/**
* @param mixed $expected
* @param mixed $args
* @dataProvider getTestInvokeData
*/
public function testInvoke($expected, $args)
{
$this->assertSame($expected, call_user_func_array($this->getInstance(), $args));
}
}
37 changes: 37 additions & 0 deletions tests/Accessor/ContainsAccessorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Underscore\Test\Accessor;

use Underscore\Accessor;
use Underscore\Collection;

class ContainsAccessorTest extends BaseAccessorTest
{
/**
* @inheritDoc
*/
protected function getInstance()
{
return new Accessor\ContainsAccessor();
}

/**
* @inheritDoc
*/
public function getTestInvokeData()
{
$ret = [];

$ret[] = [
true,
[new Collection($this->getDummy1()), 'bar'],
];

$ret[] = [
false,
[new Collection($this->getDummy1()), 'baz'],
];

return $ret;
}
}
43 changes: 43 additions & 0 deletions tests/Accessor/FindAccessorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?php

namespace Underscore\Test\Accessor;

use Underscore\Accessor;
use Underscore\Collection;

class FindAccessorTest extends BaseAccessorTest
{
/**
* @inheritDoc
*/
protected function getInstance()
{
return new Accessor\FindAccessor();
}

/**
* @inheritDoc
*/
public function getTestInvokeData()
{
$func = function ($needle) {
return function ($value) use ($needle) {
return $value === $needle;
};
};

$ret = [];

$ret[] = [
false,
[new Collection($this->getDummy1()), $func('foo')],
];

$ret[] = [
true,
[new Collection($this->getDummy1()), $func('bar')],
];

return $ret;
}
}
37 changes: 37 additions & 0 deletions tests/Accessor/HasAccessorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Underscore\Test\Accessor;

use Underscore\Accessor;
use Underscore\Collection;

class HasAccessorTest extends BaseAccessorTest
{
/**
* @inheritDoc
*/
protected function getInstance()
{
return new Accessor\HasAccessor();
}

/**
* @inheritDoc
*/
public function getTestInvokeData()
{
$ret = [];

$ret[] = [
true,
[new Collection($this->getDummy1()), 'foo'],
];

$ret[] = [
false,
[new Collection($this->getDummy1()), 'bar'],
];

return $ret;
}
}
37 changes: 37 additions & 0 deletions tests/Accessor/MaxAccessorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Underscore\Test\Accessor;

use Underscore\Accessor;
use Underscore\Collection;

class MaxAccessorTest extends BaseAccessorTest
{
/**
* @inheritDoc
*/
protected function getInstance()
{
return new Accessor\MaxAccessor();
}

/**
* @inheritDoc
*/
public function getTestInvokeData()
{
$ret = [];

$ret[] = [
2,
[new Collection([0, 1, 2])],
];

$ret[] = [
0,
[new Collection([0, false, 'foo'])],
];

return $ret;
}
}
37 changes: 37 additions & 0 deletions tests/Accessor/MinAccessorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Underscore\Test\Accessor;

use Underscore\Accessor;
use Underscore\Collection;

class MinAccessorTest extends BaseAccessorTest
{
/**
* @inheritDoc
*/
protected function getInstance()
{
return new Accessor\MinAccessor();
}

/**
* @inheritDoc
*/
public function getTestInvokeData()
{
$ret = [];

$ret[] = [
0,
[new Collection([0, 1, 2])],
];

$ret[] = [
0,
[new Collection([0, false, 'foo'])],
];

return $ret;
}
}
Loading