Completed
Pull Request — master (#1893)
by
unknown
02:56
created

KvProcessorTest::testKv()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 14
rs 9.7998
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Elastica\Test\Processor;
4
5
use Elastica\Processor\KvProcessor;
6
use Elastica\Test\BasePipeline as BasePipelineTest;
7
8
/**
9
 * @internal
10
 */
11
class KvProcessorTest extends BasePipelineTest
12
{
13
    /**
14
     * @group unit
15
     */
16
    public function testKv(): void
17
    {
18
        $processor = new KvProcessor('message', ' ', '=');
19
20
        $expected = [
21
            'kv' => [
22
                'field' => 'message',
23
                'field_split' => ' ',
24
                'value_split' => '=',
25
            ],
26
        ];
27
28
        $this->assertEquals($expected, $processor->toArray());
29
    }
30
31
    /**
32
     * @group unit
33
     */
34
    public function testKvWithNonDefaultOptions(): void
35
    {
36
        $processor = new KvProcessor('message', ' ', '=');
37
        $processor->setTargetField('target_field');
38
        $processor->setIncludeKeys(['l1', 'l2']);
39
        $processor->setExcludeKeys(['l4', 'l5']);
40
        $processor->setIgnoreMissing(true);
41
42
        $expected = [
43
            'kv' => [
44
                'field' => 'message',
45
                'field_split' => ' ',
46
                'value_split' => '=',
47
                'target_field' => 'target_field',
48
                'include_keys' => ['l1', 'l2'],
49
                'exclude_keys' => ['l4', 'l5'],
50
                'ignore_missing' => true,
51
            ],
52
        ];
53
54
        $this->assertEquals($expected, $processor->toArray());
55
    }
56
57
    /**
58
     * @group functional
59
     */
60
    public function testKVIncludeExludeKeys(): void
61
    {
62
        $kv = new KvProcessor('field1', '&', '=');
63
        $kv->setExcludeKeys(['second']);
64
65
        $pipeline = $this->_createPipeline('my_custom_pipeline', 'pipeline for KV');
66
        $pipeline->addProcessor($kv);
67
68
        $result = $pipeline->create();
69
70
        $this->assertArrayHasKey('acknowledged', $result->getData());
71
        $this->assertTrue($result->getData()['acknowledged']);
72
73
        $pipelineGet = $pipeline->getPipeline('my_custom_pipeline');
74
        $result = $pipelineGet->getData();
75
76
        $this->assertSame('field1', $result['my_custom_pipeline']['processors'][0]['kv']['field']);
77
        $this->assertSame('&', $result['my_custom_pipeline']['processors'][0]['kv']['field_split']);
78
        $this->assertSame('=', $result['my_custom_pipeline']['processors'][0]['kv']['value_split']);
79
    }
80
}
81