public function testIsMutable() { $caller = new MutableMethodCall(new MutableReference(), 'mutate', [$arg0 = new \stdClass()]); $flag = new OptionalFlag(30); $definition = new OptionalMethodCall($caller, $flag); // Mutate before reading values $caller->setMethod(new DummyMethodCall('dummy')); $arg0->foo = 'bar'; // Mutate retrieved values $definition->getCaller()->setId('mutated'); $definition->getArguments()[0]->foz = 'baz'; $this->assertEquals(new MutableReference(), $definition->getCaller()); $this->assertEquals([StdClassFactory::create(['foo' => 'bar', 'foz' => 'baz'])], $definition->getArguments()); }