public function testRemoveByEntity()
 {
     $entity = $this->createEntities();
     $query = $this->getMockBuilder('Doctrine\\ORM\\AbstractQuery')->disableOriginalConstructor()->setMethods(['execute'])->getMockForAbstractClass();
     $queryBuilder = $this->mockGetSnapshotDeleteQueryBuilderByEntitiesFunction($entity);
     $queryBuilder->expects($this->exactly(2))->method('getQuery')->will($this->returnValue($query));
     $this->repository->removeByEntity(reset($entity));
 }
 /**
  * @param SegmentSnapshotRepository $segmentSnapshotRepository
  * @param array $expectedCondition
  */
 protected function assertSegmentSnapshotHasBeenDeletedCorrectly($segmentSnapshotRepository, $expectedCondition)
 {
     $selectQB = $segmentSnapshotRepository->createQueryBuilder('snp');
     foreach ($expectedCondition as $params) {
         $suffix = uniqid();
         $selectQB->select('snp.id')->orWhere($selectQB->expr()->andX($selectQB->expr()->in('snp.segment', ':segmentIds' . $suffix), $selectQB->expr()->in('snp.entityId', ':entityIds' . $suffix)))->setParameter('segmentIds' . $suffix, $params['segmentIds'])->setParameter('entityIds' . $suffix, $params['entityIds']);
     }
     $entities = $selectQB->getQuery()->getResult();
     $this->assertEmpty($entities);
 }