public function testIsImmutable() { $injectedValue = new MutableValue('v0'); $value = new ParameterValue($injectedValue); // Mutate injected value $injectedValue->setValue('v1'); // Mutate returned value $value->getValue()->setValue('v2'); $this->assertNotSame(new MutableValue('v0'), $value->getValue()); }
public function testIsImmutable() { $quantifier = new MutableValue('q0'); $elementValue = new MutableValue('e0'); $value = new DynamicArrayValue($quantifier, $elementValue); // Mutate injected values $quantifier->setValue('q1'); $elementValue->setValue('e1'); // Mutate returned values $value->getQuantifier()->setValue('q2'); $value->getElement()->setValue('e2'); $this->assertEquals(new MutableValue('q0'), $value->getQuantifier()); $this->assertEquals(new MutableValue('e0'), $value->getElement()); $this->assertEquals([new MutableValue('q0'), new MutableValue('e0')], $value->getValue()); }
public function testIsImmutable() { $quantifier = new MutableValue('q0'); $firstMember = new MutableValue('f0'); $secondMember = new MutableValue('s0'); $value = new OptionalValue($quantifier, $firstMember, $secondMember); // Mutate injected values $quantifier->setValue('q1'); $firstMember->setValue('f1'); $secondMember->setValue('s1'); // Mutate returned values $value->getQuantifier()->setValue('q2'); $value->getFirstMember()->setValue('f2'); $value->getSecondMember()->setValue('s2'); $this->assertNotSame(new MutableValue('q0'), $value->getQuantifier()); $this->assertNotSame(new MutableValue('f0'), $value->getFirstMember()); $this->assertNotSame(new MutableValue('s0'), $value->getSecondMember()); $this->assertNotSame([new MutableValue('q0'), new MutableValue('f0'), new MutableValue('s0')], $value->getValue()); }