TelNumValidatorTest::telNumInvalidProvider()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
/**
3
 * @link https://github.com/yiiviet/yii2-validator
4
 * @copyright Copyright (c) 2018 Yii Viet
5
 * @license [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
6
 */
7
8
namespace yiiviet\tests\unit\validator;
9
10
use yii\base\DynamicModel;
11
12
/**
13
 * Lớp TelNumValidatorTest
14
 *
15
 * @author Vuong Minh <[email protected]>
16
 * @since 1.0
17
 */
18
class TelNumValidatorTest extends TestCase
19
{
20
21
    /**
22
     * @dataProvider telNumValidProvider
23
     */
24
    public function testValidTelNum($phone)
25
    {
26
        $model = DynamicModel::validateData(['tel' => $phone], [
27
            ['tel', 'telnumvn']
28
        ]);
29
30
        $this->assertFalse($model->hasErrors());
31
32
        $model = DynamicModel::validateData(['tel' => $phone], [
33
            ['tel', 'telnumvn', 'mobileFormat' => true]
34
        ]);
35
36
        $this->assertFalse($model->hasErrors());
37
        $this->assertNotEquals($phone, $model['tel']);
38
        $phone = $model['tel'];
39
40
        $model = DynamicModel::validateData(['tel' => $phone], [
41
            ['tel', 'telnumvn', 'mobileFormat' => true]
42
        ]);
43
44
        $this->assertFalse($model->hasErrors());
45
        $this->assertEquals($phone, $model['tel']);
46
    }
47
48
    /**
49
     * @dataProvider telNumInvalidProvider
50
     */
51
    public function testInvalidTelNum($phone)
52
    {
53
        $model = DynamicModel::validateData(['tel' => $phone], [
54
            ['tel', 'telnumvn']
55
        ]);
56
57
        $this->assertTrue($model->hasErrors());
58
    }
59
60
    public function testTelcoDetected()
61
    {
62
        $model = DynamicModel::validateData(['tel' => '0909113911'], [
63
            ['tel', 'telnumvn', 'onlyTelco' => ['landLine']]
64
        ]);
65
66
        $this->assertTrue($model->hasErrors());
67
68
        $model = DynamicModel::validateData(['tel' => '0909113911'], [
69
            ['tel', 'telnumvn', 'exceptTelco' => ['landLine']]
70
        ]);
71
72
        $this->assertFalse($model->hasErrors());
73
    }
74
75
    public function telNumValidProvider()
76
    {
77
        return [
78
            ['84982527982'],
79
            ['84973776072'],
80
            ['+84917749254'],
81
            ['84904770053'],
82
            ['+842838564399']
83
        ];
84
    }
85
86
    public function telNumInvalidProvider()
87
    {
88
        return [
89
            ['asdasdasdasd1231a'],
90
            ['!@#!@#1123123..123'],
91
            ['09091139111'],
92
            ['016485754635'],
93
            ['0603366854'],
94
            ['070336685a']
95
        ];
96
    }
97
}
98