DataValidatorTest   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 143
Duplicated Lines 25.17 %

Coupling/Cohesion

Components 1
Dependencies 2
Metric Value
wmc 10
lcom 1
cbo 2
dl 36
loc 143
rs 10

10 Methods

Rating   Name   Duplication   Size   Complexity  
A testValidateCorrectDateTime() 0 6 1
A testValidateWrongDateTime() 0 6 1
A testValidateCorrectDate() 0 6 1
A testValidateWrongDate() 0 6 1
A testValidateCorrectLength() 0 6 1
A testValidateWrongLength() 0 6 1
A testValidateInt() 0 12 1
A testValidateFloat() 18 18 1
A testValidateString() 18 18 1
A testValidateNullValues() 0 16 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

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()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

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.

Loading history...
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()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

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.

Loading history...
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