Nelmio\Alice\Definition\Value\OptionalValueTest::testIsImmutable PHP Method

testIsImmutable() public method

public testIsImmutable ( )
    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());
    }