Esempio n. 1
0
 /**
  *
  */
 function test_invokable_closure()
 {
     $resolver = new Resolver();
     $plugin = new Config();
     $resolver->configure('foo', function ($bar) {
         return $bar;
     });
     $resolver->configure('bar', $plugin);
     $this->assertEquals($plugin, $resolver->invokable('foo'));
 }
Esempio n. 2
0
 /**
  *
  */
 function test_gem_factory()
 {
     $resolver = new Resolver();
     $resolver->configure('bar', function () {
         return function () {
             return 'baz';
         };
     });
     $resolver->configure('factory', new Plugin('bar'));
     $this->assertEquals('baz', $resolver->gem(new Factory('foo')));
 }
Esempio n. 3
0
 /**
  *
  */
 function test_composite_service_container()
 {
     $plugin = new Container(['foo' => 'bar']);
     $resolver = new Resolver();
     $resolver->configure('bar', Config::class);
     $this->assertInstanceOf(Config::class, $resolver->composite($plugin, 'foo'));
 }
Esempio n. 4
0
 /**
  *
  */
 function test_resolver_gem_with_plugin_name()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', Config::class);
     $plugin = $resolver->gem(new Scope('foo', []));
     $this->assertInstanceOf(Config::class, $plugin);
 }
Esempio n. 5
0
 /**
  *
  */
 function test_plugin_array_service_name_not_the_same()
 {
     $resolver = new Resolver();
     $resolver->configure('layout', ['Mvc5\\Layout', 'template' => 'foo']);
     $layout = $resolver->pluginArray('layout');
     $this->assertEquals('foo', $layout->template());
 }
Esempio n. 6
0
 /**
  *
  */
 function test_provide_with_merge()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', new Plugin(Model::class, ['a' => new Value('a'), 'b' => new Value('b')]));
     $config = new Plugin('foo', ['a' => new Value('a1')]);
     $this->assertEquals(new Model('a1', 'b', 'c'), $resolver->gem($config, ['c' => 'c']));
 }
Esempio n. 7
0
 /**
  *
  */
 function test_callback_no_callback_strict_config_exists()
 {
     $resolver = new Resolver();
     $resolver->setStrict(true);
     $resolver->configure(Config::class, Config::class);
     $this->assertTrue($resolver->strict());
     $this->assertInstanceOf(Config::class, $resolver->callback(Config::class));
 }
Esempio n. 8
0
 /**
  *
  */
 function test_solve_resolver()
 {
     $resolver = new Resolver();
     $resolver->configure('event\\model', Event::class);
     $resolver->events(['service\\resolver' => [function () {
         return 'bar';
     }]]);
     $this->assertEquals('bar', $resolver->solve('foo'));
 }
Esempio n. 9
0
 /**
  *
  */
 function test_resolvable_recursion_exception()
 {
     $resolver = new Resolver();
     $resolver->configure('event\\model', Event::class);
     $resolver->events(['service\\resolver' => [function () {
         throw new \RuntimeException();
     }]]);
     $this->setExpectedException('RuntimeException');
     $resolver->resolvable(new Unresolvable());
 }
Esempio n. 10
0
 /**
  *
  */
 function test_build()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', Config::class);
     $this->assertInstanceOf(Config::class, $resolver->build(['foo']));
 }
Esempio n. 11
0
 /**
  *
  */
 function test_parent()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', 'bar');
     $this->assertEquals('bar', $resolver->parent('foo'));
 }
Esempio n. 12
0
 /**
  *
  */
 function test_merge_param_name()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', 'bar');
     $parent = new Plugin(null);
     $config = new Plugin(null, [], [], 'foo');
     $result = new Plugin(null, [], [], 'foo');
     $this->assertEquals($result, $resolver->merge($parent, $config));
 }
Esempio n. 13
0
 /**
  *
  */
 function test_create()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', Config::class);
     $this->assertInstanceOf(Config::class, $resolver->create('foo'));
 }
Esempio n. 14
0
 /**
  *
  */
 function test_make_with_callback_param()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', Config::class);
     $this->assertInstanceOf(Autowire::class, $resolver->make(Autowire::class, [Arg::EVENT => new CallEvent()]));
 }
Esempio n. 15
0
 /**
  *
  */
 function test_plugin_with_recursive_service_array_config()
 {
     $resolver = new Resolver();
     $resolver->configure('stdClass', ['stdClass']);
     $this->assertEquals(new \stdClass(), $resolver->plugin('stdClass'));
 }
Esempio n. 16
0
 /**
  *
  */
 function test_gem_plug()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', 'bar');
     $this->assertEquals('bar', $resolver->gem(new Plug('foo')));
 }
Esempio n. 17
0
 /**
  * $this->resolve($method)
  */
 function test_hydrate_call_function_with_args_and_current_object()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', 'bar');
     $function = new Invoke(function (Hydrate $object, $name) {
         $object->name($name);
         return $object;
     });
     $plugin = new Hydrator(null, [['$object', $function, 'name' => new Plug('foo')]]);
     $object = $resolver->hydrate($plugin, new Hydrate());
     $this->assertInstanceOf(Hydrate::class, $object);
     $this->assertEquals('bar', $object->name());
 }
Esempio n. 18
0
 /**
  *
  */
 function test_child()
 {
     $resolver = new Resolver();
     $resolver->configure('bar', new Plugin(Config::class));
     $this->assertInstanceOf(Config::class, $resolver->child(new Child('foo', 'bar')));
 }