Ejemplo n.º 1
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']));
 }
Ejemplo n.º 2
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);
 }
Ejemplo n.º 3
0
 /**
  *
  */
 function test_gem_filter()
 {
     $resolver = new Resolver();
     $this->assertEquals('foo', $resolver->gem(new Filter('foo', [function ($foo) {
         return $foo;
     }])));
 }
Ejemplo n.º 4
0
 /**
  *
  */
 function test_gem_copy()
 {
     $resolver = new Resolver();
     $object = new \stdClass();
     $copy = $resolver->gem(new Copy($object));
     $this->assertEquals($object, $copy);
     $this->assertFalse($object === $copy);
 }
Ejemplo n.º 5
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')));
 }
Ejemplo n.º 6
0
 /**
  *
  */
 function test_gem_invokable_merge()
 {
     $resolver = new Resolver();
     $invokable = new Invokable(new Call(new Invoke(function ($foo, $bar, $baz) {
         return $foo . $bar . $baz;
     })), ['s']);
     $callable = $resolver->gem($invokable);
     $this->assertEquals('foobars', $callable('foo', 'bar'));
     $this->assertEquals('foobars', call_user_func($callable, 'foo', 'bar'));
     $this->assertEquals('foobars', call_user_func_array($callable, ['foo', 'bar']));
     $this->assertEquals('foobars', $resolver->call($callable, ['foo', 'bar']));
 }
Ejemplo n.º 7
0
 /**
  *
  */
 function test_gem_shared_null()
 {
     $resolver = new Resolver();
     $this->assertEquals(null, $resolver->gem(new Shared('foo', new Args(null))));
     $this->assertTrue(false === $resolver->has('foo'));
 }
Ejemplo n.º 8
0
 /**
  *
  */
 function test_gem_args()
 {
     $resolver = new Resolver();
     $this->assertEquals(['foo' => new Config()], $resolver->gem(new Args(['foo' => new Plugin(Config::class)])));
 }
Ejemplo n.º 9
0
 /**
  *
  */
 function test_end()
 {
     $resolver = new Resolver();
     $plugin = new End(new Call('@phpversion'), new Plugin(Config::class, [['foo' => 'bar']]));
     $this->assertEquals(new Config(['foo' => 'bar']), $resolver->gem($plugin));
 }
Ejemplo n.º 10
0
 /**
  *
  */
 function test_gem_file_include()
 {
     $resolver = new Resolver();
     $plugin = new FileInclude(__DIR__ . '/../Model/config.inc.php');
     $this->assertEquals(['foo' => 'bar'], $resolver->gem($plugin));
 }
Ejemplo n.º 11
0
 /**
  *
  */
 function test_gem_call_not_named()
 {
     $resolver = new Resolver();
     $call = new Call(CallObject::class, ['bar']);
     $this->assertEquals('foo', $resolver->gem($call, ['foo']));
 }
Ejemplo n.º 12
0
 /**
  *
  */
 function test_gem_calls()
 {
     $resolver = new Resolver();
     $this->assertEquals(new Config(['foo' => 'bar']), $resolver->gem(new Calls(new Plugin(Config::class), ['#foo' => 'bar'])));
 }
Ejemplo n.º 13
0
 /**
  *
  */
 function test_gem_value()
 {
     $resolver = new Resolver();
     $this->assertEquals('foo', $resolver->gem(new Value('foo')));
 }
Ejemplo n.º 14
0
 /**
  *
  */
 function test_gem_plug()
 {
     $resolver = new Resolver();
     $resolver->configure('foo', 'bar');
     $this->assertEquals('bar', $resolver->gem(new Plug('foo')));
 }
Ejemplo n.º 15
0
 /**
  *
  */
 function test_gem_config()
 {
     $resolver = new Resolver();
     $resolver->config(['foo' => 'bar']);
     $this->assertEquals(['foo' => 'bar'], $resolver->gem(new Config()));
 }
Ejemplo n.º 16
0
 /**
  *
  */
 function test_gem_param()
 {
     $resolver = new Resolver();
     $resolver->config(['foo' => 'bar']);
     $this->assertEquals('bar', $resolver->gem(new Param('foo')));
 }
Ejemplo n.º 17
0
 /**
  *
  */
 function test_gem_child()
 {
     $resolver = new Resolver();
     $resolver->configure('bar', new Plugin(Config::class));
     $this->assertInstanceOf(Config::class, $resolver->gem(new Child('foo', 'bar')));
 }
Ejemplo n.º 18
0
 /**
  *
  */
 function test_gem_unresolvable()
 {
     $resolver = new Resolver();
     $this->setExpectedException(RuntimeException::class);
     $resolver->gem(new Unresolvable());
 }
Ejemplo n.º 19
0
 /**
  *
  */
 function test_gem_provide_no_provider()
 {
     $resolver = new Resolver();
     $this->setExpectedException(\RuntimeException::class, 'Unresolvable plugin: bar');
     $resolver->gem(new Provide('bar'));
 }