Skip to content

Commit e43f0d9

Browse files
committed
Added tests for "Invalid transformer type in Kernel"
1 parent aa5a3a1 commit e43f0d9

File tree

3 files changed

+39
-4
lines changed

3 files changed

+39
-4
lines changed

src/Core/Container/TransformerManager.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ private function loadTransformer(mixed $transformerClassName): void
9191
{
9292
// Check if the transformer is already loaded
9393
if (array_key_exists($transformerClassName, $this->transformerContainers)) {
94+
// @codeCoverageIgnoreStart
9495
return;
96+
// @codeCoverageIgnoreEnd
9597
}
9698

9799
// Validate the transformer
@@ -102,10 +104,6 @@ private function loadTransformer(mixed $transformerClassName): void
102104
// Instantiate the transformer
103105
if ($this->dependencyInjectionHandler) {
104106
$transformerInstance = ($this->dependencyInjectionHandler)($transformerClassName);
105-
106-
if (!($transformerInstance instanceof Transformer)) {
107-
throw new InvalidTransformerClassException($transformerClassName);
108-
}
109107
} else {
110108
try {
111109
$transformerInstance = DI::make($transformerClassName);

tests/Functional/Transformer/InvalidTransformerClass/InvalidTransformerClassTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,49 @@
33
namespace Okapi\CodeTransformer\Tests\Functional\Transformer\InvalidTransformerClass;
44

55
use Okapi\CodeTransformer\Core\Exception\Transformer\InvalidTransformerClassException;
6+
use Okapi\CodeTransformer\Core\Exception\Transformer\InvalidTransformerClassNameException;
67
use Okapi\CodeTransformer\Core\Exception\Transformer\TransformerNotFoundException;
8+
use Okapi\CodeTransformer\Tests\Functional\Transformer\InvalidTransformerClass\Kernel\InvalidTransformerTypeKernel;
79
use Okapi\CodeTransformer\Tests\Functional\Transformer\InvalidTransformerClass\Kernel\TransformerDoesNotExistKernel;
810
use Okapi\CodeTransformer\Tests\Functional\Transformer\InvalidTransformerClass\Kernel\TransformerDoesNotExtendTransformerKernel;
11+
use Okapi\CodeTransformer\Tests\Util;
912
use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
1013
use PHPUnit\Framework\TestCase;
1114

1215
#[RunTestsInSeparateProcesses]
1316
class InvalidTransformerClassTest extends TestCase
1417
{
18+
/**
19+
* @see TransformerDoesNotExistKernel
20+
*/
1521
public function testTransformerNotFound(): void
1622
{
23+
Util::clearCache();
24+
1725
$this->expectException(TransformerNotFoundException::class);
1826

1927
TransformerDoesNotExistKernel::init();
2028
}
2129

30+
/**
31+
* @see InvalidTransformerTypeKernel
32+
*/
33+
public function testInvalidTransformerType(): void
34+
{
35+
Util::clearCache();
36+
37+
$this->expectException(InvalidTransformerClassNameException::class);
38+
39+
InvalidTransformerTypeKernel::init();
40+
}
41+
42+
/**
43+
* @see TransformerDoesNotExtendTransformerKernel
44+
*/
2245
public function testTransformerDoesNotExtendTransformer(): void
2346
{
47+
Util::clearCache();
48+
2449
$this->expectException(InvalidTransformerClassException::class);
2550

2651
TransformerDoesNotExtendTransformerKernel::init();
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Okapi\CodeTransformer\Tests\Functional\Transformer\InvalidTransformerClass\Kernel;
4+
5+
use Okapi\CodeTransformer\CodeTransformerKernel;
6+
7+
class InvalidTransformerTypeKernel extends CodeTransformerKernel
8+
{
9+
protected array $transformers = [
10+
42,
11+
];
12+
}

0 commit comments

Comments
 (0)