From 144e57e9f90bf4d2e6cc35b8a358e2810131dea7 Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Wed, 12 Oct 2022 14:18:25 +0200 Subject: [PATCH] Add unit tests for ClassNameFinder rules --- .../Rule/FinderRuleWithModulePrefixTest.php | 41 +++++++++++++++++++ .../FinderRuleWithoutModulePrefixTest.php | 41 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 tests/Unit/Framework/ClassResolver/ClassNameFinder/Rule/FinderRuleWithModulePrefixTest.php create mode 100644 tests/Unit/Framework/ClassResolver/ClassNameFinder/Rule/FinderRuleWithoutModulePrefixTest.php diff --git a/tests/Unit/Framework/ClassResolver/ClassNameFinder/Rule/FinderRuleWithModulePrefixTest.php b/tests/Unit/Framework/ClassResolver/ClassNameFinder/Rule/FinderRuleWithModulePrefixTest.php new file mode 100644 index 00000000..6d3865b8 --- /dev/null +++ b/tests/Unit/Framework/ClassResolver/ClassNameFinder/Rule/FinderRuleWithModulePrefixTest.php @@ -0,0 +1,41 @@ +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); + } +} diff --git a/tests/Unit/Framework/ClassResolver/ClassNameFinder/Rule/FinderRuleWithoutModulePrefixTest.php b/tests/Unit/Framework/ClassResolver/ClassNameFinder/Rule/FinderRuleWithoutModulePrefixTest.php new file mode 100644 index 00000000..b89044af --- /dev/null +++ b/tests/Unit/Framework/ClassResolver/ClassNameFinder/Rule/FinderRuleWithoutModulePrefixTest.php @@ -0,0 +1,41 @@ +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); + } +}