From e9592aa83396e04f4cc6c9ddcff1f0cb6fba03f8 Mon Sep 17 00:00:00 2001 From: Bilge Date: Sat, 18 Jun 2016 16:19:48 +0100 Subject: [PATCH] Renamed ProviderDataType -> ProviderDataFetcher. --- composer.lock | 23 +++++++++-------- .../Collection/CountableProviderRecords.php | 8 +++--- src/Porter/Collection/ProviderRecords.php | 14 +++++------ src/Porter/Porter.php | 23 ++++++----------- .../Provider/ForeignDataFetcherException.php | 10 ++++++++ .../IncompatibleDataTypeException.php | 10 -------- .../{NoDataType.php => NullFetcher.php} | 2 +- src/Porter/Provider/Provider.php | 16 ++++++------ src/Porter/Provider/ProviderDataFetcher.php | 25 +++++++++++++++++++ src/Porter/Provider/ProviderDataType.php | 22 ---------------- ...aticDataType.php => StaticDataFetcher.php} | 2 +- .../Specification/ImportSpecification.php | 18 ++++++------- .../StaticDataImportSpecification.php | 4 +-- .../CountableProviderRecordsTest.php | 4 +-- test/Integration/Porter/PorterTest.php | 12 ++++----- test/MockFactory.php | 4 +-- .../Porter/Collection/ProviderRecordsTest.php | 6 ++--- test/Unit/Porter/ImportSpecificationTest.php | 12 ++++----- test/Unit/Porter/Provider/NoDataTypeTest.php | 13 ---------- test/Unit/Porter/Provider/NullFetcherTest.php | 13 ++++++++++ test/Unit/Porter/Provider/ProviderTest.php | 10 ++++---- 21 files changed, 124 insertions(+), 127 deletions(-) create mode 100644 src/Porter/Provider/ForeignDataFetcherException.php delete mode 100644 src/Porter/Provider/IncompatibleDataTypeException.php rename src/Porter/Provider/{NoDataType.php => NullFetcher.php} (76%) create mode 100644 src/Porter/Provider/ProviderDataFetcher.php delete mode 100644 src/Porter/Provider/ProviderDataType.php rename src/Porter/Provider/{StaticDataType.php => StaticDataFetcher.php} (89%) delete mode 100644 test/Unit/Porter/Provider/NoDataTypeTest.php create mode 100644 test/Unit/Porter/Provider/NullFetcherTest.php diff --git a/composer.lock b/composer.lock index e01013b..11abcac 100644 --- a/composer.lock +++ b/composer.lock @@ -1404,16 +1404,16 @@ }, { "name": "sebastian/exporter", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e" + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", - "reference": "7ae5513327cb536431847bcc0c10edba2701064e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", "shasum": "" }, "require": { @@ -1421,12 +1421,13 @@ "sebastian/recursion-context": "~1.0" }, "require-dev": { + "ext-mbstring": "*", "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -1466,7 +1467,7 @@ "export", "exporter" ], - "time": "2015-06-21 07:55:53" + "time": "2016-06-17 09:04:28" }, { "name": "sebastian/global-state", @@ -1609,16 +1610,16 @@ }, { "name": "symfony/yaml", - "version": "v3.1.0", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "eca51b7b65eb9be6af88ad7cc91685f1556f5c9a" + "reference": "c5a7e7fc273c758b92b85dcb9c46149ccda89623" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/eca51b7b65eb9be6af88ad7cc91685f1556f5c9a", - "reference": "eca51b7b65eb9be6af88ad7cc91685f1556f5c9a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/c5a7e7fc273c758b92b85dcb9c46149ccda89623", + "reference": "c5a7e7fc273c758b92b85dcb9c46149ccda89623", "shasum": "" }, "require": { @@ -1654,7 +1655,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2016-05-26 21:46:24" + "time": "2016-06-14 11:18:07" }, { "name": "webmozart/assert", diff --git a/src/Porter/Collection/CountableProviderRecords.php b/src/Porter/Collection/CountableProviderRecords.php index 3ac4dba..e210c8e 100644 --- a/src/Porter/Collection/CountableProviderRecords.php +++ b/src/Porter/Collection/CountableProviderRecords.php @@ -1,7 +1,7 @@ count = $count|0; } diff --git a/src/Porter/Collection/ProviderRecords.php b/src/Porter/Collection/ProviderRecords.php index afce9ae..31345f1 100644 --- a/src/Porter/Collection/ProviderRecords.php +++ b/src/Porter/Collection/ProviderRecords.php @@ -1,24 +1,24 @@ providerData = $providerDataType; + $this->dataFetcher = $dataFetcher; } /** - * @return ProviderDataType + * @return ProviderDataFetcher */ - public function getProviderData() + public function getDataFetcher() { - return $this->providerData; + return $this->dataFetcher; } } diff --git a/src/Porter/Porter.php b/src/Porter/Porter.php index 947e821..222a8cc 100644 --- a/src/Porter/Porter.php +++ b/src/Porter/Porter.php @@ -11,7 +11,7 @@ use ScriptFUSION\Porter\Collection\RecordCollection; use ScriptFUSION\Porter\Mapper\PorterMapper; use ScriptFUSION\Porter\Provider\Provider; -use ScriptFUSION\Porter\Provider\ProviderDataType; +use ScriptFUSION\Porter\Provider\ProviderDataFetcher; use ScriptFUSION\Porter\Provider\ProviderFactory; use ScriptFUSION\Porter\Specification\ImportSpecification; @@ -37,12 +37,12 @@ public function __construct() */ public function import(ImportSpecification $specification) { - $providerDataType = $specification->finalize()->getProviderDataType(); - $records = $this->fetch($providerDataType, $specification->getCacheAdvice()); + $dataFetcher = $specification->finalize()->getDataFetcher(); + $records = $this->fetch($dataFetcher, $specification->getCacheAdvice()); if (!$records instanceof ProviderRecords) { // Compose records iterator. - $records = new ProviderRecords($records, $providerDataType); + $records = new ProviderRecords($records, $dataFetcher); } if ($specification->getFilter()) { @@ -99,13 +99,6 @@ private function getOrCreateProviderFactory() return $this->providerFactory ?: $this->providerFactory = new ProviderFactory; } - public function setProviderFactory(ProviderFactory $factory) - { - $this->providerFactory = $factory; - - return $this; - } - /** * @return PorterMapper */ @@ -126,16 +119,16 @@ public function setMapper(PorterMapper $mapper) return $this; } - private function fetch(ProviderDataType $providerDataType, CacheAdvice $cacheAdvice = null) + private function fetch(ProviderDataFetcher $dataFetcher, CacheAdvice $cacheAdvice = null) { - if ($provider = $this->getProvider($providerDataType->getProviderName())) { + if ($provider = $this->getProvider($dataFetcher->getProviderName())) { $this->applyCacheAdvice($provider, $cacheAdvice ?: $this->defaultCacheAdvice); - return $provider->fetch($providerDataType); + return $provider->fetch($dataFetcher); } // TODO: Proper exception type. - throw new \RuntimeException("No such provider: {$providerDataType->getProviderName()}."); + throw new \RuntimeException("No such provider: {$dataFetcher->getProviderName()}."); } private function filter(ProviderRecords $records, callable $predicate, $context) diff --git a/src/Porter/Provider/ForeignDataFetcherException.php b/src/Porter/Provider/ForeignDataFetcherException.php new file mode 100644 index 0000000..ff2970d --- /dev/null +++ b/src/Porter/Provider/ForeignDataFetcherException.php @@ -0,0 +1,10 @@ +getProviderName() !== static::class) { - throw new IncompatibleDataTypeException(sprintf( - 'Cannot fetch data for foreign type: "%s".', - get_class($providerDataType) + if ($dataFetcher->getProviderName() !== static::class) { + throw new ForeignDataFetcherException(sprintf( + 'Cannot fetch data from foreign type: "%s".', + get_class($dataFetcher) )); } - return $providerDataType->fetch($this->connector); + return $dataFetcher->fetch($this->connector); } /** diff --git a/src/Porter/Provider/ProviderDataFetcher.php b/src/Porter/Provider/ProviderDataFetcher.php new file mode 100644 index 0000000..85ef314 --- /dev/null +++ b/src/Porter/Provider/ProviderDataFetcher.php @@ -0,0 +1,25 @@ +providerDataType = $providerDataType; + $this->dataFetcher = $dataFetcher; } /** @@ -43,7 +43,7 @@ public static function createFrom(ImportSpecification $specification) $specification->finalize(); } - return (new static($specification->getProviderDataType())) + return (new static($specification->getDataFetcher())) ->setMapping($specification->getMapping()) ->setContext($specification->getContext()) ->setFilter($specification->getFilter()); @@ -77,11 +77,11 @@ private function failIfFinalized($function) } /** - * @return ProviderDataType + * @return ProviderDataFetcher */ - final public function getProviderDataType() + final public function getDataFetcher() { - return $this->isFinalized() ? clone $this->providerDataType : $this->providerDataType; + return $this->isFinalized() ? clone $this->dataFetcher : $this->dataFetcher; } /** diff --git a/src/Porter/Specification/StaticDataImportSpecification.php b/src/Porter/Specification/StaticDataImportSpecification.php index ab47f85..f3e0d95 100644 --- a/src/Porter/Specification/StaticDataImportSpecification.php +++ b/src/Porter/Specification/StaticDataImportSpecification.php @@ -1,12 +1,12 @@ porter = (new Porter)->addProvider($this->provider = \Mockery::spy(Provider::class)); - $this->providerDataType = \Mockery::mock(ProviderDataType::class) + $this->dataFetcher = \Mockery::mock(ProviderDataFetcher::class) ->shouldReceive('getProviderName') ->andReturn(get_class($this->provider)) ->getMock(); @@ -56,7 +56,7 @@ public function testImport() { $this->provider->shouldReceive('fetch')->andReturn(new \ArrayIterator(['foo'])); - $records = $this->porter->import(new ImportSpecification($this->providerDataType)); + $records = $this->porter->import(new ImportSpecification($this->dataFetcher)); self::assertInstanceOf(PorterRecords::class, $records); self::assertSame('foo', $records->current()); @@ -67,7 +67,7 @@ public function testFilter() $this->provider->shouldReceive('fetch')->andReturn(new \ArrayIterator(range(1, 10))); $records = $this->porter->import( - (new ImportSpecification($this->providerDataType)) + (new ImportSpecification($this->dataFetcher)) ->setFilter(function ($record) { return $record % 2; }) diff --git a/test/MockFactory.php b/test/MockFactory.php index 1a909c9..092b5f7 100644 --- a/test/MockFactory.php +++ b/test/MockFactory.php @@ -1,7 +1,7 @@ getProviderData()); + self::assertSame($dataFetcher, $records->getDataFetcher()); } } diff --git a/test/Unit/Porter/ImportSpecificationTest.php b/test/Unit/Porter/ImportSpecificationTest.php index a7cbb63..2b9c694 100644 --- a/test/Unit/Porter/ImportSpecificationTest.php +++ b/test/Unit/Porter/ImportSpecificationTest.php @@ -4,7 +4,7 @@ use ScriptFUSION\Mapper\Mapping; use ScriptFUSION\Porter\Cache\CacheAdvice; use ScriptFUSION\Porter\ObjectFinalizedException; -use ScriptFUSION\Porter\Provider\ProviderDataType; +use ScriptFUSION\Porter\Provider\ProviderDataFetcher; use ScriptFUSION\Porter\Specification\ImportSpecification; final class ImportSpecificationTest extends \PHPUnit_Framework_TestCase @@ -12,13 +12,13 @@ final class ImportSpecificationTest extends \PHPUnit_Framework_TestCase /** @var ImportSpecification */ private $specification; - /** @var ProviderDataType */ - private $providerDataType; + /** @var ProviderDataFetcher */ + private $dataFetcher; protected function setUp() { $this->specification = new ImportSpecification( - $this->providerDataType = \Mockery::mock(ProviderDataType::class) + $this->dataFetcher = \Mockery::mock(ProviderDataFetcher::class) ); } @@ -43,7 +43,7 @@ public function testFinalizeAugmentation() public function testProviderData() { - self::assertSame($this->providerDataType, $this->specification->getProviderDataType()); + self::assertSame($this->dataFetcher, $this->specification->getDataFetcher()); } public function testMapping() @@ -95,7 +95,7 @@ public function testCreateFrom() ); self::assertNotSame($specification, $this->specification); - self::assertNotSame($this->providerDataType, $specification->getProviderDataType()); + self::assertNotSame($this->dataFetcher, $specification->getDataFetcher()); self::assertNotSame($mapping, $specification->getMapping()); self::assertSame($mapping->getArrayCopy(), $specification->getMapping()->getArrayCopy()); self::assertSame($context, $specification->getContext()); diff --git a/test/Unit/Porter/Provider/NoDataTypeTest.php b/test/Unit/Porter/Provider/NoDataTypeTest.php deleted file mode 100644 index e941665..0000000 --- a/test/Unit/Porter/Provider/NoDataTypeTest.php +++ /dev/null @@ -1,13 +0,0 @@ -fetch(\Mockery::mock(Connector::class))->valid()); - } -} diff --git a/test/Unit/Porter/Provider/NullFetcherTest.php b/test/Unit/Porter/Provider/NullFetcherTest.php new file mode 100644 index 0000000..49290e0 --- /dev/null +++ b/test/Unit/Porter/Provider/NullFetcherTest.php @@ -0,0 +1,13 @@ +fetch(\Mockery::mock(Connector::class))->valid()); + } +} diff --git a/test/Unit/Porter/Provider/ProviderTest.php b/test/Unit/Porter/Provider/ProviderTest.php index 7227829..70510bc 100644 --- a/test/Unit/Porter/Provider/ProviderTest.php +++ b/test/Unit/Porter/Provider/ProviderTest.php @@ -6,9 +6,9 @@ use ScriptFUSION\Porter\Cache\CacheOperationProhibitedException; use ScriptFUSION\Porter\Connector\CachingConnector; use ScriptFUSION\Porter\Connector\Connector; -use ScriptFUSION\Porter\Provider\IncompatibleDataTypeException; +use ScriptFUSION\Porter\Provider\ForeignDataFetcherException; use ScriptFUSION\Porter\Provider\Provider; -use ScriptFUSION\Porter\Provider\ProviderDataType; +use ScriptFUSION\Porter\Provider\ProviderDataFetcher; final class ProviderTest extends \PHPUnit_Framework_TestCase { @@ -45,7 +45,7 @@ public function testFetch() self::assertSame( 'foo', $this->provider->fetch( - \Mockery::mock(ProviderDataType::class) + \Mockery::mock(ProviderDataFetcher::class) ->shouldReceive('fetch') ->with($this->connector) ->andReturn('foo') @@ -59,10 +59,10 @@ public function testFetch() public function testFetchForeignProvider() { - $this->setExpectedException(IncompatibleDataTypeException::class); + $this->setExpectedException(ForeignDataFetcherException::class); $this->provider->fetch( - \Mockery::mock(ProviderDataType::class) + \Mockery::mock(ProviderDataFetcher::class) ->shouldReceive('getProviderName') ->andReturn('foo') ->getMock()