Total Complexity | 41 |
Total Lines | 405 |
Duplicated Lines | 0 % |
Changes | 0 |
Complex classes like FlexiBeeRWTest often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use FlexiBeeRWTest, and based on these observations, apply Extract Interface, too.
1 | <?php |
||
10 | class FlexiBeeRWTest extends FlexiBeeROTest |
||
11 | { |
||
12 | /** |
||
13 | * Poznámka vkládaná do záznamů vytvářených během testů |
||
14 | * @var string |
||
15 | */ |
||
16 | public $poznam = 'Generováno UnitTestem PHP Knihovny https://github.com/Spoje-NET/FlexiPeeHP'; |
||
17 | |||
18 | /** |
||
19 | * |
||
20 | * @var array |
||
21 | */ |
||
22 | public $insertableData = []; |
||
23 | |||
24 | /** |
||
25 | * @var FlexiBeeRW |
||
26 | */ |
||
27 | protected $object; |
||
28 | |||
29 | /** |
||
30 | * Gives You data able to insert into current evidence |
||
31 | * |
||
32 | * @param string $code custom record code |
||
33 | * |
||
34 | * @return array |
||
35 | */ |
||
36 | public function getDataForInsert($code = 'UnitTest') |
||
37 | { |
||
38 | $dataForInsert = []; |
||
39 | $structure = $this->object->getColumnsInfo(); |
||
40 | if (count($structure)) { |
||
41 | if (array_key_exists('typDokl', $structure)) { |
||
42 | if ($structure['typDokl']['type'] == 'relation') { |
||
43 | $relatedEvidence = basename($structure['typDokl']['url']); |
||
44 | $loader = new \FlexiPeeHP\FlexiBeeRO(null, |
||
45 | ['evidence' => $relatedEvidence]); |
||
46 | $typDoklRaw = $loader->getColumnsFromFlexibee([ |
||
47 | 'kod'], ['limit' => 1]); |
||
48 | $dataForInsert['typDokl'] = \FlexiPeeHP\FlexiBeeRO::code($typDoklRaw[0]['kod']); |
||
49 | } |
||
50 | } |
||
51 | if (array_key_exists('poznam', $structure)) { |
||
52 | $dataForInsert['poznam'] = $this->poznam.' '.$code; |
||
53 | } |
||
54 | |||
55 | if (array_key_exists('nazev', $structure)) { |
||
56 | $dataForInsert['nazev'] = $code.' '.$this->poznam.' '; |
||
57 | } |
||
58 | |||
59 | if (array_key_exists('kod', $structure)) { |
||
60 | $dataForInsert['kod'] = \FlexiPeeHP\FlexiBeeRO::uncode($this->object->getKod($code)); |
||
61 | } |
||
62 | } |
||
63 | return $dataForInsert; |
||
64 | } |
||
65 | |||
66 | /** |
||
67 | * Sets up the fixture, for example, opens a network connection. |
||
68 | * This method is called before a test is executed. |
||
69 | * @covers FlexiPeeHP\FlexiBeeRW::__construct |
||
70 | */ |
||
71 | protected function setUp() |
||
72 | { |
||
73 | $this->object = new FlexiBeeRW(null, |
||
74 | ['atomic' => false, 'debug' => false]); |
||
75 | } |
||
76 | |||
77 | /** |
||
78 | * Tears down the fixture, for example, closes a network connection. |
||
79 | * This method is called after a test is executed. |
||
80 | */ |
||
81 | protected function tearDown() |
||
82 | { |
||
83 | |||
84 | } |
||
85 | |||
86 | /** |
||
87 | * @covers FlexiPeeHP\FlexiBeeRW::performAction |
||
88 | * @expectedException \Exception |
||
89 | */ |
||
90 | public function testPerformAction() |
||
91 | { |
||
92 | $actions = $this->object->getActionsInfo(); |
||
93 | |||
94 | if (!empty($actions) && count($actions)) { |
||
95 | if (array_key_exists('new', $actions)) { |
||
96 | $this->object->performAction('new', 'ext'); |
||
97 | } |
||
98 | |||
99 | if (array_key_exists('storno', $actions)) { |
||
100 | $this->object->insertToFlexiBee($this->getDataForInsert('StornoTest_'.time())); |
||
101 | $this->object->performAction('storno', 'int'); |
||
102 | } |
||
103 | } |
||
104 | $this->object->performAction('nonexitst'); |
||
105 | } |
||
106 | |||
107 | /** |
||
108 | * @covers FlexiPeeHP\FlexiBeeRW::timestampToFlexiDate |
||
109 | */ |
||
110 | public function testTimestampToFlexiDate() |
||
111 | { |
||
112 | $this->assertNull($this->object->timestampToFlexiDate()); |
||
113 | $this->assertEquals('2016-09-16', |
||
114 | $this->object->timestampToFlexiDate('1474040506')); |
||
115 | } |
||
116 | |||
117 | /** |
||
118 | * @covers FlexiPeeHP\FlexiBeeRW::timestampToFlexiDateTime |
||
119 | */ |
||
120 | public function testTimestampToFlexiDateTime() |
||
121 | { |
||
122 | $this->assertNull($this->object->timestampToFlexiDateTime()); |
||
123 | $flexiDateTime = $this->object->timestampToFlexiDateTime('1474040506'); |
||
124 | $this->assertEquals('2016-09-16', substr($flexiDateTime, 0, 10)); |
||
125 | $this->assertEquals(':41:46', substr($flexiDateTime, -6)); |
||
126 | } |
||
127 | |||
128 | /** |
||
129 | * @covers FlexiPeeHP\FlexiBeeRW::objectToID |
||
130 | */ |
||
131 | public function testObjectToID() |
||
132 | { |
||
133 | $id = \Ease\Sand::randomNumber(1, 9999); |
||
134 | $this->object->setMyKey($id); |
||
135 | $this->assertEquals([$id], $this->object->objectToID([$this->object])); |
||
136 | parent::testObjectToID(); |
||
137 | } |
||
138 | |||
139 | /** |
||
140 | * @covers FlexiPeeHP\FlexiBeeRW::getRecordID |
||
141 | */ |
||
142 | public function testGetRecordID() |
||
143 | { |
||
144 | parent::testGetRecordID(); |
||
145 | $structure = $this->object->getEvidenceInfo(); |
||
146 | if (!empty($structure) && count($structure) && array_key_exists('kod', $structure)) { |
||
147 | $this->object->setData(['kod' => 'KOD']); |
||
148 | $this->assertEquals('code:KOD', $this->object->getRecordID()); |
||
149 | } |
||
150 | } |
||
151 | |||
152 | /** |
||
153 | * @covers FlexiPeeHP\FlexiBeeRW::controlMandatoryColumns |
||
154 | */ |
||
155 | public function testControlMandatoryColumns() |
||
156 | { |
||
157 | $this->object->controlMandatoryColumns(); |
||
|
|||
158 | } |
||
159 | |||
160 | /** |
||
161 | * @covers FlexiPeeHP\FlexiBeeRW::controlReadOnlyColumns |
||
162 | */ |
||
163 | public function testControlReadOnlyColumns() |
||
164 | { |
||
165 | $this->object->controlReadOnlyColumns(['id' => 1]); |
||
166 | } |
||
167 | |||
168 | /** |
||
169 | * @covers FlexiPeeHP\FlexiBeeRW::addArrayToBranch |
||
170 | */ |
||
171 | public function testAddArrayToBranch() |
||
172 | { |
||
173 | $this->object->addArrayToBranch(['nazev' => 'test'], 'podEvidence'); |
||
174 | } |
||
175 | |||
176 | /** |
||
177 | * @covers FlexiPeeHP\FlexiBeeRW::addObjectToBranch |
||
178 | */ |
||
179 | public function testAddObjectToBranch() |
||
180 | { |
||
181 | $this->object->addObjectToBranch(new \FlexiPeeHP\FakturaVydanaPolozka(['nazev' => 'test'])); |
||
182 | } |
||
183 | |||
184 | /** |
||
185 | * @covers FlexiPeeHP\FlexiBeeRW::vazbaAdd |
||
186 | */ |
||
187 | public function testVazbaAdd() |
||
188 | { |
||
189 | $this->object->vazbaAdd(\Ease\Sand::randomNumber()); |
||
190 | } |
||
191 | |||
192 | /** |
||
193 | * @covers FlexiPeeHP\FlexiBeeRW::vazbaDel |
||
194 | */ |
||
195 | public function testVazbaDel() |
||
196 | { |
||
197 | $this->object->vazbaDel(\Ease\Sand::randomNumber()); |
||
198 | } |
||
199 | |||
200 | /** |
||
201 | * @covers FlexiPeeHP\FlexiBeeRW::getJsonizedData |
||
202 | */ |
||
203 | public function testGetJsonizedData() |
||
204 | { |
||
205 | $this->object->setData(['id' => time(), 'nazev' => \Ease\Sand::randomString(), |
||
206 | 'stitky' => ['TEST', 'TESTING']]); |
||
207 | $this->object->getJsonizedData(); |
||
208 | } |
||
209 | |||
210 | |||
211 | |||
212 | /** |
||
213 | * @covers FlexiPeeHP\FlexiBeeRW::insertToFlexiBee |
||
214 | */ |
||
215 | public function testInsertToFlexiBee() |
||
216 | { |
||
217 | $this->object->insertToFlexiBee(['id' => 'ext:test:'.time()]); |
||
218 | $this->object->setData(['id' => 'ext:test:'.time()], true); |
||
219 | $this->object->insertToFlexiBee(); |
||
220 | } |
||
221 | |||
222 | /** |
||
223 | * @covers FlexiPeeHP\FlexiBeeRW::parseResponse |
||
224 | */ |
||
225 | public function testParseResponse() |
||
226 | { |
||
227 | $responseDecoded = array( |
||
228 | '@version' => '1.0', |
||
229 | 'success' => 'true', |
||
230 | 'stats' => |
||
231 | array( |
||
232 | 'created' => '1', |
||
233 | 'updated' => '5', |
||
234 | 'deleted' => '0', |
||
235 | 'skipped' => '0', |
||
236 | 'failed' => '0', |
||
237 | ), |
||
238 | 'results' => |
||
239 | array( |
||
240 | 0 => |
||
241 | array( |
||
242 | 'id' => '792', |
||
243 | 'request-id' => 'EXT:APP:100', |
||
244 | 'ref' => '/c/flexipeehp/adresar/792', |
||
245 | ), |
||
246 | 1 => |
||
247 | array( |
||
248 | 'id' => '793', |
||
249 | 'request-id' => 'EXT:APP:200', |
||
250 | 'ref' => '/c/flexipeehp/adresar/793', |
||
251 | ), |
||
252 | 2 => |
||
253 | array( |
||
254 | 'id' => '794', |
||
255 | 'request-id' => 'EXT:APP:300', |
||
256 | 'ref' => '/c/flexipeehp/adresar/794', |
||
257 | ), |
||
258 | 3 => |
||
259 | array( |
||
260 | 'id' => '795', |
||
261 | 'request-id' => 'EXT:APP:400', |
||
262 | 'ref' => '/c/flexipeehp/adresar/795', |
||
263 | ), |
||
264 | 4 => |
||
265 | array( |
||
266 | 'id' => '830', |
||
267 | 'request-id' => 'EXT:APP:500', |
||
268 | 'ref' => '/c/flexipeehp/banka/830', |
||
269 | ), |
||
270 | 5 => |
||
271 | array( |
||
272 | 'id' => '28', |
||
273 | 'ref' => '/c/flexipeehp/adresar-bankovni-ucet/28', |
||
274 | ), |
||
275 | ), |
||
276 | ) |
||
277 | ; |
||
278 | $this->object->parseResponse($responseDecoded, 201); |
||
279 | } |
||
280 | |||
281 | /** |
||
282 | * @covers FlexiPeeHP\FlexiBeeRW::assignResultIDs |
||
283 | */ |
||
284 | public function testAssignResultIDs() |
||
285 | { |
||
286 | $ids = array( |
||
287 | 'adresar' => |
||
288 | array( |
||
289 | 'EXT:APP:100' => '792', |
||
290 | 'EXT:APP:200' => '793', |
||
291 | 'EXT:APP:300' => '794', |
||
292 | 'EXT:APP:400' => '795', |
||
293 | ), |
||
294 | 'banka' => |
||
295 | array( |
||
296 | 'EXT:APP:500' => '830', |
||
297 | ), |
||
298 | 'adresar-bankovni-ucet' => |
||
299 | array( |
||
300 | '' => '27', |
||
301 | ), |
||
302 | ); |
||
303 | $this->object->assignResultIDs($ids); |
||
304 | } |
||
305 | |||
306 | /** |
||
307 | * @covers FlexiPeeHP\FlexiBeeRW::extractResultIDs |
||
308 | */ |
||
309 | public function testExtractResultIDs() |
||
310 | { |
||
311 | $resultInfo = array( |
||
312 | 0 => |
||
313 | array( |
||
314 | 'id' => '792', |
||
315 | 'request-id' => 'EXT:APP:100', |
||
316 | 'ref' => '/c/flexipeehp/adresar/792', |
||
317 | ), |
||
318 | 1 => |
||
319 | array( |
||
320 | 'id' => '793', |
||
321 | 'request-id' => 'EXT:APP:200', |
||
322 | 'ref' => '/c/flexipeehp/adresar/793', |
||
323 | ), |
||
324 | 2 => |
||
325 | array( |
||
326 | 'id' => '794', |
||
327 | 'request-id' => 'EXT:APP:300', |
||
328 | 'ref' => '/c/flexipeehp/adresar/794', |
||
329 | ), |
||
330 | 3 => |
||
331 | array( |
||
332 | 'id' => '795', |
||
333 | 'request-id' => 'EXT:APP:400', |
||
334 | 'ref' => '/c/flexipeehp/adresar/795', |
||
335 | ), |
||
336 | 4 => |
||
337 | array( |
||
338 | 'id' => '830', |
||
339 | 'request-id' => 'EXT:APP:500', |
||
340 | 'ref' => '/c/flexipeehp/banka/830', |
||
341 | ), |
||
342 | 5 => |
||
343 | array( |
||
344 | 'id' => '26', |
||
345 | 'ref' => '/c/flexipeehp/adresar-bankovni-ucet/26', |
||
346 | ), |
||
347 | ); |
||
348 | $this->object->extractResultIDs($resultInfo); |
||
349 | } |
||
350 | |||
351 | /** |
||
352 | * @covers FlexiPeeHP\FlexiBeeRW::getLastInsertedId |
||
353 | */ |
||
354 | public function testGetLastInsertedId() |
||
355 | { |
||
356 | $this->object->getLastInsertedId(); |
||
357 | } |
||
358 | |||
359 | /** |
||
360 | * @covers FlexiPeeHP\FlexiBeeRW::deleteFromFlexiBee |
||
361 | */ |
||
362 | public function testDeleteFromFlexiBee() |
||
363 | { |
||
364 | $this->object->deleteFromFlexiBee(); |
||
365 | } |
||
366 | |||
367 | /** |
||
368 | * @covers FlexiPeeHP\FlexiBeeRW::takeData |
||
369 | */ |
||
370 | public function testTakeData() |
||
371 | { |
||
372 | $this->object->takeData(['id' => \Ease\Sand::randomNumber()]); |
||
373 | } |
||
374 | |||
375 | /** |
||
376 | * @after |
||
377 | * @covers FlexiPeeHP\FlexiBeeRW::getDataForJSON |
||
378 | */ |
||
379 | public function testGetDataForJSON() |
||
380 | { |
||
381 | $this->object->setData(['name' => 'test']); |
||
382 | $this->object->getDataForJSON(); |
||
383 | } |
||
384 | |||
385 | /** |
||
386 | * @covers FlexiPeeHP\FlexiBeeRW::addExternalID |
||
387 | */ |
||
388 | public function testAddExternalID() |
||
389 | { |
||
390 | if (empty($this->object->getEvidence())) { |
||
391 | $this->object->setEvidence('banka'); |
||
392 | } |
||
393 | $this->object->addExternalID('ext:test:'.\Ease\Sand::randomNumber()); |
||
394 | } |
||
395 | |||
396 | /** |
||
397 | * @covers FlexiPeeHP\FlexiBeeRW::changeExternalID |
||
398 | */ |
||
399 | public function testChangeExternalID() |
||
400 | { |
||
401 | $this->object->changeExternalID('test', \Ease\Sand::randomNumber(), |
||
402 | \Ease\Sand::randomNumber()); |
||
403 | } |
||
404 | |||
405 | /** |
||
406 | * @covers FlexiPeeHP\FlexiBeeRW::sync |
||
407 | */ |
||
408 | public function testSync() |
||
415 | } |
||
416 | } |
||
417 | } |
||
418 |
This function has been deprecated. The supplier of the function has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead.