Kraken\_Module\Util\Factory\FactoryTest::testCaseSimpleFactory_CreatesObjectUsingFactoryMethod PHP Method

testCaseSimpleFactory_CreatesObjectUsingFactoryMethod() public method

    public function testCaseSimpleFactory_CreatesObjectUsingFactoryMethod()
    {
        $factory = $this->createSimpleFactory();
        $c1 = new StdClass();
        $c2 = new StdClass();
        $factory->bindParam('param1', $c1);
        $factory->bindParam('param2', function () use($c2) {
            return $c2;
        });
        $factory->define(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($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);
    }