Skip to content

Commit

Permalink
Add unit tests for ClassNameFinder rules
Browse files Browse the repository at this point in the history
  • Loading branch information
Chemaclass committed Oct 12, 2022
1 parent 5c3cfb5 commit 144e57e
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php

declare(strict_types=1);

namespace GacelaTest\Unit\Framework\ClassResolver\ClassNameFinder\Rule;

use Gacela\Framework\ClassResolver\ClassInfo;
use Gacela\Framework\ClassResolver\ClassNameFinder\Rule\FinderRuleWithModulePrefix;
use PHPUnit\Framework\TestCase;

final class FinderRuleWithModulePrefixTest extends TestCase
{
private FinderRuleWithModulePrefix $rule;

protected function setUp(): void
{
$this->rule = new FinderRuleWithModulePrefix();
}

public function test_build_without_project_namespace(): void
{
$projectNamespace = '';
$resolvableType = 'Factory';
$classInfo = ClassInfo::from($this);

$actual = $this->rule->buildClassCandidate($projectNamespace, $resolvableType, $classInfo);

self::assertSame('\Rule\RuleFactory', $actual);
}

public function test_build_with_project_namespace(): void
{
$projectNamespace = 'App';
$resolvableType = 'Factory';
$classInfo = ClassInfo::from($this);

$actual = $this->rule->buildClassCandidate($projectNamespace, $resolvableType, $classInfo);

self::assertSame('\App\Rule\RuleFactory', $actual);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php

declare(strict_types=1);

namespace GacelaTest\Unit\Framework\ClassResolver\ClassNameFinder\Rule;

use Gacela\Framework\ClassResolver\ClassInfo;
use Gacela\Framework\ClassResolver\ClassNameFinder\Rule\FinderRuleWithoutModulePrefix;
use PHPUnit\Framework\TestCase;

final class FinderRuleWithoutModulePrefixTest extends TestCase
{
private FinderRuleWithoutModulePrefix $rule;

protected function setUp(): void
{
$this->rule = new FinderRuleWithoutModulePrefix();
}

public function test_build_without_project_namespace(): void
{
$projectNamespace = '';
$resolvableType = 'Factory';
$classInfo = ClassInfo::from($this);

$actual = $this->rule->buildClassCandidate($projectNamespace, $resolvableType, $classInfo);

self::assertSame('\Rule\Factory', $actual);
}

public function test_build_with_project_namespace(): void
{
$projectNamespace = 'App';
$resolvableType = 'Factory';
$classInfo = ClassInfo::from($this);

$actual = $this->rule->buildClassCandidate($projectNamespace, $resolvableType, $classInfo);

self::assertSame('\App\Rule\Factory', $actual);
}
}

0 comments on commit 144e57e

Please sign in to comment.