/** * @covers CollectionType\Map\MapAbstract::removeKeyAll * @covers CollectionType\Map\MapAbstract::containsKeyAll * @covers CollectionType\Map\MapAbstract::validateKeyType * @covers CollectionType\Map\MapAbstract::validateValueType * @covers CollectionType\Map\MapAbstract::__construct */ public function testRemoveValueAllWhenMapContainsAllElementsForReturnedValues() { $otherMap = new MapAbstractFake($this->dummyKeyType->reveal(), $this->dummyValueType->reveal()); $key1 = '1'; $value1 = '1'; $this->dummyKeyType->isValid($key1)->willReturn(true); $this->dummyValueType->isValid($value1)->willReturn(true); $this->map->put($key1, $value1); $otherMap->put($key1, $value1); $key2 = '2'; $value2 = '2'; $this->dummyKeyType->isValid($key2)->willReturn(true); $this->dummyValueType->isValid($value2)->willReturn(true); $this->map->put($key2, $value2); $otherMap->put($key2, $value2); $key3 = '3'; $value3 = '3'; $this->dummyKeyType->isValid($key3)->willReturn(true); $this->dummyValueType->isValid($value3)->willReturn(true); $this->map->put($key3, $value3); $this->map->removeKeyAll($otherMap); $result = $this->map->values(); $this->assertEquals(['3'], $result); }