1
|
|
|
<?php |
2
|
|
|
namespace Ajir\RabbitMqSqlBundle\Tests\DataValidator; |
3
|
|
|
|
4
|
|
|
use DateTime; |
5
|
|
|
use PHPUnit_Framework_TestCase; |
6
|
|
|
use Ajir\RabbitMqSqlBundle\DataValidator\DataValidator; |
7
|
|
|
|
8
|
|
|
/** |
9
|
|
|
* Class DataValidatorTest |
10
|
|
|
* |
11
|
|
|
* @author Florian Ajir <[email protected]> |
12
|
|
|
*/ |
13
|
|
|
class DataValidatorTest extends PHPUnit_Framework_TestCase |
14
|
|
|
{ |
15
|
|
|
|
16
|
|
|
/** |
17
|
|
|
* |
18
|
|
|
*/ |
19
|
|
|
public function testValidateCorrectDateTime() |
20
|
|
|
{ |
21
|
|
|
$Validator = new DataValidator(); |
22
|
|
|
$valid = $Validator->validateDate('2015-06-26T22:22:00+0200', DateTime::ISO8601); |
23
|
|
|
$this->assertTrue($valid); |
24
|
|
|
} |
25
|
|
|
|
26
|
|
|
/** |
27
|
|
|
* |
28
|
|
|
*/ |
29
|
|
|
public function testValidateWrongDateTime() |
30
|
|
|
{ |
31
|
|
|
$Validator = new DataValidator(); |
32
|
|
|
$valid = $Validator->validateDate('2015-06-26T22:22:00+02:00', DateTime::ISO8601); |
33
|
|
|
$this->assertFalse($valid); |
34
|
|
|
} |
35
|
|
|
|
36
|
|
|
/** |
37
|
|
|
* |
38
|
|
|
*/ |
39
|
|
|
public function testValidateCorrectDate() |
40
|
|
|
{ |
41
|
|
|
$Validator = new DataValidator(); |
42
|
|
|
$valid = $Validator->validateDate('2015-06-26', 'Y-m-d'); |
43
|
|
|
$this->assertTrue($valid); |
44
|
|
|
} |
45
|
|
|
|
46
|
|
|
/** |
47
|
|
|
* |
48
|
|
|
*/ |
49
|
|
|
public function testValidateWrongDate() |
50
|
|
|
{ |
51
|
|
|
$Validator = new DataValidator(); |
52
|
|
|
$valid = $Validator->validateDate('23/06/2015', 'Y-m-d'); |
53
|
|
|
$this->assertFalse($valid); |
54
|
|
|
} |
55
|
|
|
|
56
|
|
|
/** |
57
|
|
|
* |
58
|
|
|
*/ |
59
|
|
|
public function testValidateCorrectLength() |
60
|
|
|
{ |
61
|
|
|
$Validator = new DataValidator(); |
62
|
|
|
$valid = $Validator->validateLength('0123456789', 20); |
63
|
|
|
$this->assertTrue($valid); |
64
|
|
|
} |
65
|
|
|
|
66
|
|
|
/** |
67
|
|
|
* |
68
|
|
|
*/ |
69
|
|
|
public function testValidateWrongLength() |
70
|
|
|
{ |
71
|
|
|
$Validator = new DataValidator(); |
72
|
|
|
$valid = $Validator->validateLength('0123456789', 5); |
73
|
|
|
$this->assertFalse($valid); |
74
|
|
|
} |
75
|
|
|
|
76
|
|
|
/** |
77
|
|
|
* |
78
|
|
|
*/ |
79
|
|
|
public function testValidateInt() |
80
|
|
|
{ |
81
|
|
|
$Validator = new DataValidator(); |
82
|
|
|
$valid = $Validator->validateType(123456789, DataValidator::DATA_TYPE_INTEGER); |
83
|
|
|
$this->assertTrue($valid); |
84
|
|
|
$valid = $Validator->validateType('123456789', DataValidator::DATA_TYPE_INTEGER); |
85
|
|
|
$this->assertTrue($valid); |
86
|
|
|
$valid = $Validator->validateType('azerty', DataValidator::DATA_TYPE_INTEGER); |
87
|
|
|
$this->assertFalse($valid); |
88
|
|
|
$valid = $Validator->validateType('12345.6789', DataValidator::DATA_TYPE_INTEGER); |
89
|
|
|
$this->assertFalse($valid); |
90
|
|
|
} |
91
|
|
|
|
92
|
|
|
/** |
93
|
|
|
* |
94
|
|
|
*/ |
95
|
|
View Code Duplication |
public function testValidateFloat() |
|
|
|
|
96
|
|
|
{ |
97
|
|
|
$Validator = new DataValidator(); |
98
|
|
|
$valid = $Validator->validateType(123456789, DataValidator::DATA_TYPE_DECIMAL); |
99
|
|
|
$this->assertTrue($valid); |
100
|
|
|
$valid = $Validator->validateType('123456789', DataValidator::DATA_TYPE_DECIMAL); |
101
|
|
|
$this->assertTrue($valid); |
102
|
|
|
$valid = $Validator->validateType(123456.789, DataValidator::DATA_TYPE_DECIMAL); |
103
|
|
|
$this->assertTrue($valid); |
104
|
|
|
$valid = $Validator->validateType(1e7, DataValidator::DATA_TYPE_DECIMAL); |
105
|
|
|
$this->assertTrue($valid); |
106
|
|
|
$valid = $Validator->validateType('123456.789', DataValidator::DATA_TYPE_DECIMAL); |
107
|
|
|
$this->assertTrue($valid); |
108
|
|
|
$valid = $Validator->validateType('azerty', DataValidator::DATA_TYPE_DECIMAL); |
109
|
|
|
$this->assertFalse($valid); |
110
|
|
|
$valid = $Validator->validateType('12345,6789', DataValidator::DATA_TYPE_DECIMAL); |
111
|
|
|
$this->assertFalse($valid); |
112
|
|
|
} |
113
|
|
|
|
114
|
|
|
/** |
115
|
|
|
* |
116
|
|
|
*/ |
117
|
|
View Code Duplication |
public function testValidateString() |
|
|
|
|
118
|
|
|
{ |
119
|
|
|
$Validator = new DataValidator(); |
120
|
|
|
$valid = $Validator->validateType(123456789, DataValidator::DATA_TYPE_STRING); |
121
|
|
|
$this->assertFalse($valid); |
122
|
|
|
$valid = $Validator->validateType('123456789', DataValidator::DATA_TYPE_STRING); |
123
|
|
|
$this->assertTrue($valid); |
124
|
|
|
$valid = $Validator->validateType(123456.789, DataValidator::DATA_TYPE_STRING); |
125
|
|
|
$this->assertFalse($valid); |
126
|
|
|
$valid = $Validator->validateType(1e7, DataValidator::DATA_TYPE_STRING); |
127
|
|
|
$this->assertFalse($valid); |
128
|
|
|
$valid = $Validator->validateType('123456.789', DataValidator::DATA_TYPE_STRING); |
129
|
|
|
$this->assertTrue($valid); |
130
|
|
|
$valid = $Validator->validateType('azerty', DataValidator::DATA_TYPE_STRING); |
131
|
|
|
$this->assertTrue($valid); |
132
|
|
|
$valid = $Validator->validateType('12345,6789', DataValidator::DATA_TYPE_STRING); |
133
|
|
|
$this->assertTrue($valid); |
134
|
|
|
} |
135
|
|
|
|
136
|
|
|
/** |
137
|
|
|
* |
138
|
|
|
*/ |
139
|
|
|
public function testValidateNullValues() |
140
|
|
|
{ |
141
|
|
|
$Validator = new DataValidator(); |
142
|
|
|
$valid = $Validator->validateType(null, DataValidator::DATA_TYPE_STRING); |
143
|
|
|
$this->assertTrue($valid); |
144
|
|
|
$valid = $Validator->validateType(null, DataValidator::DATA_TYPE_DATE); |
145
|
|
|
$this->assertTrue($valid); |
146
|
|
|
$valid = $Validator->validateType(null, DataValidator::DATA_TYPE_DATETIME); |
147
|
|
|
$this->assertTrue($valid); |
148
|
|
|
$valid = $Validator->validateType(null, DataValidator::DATA_TYPE_DECIMAL); |
149
|
|
|
$this->assertTrue($valid); |
150
|
|
|
$valid = $Validator->validateType(null, DataValidator::DATA_TYPE_INTEGER); |
151
|
|
|
$this->assertTrue($valid); |
152
|
|
|
$valid = $Validator->validateType(null, null); |
153
|
|
|
$this->assertTrue($valid); |
154
|
|
|
} |
155
|
|
|
} |
156
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.