Example #1
0
 /**
  * @param Builder $builder
  * @dataProvider containerBuilderProvider
  */
 public function testScanWithCallable(Builder $builder)
 {
     $builder->define(Fixture\OneScalarArgument::class)->using(static function () {
         return new Fixture\OneScalarArgument('baz');
     })->build();
     $builder->blacklist(Fixture\InvalidParam::class);
     $builder->blacklist(Fixture\InvalidDefinition::class);
     $builder->blacklist(Fixture\OneScalarArgument::class);
     $builder->blacklist(Fixture\OneArrayArgument::class);
     $builder->blacklist(Fixture\InjectionPointChild::class);
     $builder->blacklist(Fixture\InjectionPointParent::class);
     $builder->addDirectories(array(__DIR__ . '/Fixture/'));
     $builder->addNamespaces(array('zdi\\Tests\\Fixture\\'), function (DefinitionBuilder $builder) {
         $builder->factory();
     });
     $container = $builder->build();
     $this->defaultFactoryAssertions($container, Fixture\NoArguments::class);
     $this->defaultFactoryAssertions($container, Fixture\OneObjectArgument::class);
     $this->defaultFactoryAssertions($container, Fixture\OneOptionalObjectArgument::class);
     $this->assertFalse($container->has(Fixture\InvalidParam::class));
     $this->assertSame('baz', $container->get(Fixture\OneScalarArgument::class)->getString());
 }