/** * */ function test_scope_exists() { $resolver = new Resolver(); $config = new Config(); $resolver->scope($config); $this->assertTrue($config === $resolver->scope()); }
/** * */ function test_plugin_closure_with_scope() { $resolver = new Resolver(); $config = new Config(); $resolver->scope($config); $this->assertEquals($config, $resolver->plugin(function () { return $this; })); }
/** * */ function test_scoped_with_object() { $config = new Config(); $resolver = new Resolver(); $resolver->scope($config); $callback = function () { return $this; }; $scoped = $resolver->scoped($callback); $this->assertInstanceOf(\Closure::class, $scoped); $this->assertTrue($config === $scoped()); }
/** * */ function test_clone_scope_object() { $resolver = new Resolver(); $resolver->scope(new Config()); $clone = clone $resolver; $this->assertTrue(is_object($clone->scope())); $this->assertTrue($clone->scope() !== $resolver->scope()); }