Total Complexity | 13 |
Total Lines | 243 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | <?php |
||
38 | trait VersionTestProvider |
||
39 | { |
||
40 | use ExporterPlugin; |
||
41 | use ConstructorMethodTester; |
||
42 | use IComparableTester; |
||
43 | use IComparerTester; |
||
44 | use IEquatableTester; |
||
45 | use ImplementsIStrictPropertiesContainer; |
||
46 | use HasReadOnlyProperties; |
||
47 | use HasUnaccesibleProperties; |
||
48 | |||
49 | public function unaccesiblePropertiesProvider() |
||
50 | { |
||
51 | $version = Version::parse(NML_VERSION); |
||
52 | |||
53 | return [ |
||
54 | '$major with case changed' => [$version, 'Major'], |
||
55 | '$minor with case changed' => [$version, 'Minor'], |
||
56 | '$build with case changed' => [$version, 'Build'], |
||
57 | '$revision with case changed' => [$version, 'Revision'], |
||
58 | ]; |
||
59 | } |
||
60 | |||
61 | /** |
||
62 | * Provides invalid arguments for constructor. |
||
63 | * |
||
64 | * @return array |
||
65 | */ |
||
66 | public function badConstructorArgumentsProvider() |
||
67 | { |
||
68 | return [ |
||
69 | 'Type: null (all)' => [null, null], |
||
70 | 'Only first argument' => [1, null], |
||
71 | 'Invalid $major and $minor type' => ['hello', 'world'], |
||
72 | 'Invalid $major type (string)' => ['hello', 1], |
||
73 | 'Invalid $minor type (string)' => [1, 'world'], |
||
74 | '$major value < 0' => [-1, 0], |
||
75 | '$minor value < 0' => [1, -3], |
||
76 | '$build value < 0' => [1, 0, -1, null], |
||
77 | '$revision value < 0' => [1, 0, 1, -1], |
||
78 | '$revision while $build is not' => [1, 0, null, -1], |
||
79 | ]; |
||
80 | } |
||
81 | |||
82 | /** |
||
83 | * Provides valid arguments for constructor. |
||
84 | * |
||
85 | * @return array |
||
86 | */ |
||
87 | public function goodConstructorArgumentsProvider() |
||
105 | ]; |
||
106 | } |
||
107 | |||
108 | |||
109 | public function objectInstanceProvider() |
||
110 | { |
||
111 | return [[new Version(0, 7, '0-beta')]]; |
||
112 | } |
||
113 | |||
114 | public function readOnlyPropertiesProvider() |
||
115 | { |
||
116 | $obj = new Version(0, 7, '0-beta'); |
||
117 | |||
118 | return [ |
||
119 | [$obj, 'major', 0], |
||
120 | [$obj, 'minor', 7], |
||
121 | [$obj, 'build', new VersionComponent(0, '-beta')], |
||
122 | [$obj, 'revision', new VersionComponent(null)], |
||
123 | ]; |
||
124 | } |
||
125 | |||
126 | public function IComparableCompareToMethodArgumentsProvider() |
||
|
|||
127 | { |
||
128 | $v = new Version(1, 0, 9); |
||
129 | $obj = new \stdClass(); |
||
130 | $obj->major = 1; |
||
131 | $obj->minor = 0; |
||
132 | $obj->build = 9; |
||
133 | $obj->revision = null; |
||
134 | |||
135 | |||
136 | $args = [ |
||
137 | 'Equals by reference' => [0, $v, $v], |
||
138 | 'Equals by value' => [0, new Version(1, 0, 1), Version::parse('1.0.1')], |
||
1 ignored issue
–
show
|
|||
139 | 'Major difference' => [-1, Version::parse('1.0.0'), Version::parse('2.0.0')], |
||
1 ignored issue
–
show
|
|||
140 | 'Minor difference' => [1, Version::parse('1.1.0'), Version::parse('1.0.0')], |
||
1 ignored issue
–
show
|
|||
141 | 'Build difference' => [1, Version::parse('1.0.1'), Version::parse('1.0.0')], |
||
1 ignored issue
–
show
|
|||
142 | 'Revision difference' => [-1, Version::parse('1.0.0.254'), Version::parse('1.0.0.389')], |
||
1 ignored issue
–
show
|
|||
143 | 'Version < object' => [null, $v, $obj], |
||
144 | 'Version > array parseable' => [1, Version::parse('1.1.0'), [0, 1, 999]], |
||
145 | 'Version < array parseable' => [-1, Version::parse('1.1.0'), [2, 0]], |
||
146 | 'Version > array not parseable' => [1, Version::parse('0.0.0'), ['invalid array']], |
||
147 | 'Version > string parseable' => [1, Version::parse('1.1.0'), '0.1.999'], |
||
148 | 'Version < string parseable' => [-1, Version::parse('1.1.0'), '2.0'], |
||
149 | 'Version > string not parseable' => [1, Version::parse('1.1.0'), 'invalid string'], |
||
150 | 'integer|Version' => [1, $v, 9976645645656], |
||
151 | ]; |
||
152 | |||
153 | return $args; |
||
154 | } |
||
155 | |||
156 | public function compareMethodArgumentsProvider() |
||
157 | { |
||
158 | $v = new Version(1, 0, 9); |
||
159 | $obj = new \stdClass(); |
||
160 | $obj->major = 1; |
||
161 | $obj->minor = 0; |
||
162 | $obj->build = 9; |
||
163 | $obj->revision = null; |
||
164 | |||
165 | $args = [ |
||
166 | 'stdClass|Version' => [null, $obj, $v], |
||
167 | 'string|Version' => [-1, '1.0.0.254', $v], |
||
168 | 'integer|Version' => [-1, 9976645645656, $v], |
||
169 | 'float|Version' => [-1, 1.342333, $v], |
||
170 | 'array|Version' => [-1, [0, 1, 999], Version::parse('1.1.0')], |
||
171 | ]; |
||
172 | |||
173 | return $args; |
||
174 | } |
||
175 | |||
176 | public function compareMethodArraysProvider() |
||
177 | { |
||
178 | return [ |
||
179 | 'Version[]' => [[ |
||
180 | new Version(1, 0, 1, 3), |
||
181 | new Version(1, 0, 11, 3), |
||
182 | new Version(1, 1, 1, 0), |
||
183 | new Version(1, 3, 1, 9), |
||
184 | Version::parse("2.3.2-3-g"), |
||
185 | Version::parse("2.3.2-3-g726356"), |
||
186 | Version::parse("2.3.2-4-g"), |
||
187 | Version::parse("2.3.4-3-g"), |
||
188 | Version::parse("2.3.4-3-gsh4hajk7"), |
||
189 | Version::parse("2.3.4-3-gsh4hbjk7"), |
||
190 | Version::parse("2.31.0-4-g"), |
||
191 | Version::parse("2.31.1-4-g"), |
||
192 | Version::parse("2.31.11-4-g"), |
||
193 | ]], |
||
194 | 'Version[] + integer[]' => [[ |
||
195 | 1, |
||
196 | new Version(1, 0, 1, 3), |
||
197 | new Version(1, 0, 11, 3), |
||
198 | new Version(1, 1, 1, 0), |
||
199 | ]], |
||
200 | 'Version[] + string[]' => [[ |
||
201 | '0.0', |
||
202 | new Version(0, 0, 9, 3), |
||
203 | '0.1.0', |
||
204 | ]], |
||
205 | 'Version[] + string[] (1 non parseable string)' => [[ |
||
206 | '0.1.0', |
||
207 | 'invalid string', |
||
208 | new Version(1, 0, 1, 3), |
||
209 | ]], |
||
210 | 'Version[] + array[]' => [[ |
||
211 | [], |
||
212 | [0, 1, 0], |
||
213 | new Version(1, 0, 1, 3), |
||
214 | ]], |
||
215 | ]; |
||
216 | } |
||
217 | |||
218 | public function IEquatableMethodArgumentsProvider() |
||
229 | ]; |
||
230 | } |
||
231 | |||
232 | protected $parseableStrings = [ |
||
233 | 'valid' => [ |
||
234 | '1.0', |
||
235 | '0.2', |
||
236 | '2.3.2-3-g726351', |
||
237 | '2.3.2.3-2-g726352', |
||
238 | '3.0.1', |
||
239 | '4.0.2.0', |
||
240 | '5.0.0.3-beta', |
||
241 | '6.0.0-alpha', |
||
242 | ], |
||
243 | 'invalid' => [ |
||
244 | '0.0', |
||
245 | '1.0..1', |
||
246 | '2.0.0-alpha.0', |
||
247 | '2.3.2-3-g726353.3', |
||
248 | '2.3.2-3-g726356.1-2-gyt4f4', |
||
249 | '3.0.1-alpha.1', |
||
250 | '4.0.0-alpha.0-beta', |
||
251 | '5.0.1-alpha.2-beta', |
||
252 | ], |
||
253 | ]; |
||
254 | |||
255 | public function isValidProvider() |
||
256 | { |
||
257 | $args = []; |
||
258 | |||
259 | foreach ($this->parseableStrings['valid'] as $str) { |
||
260 | $args[$str] = [true, Version::parse($str)]; |
||
261 | } |
||
262 | |||
263 | foreach ($this->parseableStrings['invalid'] as $str) { |
||
264 | $args[$str] = [false, Version::parse($str)]; |
||
265 | } |
||
266 | |||
267 | return $args; |
||
268 | } |
||
269 | |||
270 | public function toStringMethodProvider() |
||
281 | ]; |
||
282 | } |
||
283 | } |
||
284 |
This check looks for method names that are not written in camelCase.
In camelCase names are written without any punctuation, the start of each new word being marked by a capital letter. Thus the name database connection seeker becomes
databaseConnectionSeeker
.