public function testMerge()
 {
     $result = new OperationResult();
     $result->reportEntity('FooEntity', 1, OperationResult::TYPE_ENTITY_CREATED);
     $result->reportEntity('FooEntity', 2, OperationResult::TYPE_ENTITY_UPDATED);
     $result->reportEntity('FooEntity', 3, OperationResult::TYPE_ENTITY_REMOVED);
     $anotherResult = new OperationResult();
     $anotherResult->reportEntity('BarEntity', 4, OperationResult::TYPE_ENTITY_CREATED);
     $anotherResult->reportEntity('BarEntity', 5, OperationResult::TYPE_ENTITY_UPDATED);
     $anotherResult->reportEntity('BarEntity', 6, OperationResult::TYPE_ENTITY_REMOVED);
     $mergedResult = $result->merge($anotherResult);
     $this->assertInstanceOf(OperationResult::clazz(), $mergedResult);
     $this->assertEquals(2, count($mergedResult->getCreatedEntities()));
     $this->assertEquals(2, count($mergedResult->getUpdatedEntities()));
     $this->assertEquals(2, count($mergedResult->getRemovedEntities()));
     // making sure that original ones were not touched
     $this->assertEquals(3, count(array_merge($result->getCreatedEntities(), $result->getUpdatedEntities(), $result->getRemovedEntities())));
     $this->assertEquals(3, count(array_merge($anotherResult->getCreatedEntities(), $anotherResult->getUpdatedEntities(), $anotherResult->getRemovedEntities())));
     $this->assertTrue($result !== $mergedResult);
     $this->assertTrue($anotherResult !== $mergedResult);
 }
 public function testRemove()
 {
     $users = $this->loadSomeData();
     $result = $this->getHandler()->remove($users);
     $this->assertInstanceOf(OperationResult::clazz(), $result);
     $this->assertEquals(10, count($result->getRemovedEntities()));
     foreach ($result->getRemovedEntities() as $entry) {
         $this->assertNull(self::$em->getRepository($entry['entity_class'])->find($entry['id']));
     }
 }