Nelmio\Alice\Definition\MethodCall\MethodCallWithReferenceTest::testCanCreateANewInstanceWithArguments PHP Method

testCanCreateANewInstanceWithArguments() public method

    public function testCanCreateANewInstanceWithArguments()
    {
        $caller = new InstantiatedReference('user.factory');
        $method = 'setUsername';
        $arguments = [new \stdClass()];
        $definition = new MethodCallWithReference($caller, $method, $arguments);
        $newArguments = [$arg0 = new \stdClass()];
        $newDefinition = $definition->withArguments($newArguments);
        // Mutate argument before reading it
        $arg0->foo = 'bar';
        $this->assertInstanceOf(MethodCallWithReference::class, $newDefinition);
        $this->assertEquals($caller, $definition->getCaller());
        $this->assertEquals($method, $definition->getMethod());
        $this->assertEquals($arguments, $definition->getArguments());
        $this->assertEquals($caller, $newDefinition->getCaller());
        $this->assertEquals($method, $newDefinition->getMethod());
        $this->assertEquals([StdClassFactory::create(['foo' => 'bar'])], $newDefinition->getArguments());
    }