Kraken\_Module\Util\Factory\FactoryTest::testCaseFactory_CreatesObjectUsingFactoryMethod PHP Метод

testCaseFactory_CreatesObjectUsingFactoryMethod() публичный Метод

    public function testCaseFactory_CreatesObjectUsingFactoryMethod()
    {
        $factory = $this->createFactory();
        $c1 = new StdClass();
        $c2 = new StdClass();
        $factory->bindParam('param1', $c1);
        $factory->bindParam('param2', function () use($c2) {
            return $c2;
        });
        $factory->define('Mock', function () use($factory) {
            $std = new StdClass();
            $std->param1 = $factory->getParam('param1');
            $std->param2 = $factory->getParam('param2');
            $std->args = func_get_args();
            return $std;
        });
        $std = $factory->create('Mock', $params = [2, null, 'ABC']);
        $this->assertInstanceOf(StdClass::class, $std);
        $this->assertSame($std->param1, $c1);
        $this->assertSame($std->param2, $c2);
        $this->assertSame($std->args, $params);
        unset($factory);
    }