File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed
tests/WS/Utils/Collections/Functions/Expression Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments