Completed
Push — master ( 686084...a2bb6b )
by
unknown
9s
created

SynonymValidatorTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 80
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
dl 0
loc 80
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A invalidValuesProvider() 0 5 1
A testItDisallowsInvalidValues() 0 7 1
A testItAllowsValidValues() 0 7 1
A validValuesProvider() 0 16 1
A setUp() 0 6 1
1
<?php
2
3
namespace CWP\CWP\Tests\Extensions;
4
5
use CWP\Search\Extensions\SynonymValidator;
6
use SilverStripe\Dev\SapphireTest;
7
8
class SynonymValidatorTest extends SapphireTest
9
{
10
    /**
11
     * @var SynonymValidator
12
     */
13
    protected $validator;
14
15
    protected function setUp()
16
    {
17
        parent::setUp();
18
19
        $this->validator = new SynonymValidator([
20
            'Synonyms',
21
        ]);
22
    }
23
24
    /**
25
     * @dataProvider validValuesProvider
26
     */
27
    public function testItAllowsValidValues($value)
28
    {
29
        $this->validator->php([
30
            'Synonyms' => $value,
31
        ]);
32
33
        $this->assertEmpty($this->validator->getErrors());
34
    }
35
36
    /**
37
     * @return array
38
     */
39
    public function validValuesProvider()
40
    {
41
        return [
42
            ['foo'],
43
            ['foo,bar,baz'],
44
            ['foo, bar, baz'],
45
            [
46
                '
47
				foo
48
				bar
49
				baz
50
			'
51
            ],
52
            ['foo => bar, baz'],
53
            [
54
                '
55
				# this is a comment, it should be ignored!
56
57
				foo, bar, baz
58
				foo => bar, baz
59
60
				# ...as should this.
61
			'
62
            ],
63
        ];
64
    }
65
66
    /**
67
     * @dataProvider invalidValuesProvider
68
     *
69
     * @param string $value
70
     */
71
    public function testItDisallowsInvalidValues($value)
72
    {
73
        $this->validator->php([
74
            'Synonyms' => $value,
75
        ]);
76
77
        $this->assertNotEmpty($this->validator->getErrors());
78
    }
79
80
    /**
81
     * @return array
82
     */
83
    public function invalidValuesProvider()
84
    {
85
        return [
86
            ['foo, bar baz, qux'],
87
            ['foo => bar baz, qux'],
88
        ];
89
    }
90
}
91