/**
  * @covers       CollectionType\Map\MapAbstract::containsKeyAll
  * @covers       CollectionType\Map\MapAbstract::__construct
  * @covers       CollectionType\Common\KeyTypeTrait::validateKeyType
  * @covers       CollectionType\Common\ValueTypeTrait::validateValueType
  * @covers       CollectionType\Common\Util\UtilTrait::diffArrays
  */
 public function testContainsKeyAllWhenMapContainsKeyAllWithDifferentValuesElements()
 {
     $otherMap = new MapAbstractFake($this->dummyKeyType->reveal(), $this->dummyValueType->reveal());
     $key1 = '1';
     $valueA = 'A';
     $valueB = 'B';
     $this->dummyKeyType->isValid($key1)->willReturn(true);
     $this->dummyValueType->isValid($valueA)->willReturn(true);
     $this->dummyValueType->isValid($valueB)->willReturn(true);
     $this->map->put($key1, $valueA);
     $otherMap->put($key1, $valueB);
     $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);
     $otherMap->put($key3, $value3);
     $result = $this->map->containsKeyAll($otherMap);
     $this->assertTrue($result);
 }