Skip to content

Commit 080852e

Browse files
committed
Added Bool Expression test.
1 parent f076d33 commit 080852e

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?php
2+
/**
3+
* @author Anton Lytkin <a.lytkin@worksolutions.ru>
4+
*/
5+
6+
namespace WS\Utils\Collections\Functions\Expression;
7+
8+
use PHPUnit\Framework\TestCase;
9+
use WS\Utils\Collections\CollectionFactory;
10+
11+
class BoolExpressionTest extends TestCase
12+
{
13+
14+
public function cases()
15+
{
16+
return [
17+
[
18+
[1, 2, 3],
19+
BoolExpression::with(function ($element) {
20+
return $element !== 2;
21+
})
22+
->or(function ($element) {
23+
return $element !== 77;
24+
})
25+
->and(function ($element) {
26+
return in_array($element, [1, 3]);
27+
}),
28+
[1, 3],
29+
],
30+
];
31+
}
32+
33+
/**
34+
* @test
35+
* @dataProvider cases
36+
* @param array $sequence
37+
* @param BoolExpression $expression
38+
* @param array $expected
39+
*/
40+
public function filterByExpression(array $sequence, BoolExpression $expression, array $expected)
41+
{
42+
43+
$result = CollectionFactory::from($sequence)
44+
->stream()
45+
->filter($expression)
46+
->getCollection()
47+
->toArray();
48+
49+
self::assertEquals($expected, $result);
50+
}
51+
52+
}

0 commit comments

Comments
 (0)