Skip to content

Commit

Permalink
Merge pull request #4 from mmoreram/fix/some-minor-changes
Browse files Browse the repository at this point in the history
Fix/some minor changes
  • Loading branch information
mmoreram committed Oct 18, 2014
2 parents b7ba110 + beaed85 commit 0d8ac05
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 232 deletions.
2 changes: 1 addition & 1 deletion .formatter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ header: |
* Feel free to edit as you please, and have fun.
*
* @author Marc Morera <[email protected]>
*/
*/
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
vendor
composer.phar
composer.lock
phpunit.xml
phpunit.xml
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ install: composer install --prefer-source --no-interaction
script: phpunit -c phpunit.xml.dist --coverage-text

notifications:
email: false
email: false
65 changes: 49 additions & 16 deletions Extractor.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
use Mmoreram\Extractor\Exception\ExtensionNotSupportedException;
use Mmoreram\Extractor\Exception\FileNotFoundException;
use Mmoreram\Extractor\Filesystem\Interfaces\DirectoryInterface;
use Mmoreram\Extractor\Resolver\Interfaces\ExtensionResolverInterface;
use Symfony\Component\Finder\Finder;

/**
Expand All @@ -33,26 +32,16 @@ class Extractor
*/
protected $directory;

/**
* @var ExtensionResolverInterface
*
* Extension resolver
*/
protected $extensionResolver;

/**
* Construct method
*
* @param DirectoryInterface $directory Directory
* @param ExtensionResolverInterface $extensionResolver Extension resolver
* @param DirectoryInterface $directory Directory
*/
public function __construct(
DirectoryInterface $directory,
ExtensionResolverInterface $extensionResolver
DirectoryInterface $directory
)
{
$this->directory = $directory;
$this->extensionResolver = $extensionResolver;
}

/**
Expand All @@ -76,9 +65,7 @@ public function extractFromFile($filePath)
$extension = pathinfo($filePath, PATHINFO_EXTENSION);
$this->checkDirectory();

$extractorAdapterNamespace = $this
->extensionResolver
->getAdapterNamespaceGivenExtension($extension);
$extractorAdapterNamespace = $this->getAdapterNamespaceGivenExtension($extension);

$extractorAdapter = $this
->instanceExtractorAdapter($extractorAdapterNamespace);
Expand Down Expand Up @@ -121,4 +108,50 @@ protected function checkDirectory()

return $this;
}

/**
* Return a extractor adapter namespace given an extension
*
* @param string $fileExtension File extension
*
* @return string Adapter namespace
*
* @throws ExtensionNotSupportedException Exception not found
*/
protected function getAdapterNamespaceGivenExtension($fileExtension)
{
$adapterNamespace = '\Mmoreram\Extractor\Adapter\\';

switch ($fileExtension) {

case 'zip':
$adapterNamespace .= 'ZipExtractorAdapter';
break;

case 'rar':
$adapterNamespace .= 'RarExtractorAdapter';
break;

case 'phar':
$adapterNamespace .= 'PharExtractorAdapter';
break;

case 'tar':
$adapterNamespace .= 'TarExtractorAdapter';
break;

case 'gz':
$adapterNamespace .= 'TarGzExtractorAdapter';
break;

case 'bz2':
$adapterNamespace .= 'TarBz2ExtractorAdapter';
break;

default:
throw new ExtensionNotSupportedException($fileExtension);
}

return $adapterNamespace;
}
}
69 changes: 0 additions & 69 deletions Resolver/ExtensionResolver.php

This file was deleted.

33 changes: 0 additions & 33 deletions Resolver/Interfaces/ExtensionResolverInterface.php

This file was deleted.

28 changes: 4 additions & 24 deletions tests/ExtractorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
use Mmoreram\Extractor\Exception\FileNotFoundException;
use Mmoreram\Extractor\Extractor;
use Mmoreram\Extractor\Filesystem\TemporaryDirectory;
use Mmoreram\Extractor\Resolver\ExtensionResolver;
use PHPUnit_Framework_TestCase;

/**
Expand All @@ -32,16 +31,8 @@ public function testExtractFromFile()
{
$fileName = dirname(__FILE__) . '/Adapter/Fixtures/file.phar';

$extensionResolver = $this
->getMock('\Mmoreram\Extractor\Resolver\Interfaces\ExtensionResolverInterface');

$extensionResolver
->expects($this->any())
->method('getAdapterNamespaceGivenExtension')
->will($this->returnValue('Mmoreram\Extractor\Adapter\DummyExtractorAdapter'));

$filesystem = new TemporaryDirectory();
$extractor = new Extractor($filesystem, $extensionResolver);
$extractor = new Extractor($filesystem);

$this->assertInstanceOf(
'Symfony\Component\Finder\Finder',
Expand All @@ -56,16 +47,8 @@ public function testExtractFromNonExistingFile()
{
$fileName = dirname(__FILE__) . '/Adapter/Fixtures/phar2.phar';

$extensionResolver = $this
->getMock('\Mmoreram\Extractor\Resolver\Interfaces\ExtensionResolverInterface');

$extensionResolver
->expects($this->any())
->method('getAdapterNamespaceGivenExtension')
->will($this->returnValue('Mmoreram\Extractor\Adapter\DummyExtractorAdapter'));

$filesystem = new TemporaryDirectory();
$extractor = new Extractor($filesystem, $extensionResolver);
$extractor = new Extractor($filesystem);

try {
$extractor->extractFromFile($fileName);
Expand All @@ -90,13 +73,11 @@ public function testExtractWithNotAvailableAdapter()
->method('isAvailable')
->will($this->returnValue(false));

$extensionResolver = $this
->getMock('\Mmoreram\Extractor\Resolver\Interfaces\ExtensionResolverInterface');
$filesystem = new TemporaryDirectory();

$extractor = $this
->getMockBuilder('\Mmoreram\Extractor\Extractor')
->setConstructorArgs(array($filesystem, $extensionResolver))
->setConstructorArgs(array($filesystem))
->setMethods(array('instanceExtractorAdapter'))
->getMock();

Expand All @@ -120,9 +101,8 @@ public function testExtractWithMultiExtension()
{
$fileName = dirname(__FILE__) . '/Adapter/Fixtures/file.tar.gz';

$extensionResolver = new ExtensionResolver();
$filesystem = new TemporaryDirectory();
$extractor = new Extractor($filesystem, $extensionResolver);
$extractor = new Extractor($filesystem);

try {
$extractor->extractFromFile($fileName);
Expand Down
87 changes: 0 additions & 87 deletions tests/Resolver/ExtensionResolverTest.php

This file was deleted.

0 comments on commit 0d8ac05

Please sign in to comment.