diff --git a/src/ContainerBuilder.php b/src/ContainerBuilder.php index 92d72bf4..7a7285c7 100644 --- a/src/ContainerBuilder.php +++ b/src/ContainerBuilder.php @@ -247,7 +247,7 @@ public function writeProxiesToFile(bool $writeToFile, string $proxyDirectory = n 'The proxy directory must be specified if you want to write proxies on disk' ); } - $this->proxyDirectory = $proxyDirectory; + $this->proxyDirectory = $writeToFile ? $proxyDirectory : null; return $this; } diff --git a/tests/UnitTest/ContainerBuilderTest.php b/tests/UnitTest/ContainerBuilderTest.php index 1a863cb7..c88062e7 100644 --- a/tests/UnitTest/ContainerBuilderTest.php +++ b/tests/UnitTest/ContainerBuilderTest.php @@ -21,18 +21,19 @@ class ContainerBuilderTest extends TestCase { use EasyMock; + + private static function getProperty(object $object, string $propertyName) + { + return (function (string $propertyName) { + return $this->$propertyName; + })->bindTo($object, $object)($propertyName); + } /** * @test */ public function should_configure_for_development_by_default() { - $getProperty = function (object $object, string $propertyName) { - return (function (string $propertyName) { - return $this->$propertyName; - })->bindTo($object, $object)($propertyName); - }; - // Make the ContainerBuilder use our fake class to catch constructor parameters $builder = new ContainerBuilder(FakeContainer::class); /** @var FakeContainer $container */ @@ -41,7 +42,7 @@ public function should_configure_for_development_by_default() // Not compiled $this->assertNotInstanceOf(CompiledContainer::class, $container); // Proxies evaluated in memory - $this->assertNull($getProperty($container->proxyFactory, 'proxyDirectory')); + $this->assertNull(self::getProperty($container->proxyFactory, 'proxyDirectory')); } /** @@ -248,4 +249,28 @@ public function should_throw_if_modified_after_building_a_container() $builder->addDefinitions([]); } + + /** + * @test + */ + public function should_create_proxies() + { + $builder = new ContainerBuilder(FakeContainer::class); + $builder->writeProxiesToFile(true, 'somedir'); + $container = $builder->build(); + + $this->assertSame('somedir', self::getProperty($container->proxyFactory, 'proxyDirectory')); + } + + /** + * @test + */ + public function should_not_create_proxies() + { + $builder = new ContainerBuilder(FakeContainer::class); + $builder->writeProxiesToFile(false, 'somedir'); + $container = $builder->build(); + + $this->assertNull(self::getProperty($container->proxyFactory, 'proxyDirectory')); + } }