Nelmio\Alice\ObjectBagTest::testImmutableMerge PHP Method

testImmutableMerge() public method

public testImmutableMerge ( )
    public function testImmutableMerge()
    {
        $std1 = new \stdClass();
        $std1->id = 1;
        $std2 = new \stdClass();
        $std2->id = 2;
        $std3 = new \stdClass();
        $std3->id = 3;
        $std4 = new Dummy();
        $object1 = new CompleteObject(new SimpleObject('foo', $std1));
        $object2 = new CompleteObject(new SimpleObject('bar', $std2));
        $object3 = new CompleteObject(new SimpleObject('bar', $std3));
        $object4 = new CompleteObject(new SimpleObject('baz', $std4));
        $bag1 = (new ObjectBag())->with($object1)->with($object2);
        $bag2 = (new ObjectBag())->with($object3)->with($object4);
        $bag = $bag1->mergeWith($bag2);
        $this->assertInstanceOf(ObjectBag::class, $bag);
        $this->assertSameObjects(['foo' => $object1, 'bar' => $object2], $bag1);
        $this->assertSameObjects(['bar' => $object3, 'baz' => $object4], $bag2);
        $this->assertSameObjects(['foo' => $object1, 'bar' => $object3, 'baz' => $object4], $bag);
    }