Esempio n. 1
0
use Interop\Container\ContainerInterface;
use mindplay\unbox\Container;
use mindplay\unbox\ContainerException;
use mindplay\unbox\NotFoundException;
require __DIR__ . '/header.php';
// TESTS:
test('Container: can create components', function () {
    $c = new Container();
    $c->register('a', function () {
        return 'A';
    });
    $c->register('b', function () {
        return 'B';
    });
    ok($c->has('a'), 'first component defined');
    ok($c->has('b'), 'second component defined');
    ok(!$c->has('c'), 'no third component defined');
    $c->set('c', 'C');
    ok($c->has('c'), 'third component initialized directly');
    ok(!$c->isActive('a'), 'first component not yet active');
    ok(!$c->isActive('b'), 'first component not yet active');
    eq($c->get('a'), 'A', 'returns the first component');
    ok($c->isActive('a'), 'first component activated');
    ok(!$c->isActive('b'), 'second component still not active');
    eq($c->get('b'), 'B', 'returns the second component');
    ok($c->isActive('b'), 'second component activated');
    $c->register('x', Foo::class);
    ok($c->get('x') instanceof Foo, 'registers a default factory function when $func is a name');
    $c->register(Foo::class);
    ok($c->get(Foo::class) instanceof Foo, 'registers a default factory function when $func is NULL');