diff --git a/tests/CompileInjectorTest.php b/tests/CompileInjectorTest.php index 813bf686..a805df7d 100644 --- a/tests/CompileInjectorTest.php +++ b/tests/CompileInjectorTest.php @@ -106,4 +106,16 @@ public function testCompileFaillureLog(): void $log = (string) file_get_contents($logFile); $this->assertStringContainsString('Error', $log); } + + /** @requires PHP >= 7.4 */ + public function testSeirialzeInAarray() + { + $app = new FakeApp(new CompileInjector(__DIR__ . '/tmp', new FakeLazyModule())); + $serializedApp = serialize($app); + $unserializedApp = unserialize($serializedApp); + + assert($unserializedApp instanceof FakeApp); + + $instance = $unserializedApp->i->getInstance(FakeCarInterface::class); + $this->assertInstanceOf(FakeCar::class, $instance); } } diff --git a/tests/Fake/FakeApp.php b/tests/Fake/FakeApp.php new file mode 100644 index 00000000..edc16789 --- /dev/null +++ b/tests/Fake/FakeApp.php @@ -0,0 +1,27 @@ +injector = $injector; + } + + public function __serialize(): array + { + return ['injector' => $this->injector]; + } + + public function __unserialize(array $data) + { + $this->injector = $data['injector']; + } +}