Completed
Pull Request — master (#1893)
by
unknown
03:25
created

FailProcessorTest::testFailField()   A

Complexity

Conditions 2
Paths 4

Size

Total Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 27
c 0
b 0
f 0
rs 9.488
cc 2
nc 4
nop 0
1
<?php
2
3
namespace Elastica\Test\Processor;
4
5
use Elastica\Bulk;
6
use Elastica\Document;
7
use Elastica\Processor\FailProcessor;
8
use Elastica\Processor\Json;
9
use Elastica\Test\BasePipeline as BasePipelineTest;
10
11
/**
12
 * @internal
13
 */
14
class FailProcessorTest extends BasePipelineTest
15
{
16
    /**
17
     * @group unit
18
     */
19
    public function testFail(): void
20
    {
21
        $processor = new FailProcessor('This is a custom fail message for processor');
22
23
        $expected = [
24
            'fail' => [
25
                'message' => 'This is a custom fail message for processor',
26
            ],
27
        ];
28
29
        $this->assertEquals($expected, $processor->toArray());
30
    }
31
32
    /**
33
     * @group functional
34
     */
35
    public function testFailField(): void
36
    {
37
        $fail = new FailProcessor('custom error fail message');
38
        $json = new Json('name');
39
40
        $pipeline = $this->_createPipeline('my_custom_pipeline', 'pipeline for Fail');
41
        $pipeline->addProcessor($json)->addProcessor($fail)->create();
42
43
        $index = $this->_createIndex();
44
45
        // Add document to normal index
46
        $doc1 = new Document(null, ['name' => '']);
47
48
        $bulk = new Bulk($index->getClient());
49
        $bulk->setIndex($index);
50
51
        $bulk->addDocument($doc1);
52
        $bulk->setRequestParam('pipeline', 'my_custom_pipeline');
53
54
        try {
55
            $bulk->send();
56
            $index->refresh();
57
            $this->fail('test should raise an exception!');
58
        } catch (\Exception $e) {
59
            $this->assertStringContainsString('custom error fail message', $e->getMessage());
60
        }
61
    }
62
}
63