public function testCanCreateANewInstanceWithNoArguments()
{
$caller = new InstantiatedReference('user.factory');
$method = 'setUsername';
$arguments = [new \stdClass()];
$definition = new MethodCallWithReference($caller, $method, $arguments);
$newArguments = null;
$newDefinition = $definition->withArguments($newArguments);
$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($newArguments, $newDefinition->getArguments());
}