Completed
Push — master ( a1a3e4...b323d1 )
by Evgenii
37:40
created

PhoneValidatorTest::testValidPhone5()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: floor12
5
 * Date: 07.01.2018
6
 * Time: 12:45
7
 */
8
9
namespace floor12\phone\tests;
10
11
use floor12\phone\PhoneValidator;
12
13
class PhoneValidatorTest extends \PHPUnit_Framework_TestCase
14
{
15
    /**
16
     * Wrong value type
17
     */
18
    public function testWrongType()
19
    {
20
        $validator = new PhoneValidator();
21
        $this->assertFalse($validator->validate([]));
22
    }
23
24
    /**
25
     * To short value
26
     */
27
    public function testTooShortPhone()
28
    {
29
        $model = new User();
30
        $model->phone = 123;
31
        $this->assertFalse($model->validate());
32
        $this->assertEquals("Телефонный номер должны быть длиною 11 или 12 цифр.", $model->errors['phone'][0]);
33
34
        $validator = new PhoneValidator();
35
        $this->assertFalse($validator->validate($model->phone));
36
    }
37
38
    /**
39
     * Too logn value
40
     */
41
    public function testTooLongPhone()
42
    {
43
        $model = new User();
44
        $model->phone = 121231312312313123;
45
        $this->assertFalse($model->validate());
46
        $this->assertEquals("Телефонный номер должны быть длиною 11 или 12 цифр.", $model->errors['phone'][0]);
47
48
        $validator = new PhoneValidator();
49
        $this->assertFalse($validator->validate($model->phone));
50
    }
51
52
    /**
53
     *  Value with letters
54
     */
55
    public function testPhoneWithLetters()
56
    {
57
        $model = new User();
58
        $model->phone = '7926849852dd';
59
        $this->assertFalse($model->validate());
60
        $this->assertEquals("Телефонный номер должен содержать только цифры.", $model->errors['phone'][0]);
61
62
        $validator = new PhoneValidator();
63
        $this->assertFalse($validator->validate($model->phone));
64
    }
65
66
67
    /**
68
     * Valid number with 11 digits
69
     */
70
    public function testValidPhone()
71
    {
72
        $model = new User();
73
        $model->phone = '79268465236';
74
        $this->assertTrue($model->validate());
75
76
        $validator = new PhoneValidator();
77
        $this->assertTrue($validator->validate($model->phone));
78
    }
79
80
    /**
81
     * Valid number with 11 digits
82
     */
83
    public function testValidPhone2()
84
    {
85
        $model = new User();
86
        $model->phone = '+7 (926) 846-52-36';
87
        $this->assertTrue($model->validate());
88
89
        $validator = new PhoneValidator();
90
        $this->assertTrue($validator->validate($model->phone));
91
    }
92
93
    /**
94
     * Valid number with 11 digits
95
     */
96
    public function testValidPhone3()
97
    {
98
        $model = new User();
99
        $model->phone = '7 926 846-52-36';
100
        $this->assertTrue($model->validate());
101
102
        $validator = new PhoneValidator();
103
        $this->assertTrue($validator->validate($model->phone));
104
    }
105
106
    /**
107
     * Valid number with 12 digits
108
     */
109
    public function testValidPhon4e()
110
    {
111
        $model = new User();
112
        $model->phone = '349268465236';
113
        $this->assertTrue($model->validate());
114
115
        $validator = new PhoneValidator();
116
        $this->assertTrue($validator->validate($model->phone));
117
    }
118
119
    /**
120
     * Valid number with 12 digits
121
     */
122
    public function testValidPhone5()
123
    {
124
        $model = new User();
125
        $model->phone = '+12 (926) 846-52-36';
126
        $this->assertTrue($model->validate());
127
128
        $validator = new PhoneValidator();
129
        $this->assertTrue($validator->validate($model->phone));
130
    }
131
132
    /**
133
     * Valid number with 12 digits
134
     */
135
    public function testValidPhone6()
136
    {
137
        $model = new User();
138
        $model->phone = '12 926 846-52-36';
139
        $this->assertTrue($model->validate());
140
141
        $validator = new PhoneValidator();
142
        $this->assertTrue($validator->validate($model->phone));
143
    }
144
145
}