Skip to content

Commit

Permalink
Fix namespace
Browse files Browse the repository at this point in the history
Fix #2
  • Loading branch information
fab2s committed Jul 25, 2019
1 parent b53fd05 commit 549b593
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 16 deletions.
3 changes: 3 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@
"autoload": {
"classmap": [
"src"
],
"files": [
"src/support/deprecated.php"
]
}
}
3 changes: 1 addition & 2 deletions src/Extractors/File/CsvExtractor.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@
* find in the LICENSE file or at https://opensource.org/licenses/MIT
*/

namespace fab2s\YaEtl\Loaders\File;
namespace fab2s\YaEtl\Extractors\File;

use fab2s\NodalFlow\NodalFlowException;
use fab2s\NodalFlow\YaEtlException;
use fab2s\YaEtl\Extractors\File\FileExtractorAbstract;
use fab2s\YaEtl\Traits\CsvHandlerTrait;

/**
Expand Down
22 changes: 22 additions & 0 deletions src/support/deprecated.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

/*
* This file is part of YaEtl.
* (c) Fabrice de Stefanis / https://github.com/fab2s/YaEtl
* This source file is licensed under the MIT license which you will
* find in the LICENSE file or at https://opensource.org/licenses/MIT
*/

namespace {
/* @see https://github.com/fab2s/YaEtl/issues/2 */
class_alias(\fab2s\YaEtl\Extractors\File\CsvExtractor::class, \fab2s\YaEtl\Loaders\File\CsvExtractor::class);
}

namespace fab2s\YaEtl\Loaders\File {
if (!class_exists(CsvExtractor::class)) {
/** @deprecated CsvExtractor this is intended to help IDEs */
class CsvExtractor
{
}
}
}
58 changes: 44 additions & 14 deletions tests/FileTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@
use fab2s\NodalFlow\NodalFlowException;
use fab2s\NodalFlow\YaEtlException;
use fab2s\YaEtl\Extractors\CallableExtractor;
use fab2s\YaEtl\Extractors\File\CsvExtractor;
use fab2s\YaEtl\Extractors\File\FileExtractorAbstract;
use fab2s\YaEtl\Extractors\File\LineExtractor;
use fab2s\YaEtl\Loaders\File\CsvExtractor;
use fab2s\YaEtl\Loaders\File\CsvExtractor as DeprecatedCsvExtractor;
use fab2s\YaEtl\Loaders\File\CsvLoader;
use fab2s\YaEtl\Transformers\CallableTransformer;
use fab2s\YaEtl\YaEtl;
Expand Down Expand Up @@ -77,20 +79,22 @@ public function testLineExtractor($srcPath, array $expected)
*/
public function testCsvExtractor($srcPath, $useHeader, array $expected)
{
$csvExtractor = new CsvExtractor($srcPath);
$csvExtractor->setUseHeader($useHeader);

(new YaEtl)->from($csvExtractor)
->transform(new CallableTransformer(function ($record) use ($csvExtractor, $expected, $useHeader) {
static $i = 0;
$expected = $useHeader ? array_combine($csvExtractor->getHeader(), $expected['values'][$i]) : $expected['values'][$i];
$this->assertSame($expected, $record);
++$i;
}))
->exec();
$this->csvExtractorAssertions(new CsvExtractor($srcPath), $useHeader, $expected);
}

$this->assertSame($expected['header'], $csvExtractor->getHeader());
$this->assertSame($expected['encoding'], $csvExtractor->getEncoding());
/**
* @dataProvider csvExtractorProvider
*
* @param string $srcPath
* @param bool $useHeader
* @param array $expected
*
* @throws NodalFlowException
* @throws YaEtlException
*/
public function testDeprecatedCsvExtractor($srcPath, $useHeader, array $expected)
{
$this->csvExtractorAssertions(new DeprecatedCsvExtractor($srcPath), $useHeader, $expected);
}

/**
Expand Down Expand Up @@ -215,6 +219,32 @@ public function lineExtractorProvider()
];
}

/**
* @param FileExtractorAbstract $csvExtractor
* @param $useHeader
* @param array $expected
*
* @throws NodalFlowException
* @throws YaEtlException
*/
protected function csvExtractorAssertions(FileExtractorAbstract $csvExtractor, $useHeader, array $expected)
{
/* @var CsvExtractor $csvExtractor */
$csvExtractor->setUseHeader($useHeader);

(new YaEtl)->from($csvExtractor)
->transform(new CallableTransformer(function ($record) use ($csvExtractor, $expected, $useHeader) {
static $i = 0;
$expected = $useHeader ? array_combine($csvExtractor->getHeader(), $expected['values'][$i]) : $expected['values'][$i];
$this->assertSame($expected, $record);
++$i;
}))
->exec();

$this->assertSame($expected['header'], $csvExtractor->getHeader());
$this->assertSame($expected['encoding'], $csvExtractor->getEncoding());
}

/**
* @return bool|string
*/
Expand Down

0 comments on commit 549b593

Please sign in to comment.