public function testAddMergeExtensions()
{
$animal1 = new Cat();
$animal2 = new Cat();
$callback = function () {
};
$extensions = new ExtensionFieldMap(Animal::CLASS);
$extension = new ExtensionField(Animal::CLASS, 'animal', 100, $callback, $callback, $callback);
$animal1->setDeclawed(true);
$extensions->add($extension, $animal1);
$this->assertSame($animal1, $extensions->offsetGet($extension));
$animal2->setDeclawed(false);
$extensions->add($extension, $animal2);
$this->assertTrue($animal2->getDeclawed());
$this->assertSame($animal2, $extensions->offsetGet($extension));
}