/** * */ function test_fallback_exists() { $resolver = new Resolver(); $resolver->services([Arg::EVENT_MODEL => Event::class]); $invokable = $resolver->fallback('foo'); $this->assertInstanceOf(Event::class, $invokable); }
/** * */ function test_invokable_with_fallback() { $resolver = new Resolver(); $resolver->events(['foo' => [function () { return 'bar'; }]]); $resolver->services([Arg::EVENT_MODEL => Event::class]); $invokable = $resolver->invokable('foo'); $this->assertInstanceOf(\Closure::class, $invokable); $this->assertEquals('bar', $invokable()); }
/** * */ function test_clone_with_services_object() { $resolver = new Resolver([Arg::SERVICES => new Config()]); $clone = clone $resolver; $this->assertEquals(true, $clone == $resolver); $services = $clone->services(); $services['baz'] = 'bat'; $this->assertEquals(false, $clone == $resolver); $this->assertEquals(new Config(), $resolver->services()); $this->assertEquals(new Config(['baz' => 'bat']), $clone->services()); $this->assertEquals(null, $clone->services()['b']); $clone->config()[Arg::SERVICES]['b'] = 'b'; $this->assertEquals('b', $clone->services()['b']); $this->assertTrue($clone->services() === $clone->config()[Arg::SERVICES]); }