Completed
Push — master ( 4e5ef4...37558b )
by De Cramer
02:05
created

ImplodeTest::testImplode()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Oliverde8\Component\RuleEngine\Tests\Rules;
4
5
use Oliverde8\Component\RuleEngine\RuleApplier;
6
use Oliverde8\Component\RuleEngine\Rules\Implode;
7
use Psr\Log\NullLogger;
8
9
/**
10
 * Class ImplodeTest
11
 *
12
 * @author    de Cramer Oliver<[email protected]>
13
 * @copyright 2018 Smile
14
 * @package Oliverde8\Component\RuleEngine\Tests\Rules
15
 */
16
class ImplodeTest extends AbstractRule
17
{
18
    /**
19
     * Test simple array being imploded.
20
     */
21
    public function testImplode()
22
    {
23
        $this->assertRuleResults([], [], ['values' => ['1', '2'], 'with' => ','], '1,2');
24
    }
25
26
    /**
27
     * Test when array is contained in array.
28
     */
29
    public function testTwoLevelImplode()
30
    {
31
        $values = [['1', '2']];
32
        $ruleApplier = $this->getMockBuilder(RuleApplier::class)->disableOriginalConstructor()->getMock();
33
        $ruleApplier->method('apply')->willReturn($values);
34
        $this->rule->setApplier($ruleApplier);
35
36
        $this->assertRuleResults([], [], ['values' => $values, 'with' => ','], '1,2');
37
    }
38
39
    /**
40
     * Test imploding complex array.
41
     */
42
    public function testFourLevelImplode()
43
    {
44
        $values = [[[['1', '2'], ['3']], '4']];
45
        $ruleApplier = $this->getMockBuilder(RuleApplier::class)->disableOriginalConstructor()->getMock();
46
        $ruleApplier->method('apply')->willReturn($values);
47
        $this->rule->setApplier($ruleApplier);
48
49
        $this->assertRuleResults([], [], ['values' => $values, 'with' => ','], '1,2,3,4');
50
    }
51
52
    /**
53
     * @inheritdoc
54
     */
55
    function getRule()
56
    {
57
        return new Implode(new NullLogger());
58
    }
59
}