TelNumValidatorTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 80
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

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

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testValidTelNum() 0 23 1
A testInvalidTelNum() 0 8 1
A testTelcoDetected() 0 14 1
A telNumValidProvider() 0 10 1
A telNumInvalidProvider() 0 11 1
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