Inheritance: implements Nelmio\Alice\Definition\ValueInterface
Exemple #1
0
 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());
 }
Exemple #3
0
 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());
 }