Conditions | 2 |
Paths | 2 |
Total Lines | 127 |
Code Lines | 98 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
166 | public function testDoImportDataset2(bool $odsEmptyRowsMode): void |
||
167 | { |
||
168 | //$sql_query_disabled will show the import SQL detail |
||
169 | //$import_notice will show the import detail result |
||
170 | global $import_notice, $sql_query, $sql_query_disabled; |
||
171 | $sql_query_disabled = false; |
||
172 | |||
173 | $GLOBALS['import_file'] = 'test/test_data/import-slim.ods.xml'; |
||
174 | $_REQUEST['ods_col_names'] = true; |
||
175 | $_REQUEST['ods_empty_rows'] = $odsEmptyRowsMode; |
||
176 | |||
177 | parent::setGlobalDbi(); |
||
178 | |||
179 | $importHandle = new File($GLOBALS['import_file']); |
||
180 | $importHandle->setDecompressContent(false);// Not compressed |
||
181 | $importHandle->open(); |
||
182 | |||
183 | // The process could probably detect that all the values for columns V to BL are empty |
||
184 | // That would make the empty columns not needed and would create a cleaner structure |
||
185 | $nulls = ''; |
||
|
|||
186 | $nullCells = ''; |
||
187 | $nullCellNames = ''; |
||
188 | |||
189 | $nulls = ', NULL' . str_repeat(', NULL', 44);// 45 empty cells |
||
190 | |||
191 | $nullCells = ', `T` varchar(10), `U` varchar(10),' |
||
192 | . ' `V` varchar(10), `W` varchar(10), `X` varchar(10), `Y` varchar(10), `Z` varchar(10),' |
||
193 | . ' `AA` varchar(10), `AB` varchar(10), `AC` varchar(10), `AD` varchar(10), `AE` varchar(10),' |
||
194 | . ' `AF` varchar(10), `AG` varchar(10), `AH` varchar(10), `AI` varchar(10), `AJ` varchar(10),' |
||
195 | . ' `AK` varchar(10), `AL` varchar(10), `AM` varchar(10), `AN` varchar(10), `AO` varchar(10),' |
||
196 | . ' `AP` varchar(10), `AQ` varchar(10), `AR` varchar(10), `AS` varchar(10), `AT` varchar(10),' |
||
197 | . ' `AU` varchar(10), `AV` varchar(10), `AW` varchar(10), `AX` varchar(10), `AY` varchar(10),' |
||
198 | . ' `AZ` varchar(10), `BA` varchar(10), `BB` varchar(10), `BC` varchar(10), `BD` varchar(10),' |
||
199 | . ' `BE` varchar(10), `BF` varchar(10), `BG` varchar(10), `BH` varchar(10), `BI` varchar(10),' |
||
200 | . ' `BJ` varchar(10), `BK` varchar(10), `BL` varchar(10)'; |
||
201 | |||
202 | $nullCellNames = ', `T`, `U`, `V`, `W`, `X`, `Y`, `Z`, `AA`, `AB`, `AC`,' |
||
203 | . ' `AD`, `AE`, `AF`, `AG`, `AH`, `AI`, `AJ`, `AK`, `AL`, `AM`, `AN`, `AO`, `AP`, `AQ`,' |
||
204 | . ' `AR`, `AS`, `AT`, `AU`, `AV`, `AW`, `AX`, `AY`, `AZ`, `BA`, `BB`, `BC`, `BD`, `BE`,' |
||
205 | . ' `BF`, `BG`, `BH`, `BI`, `BJ`, `BK`, `BL`'; |
||
206 | |||
207 | $endOfSql = ');;'; |
||
208 | |||
209 | if (! $odsEmptyRowsMode) { |
||
210 | $fullCols = 'NULL' . str_repeat(', NULL', 44 + 19); |
||
211 | $endOfSql = '),' . "\n"// three more empty lines |
||
212 | . ' (' . $fullCols . '),' . "\n" |
||
213 | . ' (' . $fullCols . '),' . "\n" |
||
214 | . ' (' . $fullCols . ');;'; |
||
215 | } |
||
216 | |||
217 | //Test function called |
||
218 | $this->object->doImport($importHandle); |
||
219 | |||
220 | $this->assertSame( |
||
221 | 'CREATE DATABASE IF NOT EXISTS `ODS_DB` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;;' |
||
222 | . 'CREATE TABLE IF NOT EXISTS `ODS_DB`.`Shop` (' |
||
223 | . '`Artikelnummer` varchar(7), `Name` varchar(41), `keywords` varchar(15), `EK_Preis` varchar(21),' |
||
224 | . ' `Preis` varchar(23), `Details` varchar(10), `addInfo` varchar(22), `Einheit` varchar(3),' |
||
225 | . ' `Wirkstoff` varchar(10), `verkuerztHaltbar` varchar(21), `kuehlkette` varchar(7),' |
||
226 | . ' `Gebinde` varchar(71), `Verbrauchsnachweis` varchar(7), `Genehmigungspflichtig` varchar(7),' |
||
227 | . ' `Gefahrstoff` varchar(11), `GefahrArbeitsbereich` varchar(14), `Verwendungszweck` varchar(10),' |
||
228 | . ' `Verbrauch` varchar(10), `showLagerbestand` varchar(7)' . $nullCells . ') ' |
||
229 | . 'DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;;' |
||
230 | . 'INSERT INTO `ODS_DB`.`Shop` (' |
||
231 | . '`Artikelnummer`, `Name`, `keywords`, `EK_Preis`, `Preis`, `Details`, `addInfo`, `Einheit`,' |
||
232 | . ' `Wirkstoff`, `verkuerztHaltbar`, `kuehlkette`, `Gebinde`, `Verbrauchsnachweis`,' |
||
233 | . ' `Genehmigungspflichtig`, `Gefahrstoff`, `GefahrArbeitsbereich`, `Verwendungszweck`,' |
||
234 | . ' `Verbrauch`, `showLagerbestand`' . $nullCellNames . ') VALUES (' |
||
235 | . 'NULL, NULL, \'Schlüsselwörter\', \'Einkaufspreis (Netto)\', \'VK-Preis (Orientierung)\', NULL,' |
||
236 | . ' \'Hintergrundinformation\', \'VPE\', NULL, \'verkürzte Haltbarkeit\', \'ja/nein\',' |
||
237 | . ' \'Stück,Rolle,Pack,Flasche,Sack,Eimer,Karton,Palette,Beutel,Kanister,Paar\', \'ja/nein\',' |
||
238 | . ' \'ja/nein\', \'GHS01-GHS09\', \'Arbeitsbereich\', NULL, NULL, \'ja/nein\'' |
||
239 | . $nulls . '),' . "\n" |
||
240 | . ' (\'1005\', \'Beatmungsfilter\', NULL, \'0,85\', \'1,2\', NULL, NULL, \'5\', NULL, NULL, \'nein\',' |
||
241 | . ' \'Stück\', \'nein\', \'nein\', NULL, NULL, NULL, NULL, \'ja\'' . $nulls . '),' . "\n" |
||
242 | . ' (\'04-3-06\', \'Absaugkatheter, CH06 grün\', NULL, \'0.13\', \'0.13\', NULL, NULL, \'1\',' |
||
243 | . ' NULL, NULL,' |
||
244 | . ' NULL, \'Stück\', \'nein\', \'nein\', NULL, NULL, NULL, NULL, \'ja\'' |
||
245 | . $nulls . '),' . "\n" |
||
246 | . ' (\'04-3-10\', \'Absaugkatheter, CH10 schwarz\', NULL, \'0.13\', \'0.13\', NULL, NULL, \'1\',' |
||
247 | . ' NULL, NULL, NULL, \'Stück\', \'nein\', \'nein\', NULL, NULL, NULL, NULL, \'ja\'' |
||
248 | . $nulls . '),' . "\n" |
||
249 | . ' (\'04-3-18\', \'Absaugkatheter, CH18 rot\', NULL, \'0.13\', \'0.13\', NULL, NULL, \'1\',' |
||
250 | . ' NULL, NULL, NULL, \'Stück\', \'nein\', \'nein\', NULL, NULL, NULL, NULL, \'ja\'' |
||
251 | . $nulls . '),' . "\n" |
||
252 | . ' (\'06-38\', \'Bakterienfilter\', NULL, \'1.25\', \'1.25\', NULL, NULL, \'1\', NULL, NULL, NULL,' |
||
253 | . ' \'Stück\', \'nein\', \'nein\', NULL, NULL, NULL, NULL, \'ja\'' |
||
254 | . $nulls . '),' . "\n" |
||
255 | . ' (\'05-453\', \'Blockerspritze für Larynxtubus, Erwachsen\', NULL, \'2.6\', \'2.6\', NULL, NULL,' |
||
256 | . ' \'1\', NULL, NULL, NULL, \'Stück\', \'nein\', \'nein\', NULL, NULL, NULL, NULL, \'ja\'' |
||
257 | . $nulls . '),' . "\n" |
||
258 | . ' (\'04-402\', \'Absaugschlauch mit Fingertip für Accuvac\', NULL, \'1.7\', \'1.7\', NULL, NULL,' |
||
259 | . ' \'1\', NULL, NULL, NULL, \'Stück\', \'nein\', \'nein\', NULL, NULL, NULL, NULL, \'ja\'' |
||
260 | . $nulls . '),' . "\n" |
||
261 | . ' (\'02-580\', \'Einmalbeatmungsbeutel, Erwachsen\', NULL, \'8.9\', \'8.9\', NULL, NULL,' |
||
262 | . ' \'1\', NULL, NULL, NULL, \'Stück\', \'nein\', \'nein\', NULL, NULL, NULL, NULL, \'ja\'' |
||
263 | . $nulls |
||
264 | . $endOfSql, |
||
265 | $sql_query |
||
266 | ); |
||
267 | |||
268 | //asset that all databases and tables are imported |
||
269 | $this->assertStringContainsString( |
||
270 | 'The following structures have either been created or altered.', |
||
271 | $import_notice |
||
272 | ); |
||
273 | $this->assertStringContainsString( |
||
274 | 'Go to database: `ODS_DB`', |
||
275 | $import_notice |
||
276 | ); |
||
277 | $this->assertStringContainsString( |
||
278 | 'Edit settings for `ODS_DB`', |
||
279 | $import_notice |
||
280 | ); |
||
281 | $this->assertStringContainsString( |
||
282 | 'Go to table: `Shop`', |
||
283 | $import_notice |
||
284 | ); |
||
285 | $this->assertStringContainsString( |
||
286 | 'Edit settings for `Shop`', |
||
287 | $import_notice |
||
288 | ); |
||
289 | |||
290 | //asset that the import process is finished |
||
291 | $this->assertTrue( |
||
292 | $GLOBALS['finished'] |
||
293 | ); |
||
296 |