Static Loader class was refactored into AntiTempmailRepo class.

Added LoaderInterface.
Added fromLoader creator for Storage.
This commit is contained in:
ErickSkrauch
2016-04-29 01:53:51 +03:00
parent b2b8a0438f
commit 7b82e48cdd
7 changed files with 150 additions and 85 deletions

View File

@@ -0,0 +1,45 @@
<?php
namespace Ely\TempMailBuster\Loader;
class AntiTempmailRepoTest extends \PHPUnit_Framework_TestCase
{
public function testLoad()
{
$loader = new AntiTempmailRepo();
$this->assertTrue(is_array($loader->load()));
}
public function testLoadExceptionWrongPaths()
{
$this->expectException('Exception');
$loader = new AntiTempmailRepoWithWrongPaths();
$loader->load();
}
public function testLoadExceptionInvalidJson()
{
$this->expectException('Exception');
$loader = new AntiTempmailRepoWithInvalidJson();
$loader->load();
}
}
class AntiTempmailRepoWithWrongPaths extends AntiTempmailRepo
{
protected function getPaths()
{
return [
__DIR__ . '/virtual_reality.json',
];
}
}
class AntiTempmailRepoWithInvalidJson extends AntiTempmailRepo
{
protected function getPaths()
{
return [
__DIR__ . '/AntiTempmailRepoTest.php',
];
}
}

View File

@@ -1,47 +0,0 @@
<?php
namespace Ely\TempMailBuster;
class LoaderTest extends \PHPUnit_Framework_TestCase
{
public function testGetPaths()
{
$this->assertTrue(is_array(Loader::getPaths()));
}
public function testLoad()
{
$this->assertTrue(is_array(Loader::load()));
}
public function testLoadExceptionWrongPaths()
{
$this->expectException('Exception');
LoaderWithWrongPaths::load();
}
public function testLoadExceptionInvalidJson()
{
$this->expectException('Exception');
LoaderWithInvalidJson::load();
}
}
class LoaderWithWrongPaths extends Loader
{
public static function getPaths()
{
return [
__DIR__ . '/virtual_reality.json',
];
}
}
class LoaderWithInvalidJson extends Loader
{
public static function getPaths()
{
return [
__DIR__ . '/LoaderTest.php',
];
}
}

View File

@@ -26,4 +26,17 @@ class StorageTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($storage, $storage->appendItems('item2'));
$this->assertEquals(['item1', 'item2'], $storage->getItems());
}
public function testFromLoader()
{
$this->assertInstanceOf('Ely\TempmailBuster\Storage', Storage::fromLoader(new SimpleLoader()));
}
}
class SimpleLoader implements LoaderInterface
{
public function load()
{
return ['foo', 'bar'];
}
}