MOON
Server: Apache
System: Linux server1.studioinfinity.com.br 2.6.32-954.3.5.lve1.4.90.el6.x86_64 #1 SMP Tue Feb 21 12:26:30 UTC 2023 x86_64
User: artinside (517)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/artinside/public_html/finance/vendor/league/plates/test/unit/container.spec.php
<?php

use League\Plates\Util\Container;

describe('Container', function() {
    it('can add values', function() {
        $c = new Container();
        $c->add('a', 1);
        expect($c->get('a'))->equal(1);
    });
    it('can add services', function() {
        $c = new Container();
        $c->add('a', function() { return 1; });
        expect($c->get('a'))->equal(1);
    });
    it('can access the container in services', function() {
        $c = new Container();
        $c->add('a', 1);
        $c->add('b', function($c) { return $c->get('a') + 1; });
        expect($c->get('b'))->equal(2);
    });
    it('can see if an entry exists', function() {
        $c = new Container();
        expect($c->has('a'))->false;
        $c->add('a', 1);
        expect($c->has('a'))->true;
    });
    it('can wrap services', function() {
        $c = new Container();
        $c->add('a', 1);
        $c->wrap('a', function($a) {
            return $a + 1;
        });
        $c->wrap('a', function($a, $c) {
            return $a * $c->get('b');
        });
        $c->add('b', 2);
        expect($c->get('a'))->equal(4);
    });
    it('caches services', function() {
        $c = new Container();
        $c->add('a', function() { return new stdClass(); });
        expect($c->get('a'))->equal($c->get('a'));
    });
    it('does not freeze values', function() {
        $c = new Container();
        $c->add('a', 1);
        $c->get('a');
        $c->add('a', 2);
        expect($c->get('a'))->equal(2);
    });
});