summaryrefslogtreecommitdiffstats
path: root/test/Plugin/NullValidatorTest.php
blob: c4114ad3fe20d16ffb20808df3aca9c8a431f422 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

namespace League\Csv\Test\Plugin;

use League\Csv\Exception\InvalidRowException;
use League\Csv\Plugin\ForbiddenNullValuesValidator;
use League\Csv\Test\AbstractTestCase;
use League\Csv\Writer;
use SplFileObject;
use SplTempFileObject;

/**
 * @group validators
 */
class NullValidatorTest extends AbstractTestCase
{
    private $csv;

    public function setUp()
    {
        $this->csv = Writer::createFromFileObject(new SplTempFileObject());
    }

    public function tearDown()
    {
        $csv = new SplFileObject(dirname(__DIR__).'/data/foo.csv', 'w');
        $csv->setCsvControl();
        $csv->fputcsv(['john', 'doe', 'john.doe@example.com'], ',', '"');
        $this->csv = null;
    }

    public function testInsertNullThrowsException()
    {
        $validator = new ForbiddenNullValuesValidator();
        $validator_name = 'null_as_exception';
        $expected = ['john', null, 'john.doe@example.com'];
        $this->csv->addValidator($validator, $validator_name);
        try {
            $this->csv->insertOne($expected);
        } catch (InvalidRowException $e) {
            $this->assertSame($validator_name, $e->getName());
            $this->assertSame($expected, $e->getData());
            $this->assertSame('row validation failed', $e->getMessage());
        }
    }
}