Nelmio\Alice\Definition\FlagBagTest::testCanMergeTwoBagsWithoutOverridingExistingValues PHP Method

testCanMergeTwoBagsWithoutOverridingExistingValues() public method

    public function testCanMergeTwoBagsWithoutOverridingExistingValues()
    {
        $firstBag = (new FlagBag('first'))->withFlag(new ElementWithToStringFlag('first_foo', 'foo'))->withFlag(new ElementFlag('foz'));
        $secondBag = (new FlagBag('second'))->withFlag(new ElementWithToStringFlag('second_foo', 'foo'))->withFlag(new ElementFlag('baz'));
        $mergeFirstWithSecondWithOverriding = $firstBag->mergeWith($secondBag);
        $mergeFirstWithSecondWithoutOverriding = $firstBag->mergeWith($secondBag, false);
        $mergeSecondWithFirstWithOverriding = $secondBag->mergeWith($firstBag);
        $mergeSecondWithFirstWithoutOverriding = $secondBag->mergeWith($firstBag, false);
        $this->assertEquals((new FlagBag('first'))->withFlag(new ElementWithToStringFlag('first_foo', 'foo'))->withFlag(new ElementFlag('foz')), $firstBag);
        $this->assertEquals((new FlagBag('second'))->withFlag(new ElementWithToStringFlag('second_foo', 'foo'))->withFlag(new ElementFlag('baz')), $secondBag);
        $this->assertEquals((new FlagBag('first'))->withFlag(new ElementWithToStringFlag('second_foo', 'foo'))->withFlag(new ElementFlag('foz'))->withFlag(new ElementFlag('baz')), $mergeFirstWithSecondWithOverriding);
        $this->assertEquals((new FlagBag('first'))->withFlag(new ElementWithToStringFlag('first_foo', 'foo'))->withFlag(new ElementFlag('foz'))->withFlag(new ElementFlag('baz')), $mergeFirstWithSecondWithoutOverriding);
        $this->assertEquals((new FlagBag('second'))->withFlag(new ElementFlag('baz'))->withFlag(new ElementWithToStringFlag('first_foo', 'foo'))->withFlag(new ElementFlag('foz')), $mergeSecondWithFirstWithOverriding);
        $this->assertEquals((new FlagBag('second'))->withFlag(new ElementFlag('baz'))->withFlag(new ElementWithToStringFlag('second_foo', 'foo'))->withFlag(new ElementFlag('foz')), $mergeSecondWithFirstWithoutOverriding);
    }