File tree Expand file tree Collapse file tree 2 files changed +56
-0
lines changed
tests/Functional/Kernel/CustomDependencyInjectionHandler Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Okapi \CodeTransformer \Tests \Functional \Kernel \CustomDependencyInjectionHandler ;
4+
5+ use Okapi \CodeTransformer \Tests \Functional \Cache \CachedFileAndDestructor \Target \StringClass ;
6+ use Okapi \CodeTransformer \Tests \Functional \Cache \CachedFileAndDestructor \Transformer \StringTransformer ;
7+ use Okapi \CodeTransformer \Tests \Functional \Kernel \CustomDependencyInjectionHandler \Kernel \CustomDependencyInjectionKernel ;
8+ use Okapi \CodeTransformer \Tests \Util ;
9+ use PHPUnit \Framework \Attributes \RunTestsInSeparateProcesses ;
10+ use PHPUnit \Framework \TestCase ;
11+
12+ #[RunTestsInSeparateProcesses]
13+ class CustomDependencyInjectionHandlerTest extends TestCase
14+ {
15+ /**
16+ * @see StringTransformer::transform()
17+ */
18+ public function testCustomDependencyInjectionHandler (): void
19+ {
20+ Util::clearCache ();
21+ CustomDependencyInjectionKernel::init ();
22+
23+ $ class = new StringClass ();
24+
25+ $ this ->assertSame (
26+ 'Hello from Code Transformer! ' ,
27+ $ class ->test (),
28+ );
29+ }
30+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Okapi \CodeTransformer \Tests \Functional \Kernel \CustomDependencyInjectionHandler \Kernel ;
4+
5+ use Closure ;
6+ use Okapi \CodeTransformer \CodeTransformerKernel ;
7+ use Okapi \CodeTransformer \Tests \Functional \Cache \CachedFileAndDestructor \Transformer \StringTransformer ;
8+ use Okapi \CodeTransformer \Tests \Util ;
9+
10+ class CustomDependencyInjectionKernel extends CodeTransformerKernel
11+ {
12+ protected ?string $ cacheDir = Util::CACHE_DIR ;
13+
14+ protected function dependencyInjectionHandler (): ?Closure
15+ {
16+ return function (string $ transformerClass ) {
17+ echo 'Generating transformer instance: ' . $ transformerClass . PHP_EOL ;
18+
19+ return new $ transformerClass ();
20+ };
21+ }
22+
23+ protected array $ transformers = [
24+ StringTransformer::class,
25+ ];
26+ }
You can’t perform that action at this time.
0 commit comments