Optimized NamespacePathMap

This commit is contained in:
Kevin Frantz
2019-01-06 14:38:28 +01:00
parent 72d0a6ba95
commit 77822b8e56
3 changed files with 91 additions and 8 deletions

View File

@@ -0,0 +1,66 @@
<?php
namespace tests\Unit\Domain\PathManagement;
use PHPUnit\Framework\TestCase;
use App\Domain\PathManagement\NamespacePathMapInterface;
use App\Domain\PathManagement\NamespacePathMap;
/**
* @author kevinfrantz
*/
class NamespacePathMapTest extends TestCase
{
const NAMESPACE = 'ABC\\DEF\GHD';
const PATH = 'abc/def/ghd';
const FOLDERS = [
'ABC',
'DEF',
'GHD',
];
/**
* @var NamespacePathMapInterface
*/
private $namespacePathMap;
public function setUp(): void
{
$this->namespacePathMap = new NamespacePathMap();
}
private function validateArray(): void
{
$folders = $this->namespacePathMap->getFolders();
foreach (self::FOLDERS as $key => $folder) {
$this->assertEquals(strtolower($folder), $folders[$key]);
}
}
private function validateGet(): void
{
$this->assertEquals(strtolower(self::NAMESPACE), $this->namespacePathMap->getNamespace());
$this->assertEquals(self::PATH, $this->namespacePathMap->getPath());
$this->validateArray();
}
public function testSetNamespace(): void
{
$this->namespacePathMap->setNamespace(self::NAMESPACE);
$this->validateGet();
}
public function testSetPath(): void
{
$this->namespacePathMap->setPath(self::PATH);
$this->validateGet();
}
public function testSetFolders(): void
{
$this->namespacePathMap->setFolders(self::FOLDERS);
$this->validateGet();
}
}