FieldTest::test_construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace PluginSimpleValidate\Tests\unit;
4
5
use PluginSimpleValidate\Field;
6
7
class FieldTest extends Base
8
{
9
    public function test_construct()
10
    {
11
        $field = new Field('name', 'value');
12
        $this->assertEquals('name', $field->getName());
13
        $this->assertEquals('value', $field->getValue());
14
    }
15
16
    public function test_is_required()
17
    {
18
        $field = (new Field('username', ''))->required();
19
        $this->assertFalse($field->isValid($this->language));
20
        $this->assertEquals(['field is required'], $field->getErrors());
21
22
        $field->setValue(false);
23
        $this->assertTrue($field->isValid($this->language));
24
25
        $field->setValue(0);
26
        $this->assertTrue($field->isValid($this->language));
27
28
        $field->setValue(null);
29
        $this->assertTrue($field->isValid($this->language));
30
    }
31
32
    public function test_is_not_empty()
33
    {
34
        $field = (new Field('username', false))->notEmpty();
35
        $this->assertFalse($field->isValid($this->language));
36
        $this->assertEquals(['field can not be empty'], $field->getErrors());
37
38
        $field->setValue(0);
39
        $this->assertFalse($field->isValid($this->language));
40
        $this->assertEquals(['field can not be empty'], $field->getErrors());
41
42
        $field->setValue('');
43
        $this->assertFalse($field->isValid($this->language));
44
        $this->assertEquals(['field can not be empty'], $field->getErrors());
45
46
        $field->setValue(null);
47
        $this->assertFalse($field->isValid($this->language));
48
        $this->assertEquals(['field can not be empty'], $field->getErrors());
49
    }
50
51
    public function test_is_less_than()
52
    {
53
        $field = (new Field('score', 90.90))->lessThan(90.87);
54
        $this->assertFalse($field->isValid($this->language));
55
        $this->assertEquals(['field must be less than 90.87'], $field->getErrors());
56
    }
57
58
    public function test_equal()
59
    {
60
        $field = (new Field('confirm_password', 'newpassword'))->equal('oldpassword');
61
        $this->assertFalse($field->isValid($this->language));
62
        $this->assertEquals(['field must be equal with "oldpassword"'], $field->getErrors());
63
    }
64
65
    public function test_between()
66
    {
67
        $field = (new Field('grade_b', 86))->between(79, 86);
68
        $this->assertFalse($field->isValid($this->language));
69
        $this->assertEquals(['field must be greater than 79 or less than 86'], $field->getErrors());
70
    }
71
72
    public function test_field_multi_rules()
73
    {
74
        $field = (new Field('email', ''))->required()->validEmail();
75
        $this->assertFalse($field->isValid($this->language));
76
        $this->assertEquals(['field is required', 'field must be a valid email address'], $field->getErrors());
77
    }
78
79
    public function test_is_true()
80
    {
81
        $field = (new Field('value', 5 < 4))->isTrue('comparison error');
82
        $this->assertFalse($field->isValid($this->language));
83
        $this->assertEquals(['comparison error'], $field->getErrors());
84
    }
85
86
    public function test_isValidPhone()
87
    {
88
        $field = (new Field('phone_number', 'abcde'))->isValidPhone('ID');
89
        $this->assertFalse($field->isValid($this->language));
90
        $field->setValue('081397738684');
91
        $this->assertTrue($field->isValid($this->language));
92
    }
93
}
94