public function setUp() { $platform = new MySQL(); $this->driver = $this->getMockBuilder(Driver::class)->disableOriginalConstructor()->setMethods(['getPlatform', 'query'])->getMockForAbstractClass(); $this->driver->expects($this->any())->method('getPlatform')->will($this->returnValue($platform)); $driver = new AnnotationMetadataDriver(new AnnotationReader()); $this->entityManager = new EntityManager($this->driver, $driver); $this->entityManager->register('TestEntity', TestEntity::class); $this->entityManager->register('RelatedEntity', RelatedEntity::class); $this->entityManager->register('DeepRelationEntity', DeepRelationEntity::class); $this->entityManager->register('HasOneRelationEntity', HasOneRelationEntity::class); $this->entityManager->register('ManyManyRelationEntity', ManyManyRelationEntity::class); $this->entityManager->register('MultipleRelationEntity', MultipleRelationEntity::class); $this->entityManager->register('HasManyRelationEntity', HasManyRelationEntity::class); $this->entityManager->register('HasManyTargetEntity', HasManyTargetEntity::class); }
public function testThatDeleteIsNotCalledForNewRecords() { $entity = $this->entityManager->get('TestEntity'); $object = $entity->create(); $this->driver->expects($this->never())->method('query'); $entity->delete($object); }
private function expectQueries(array $queries) { $statements = []; $queryMatchers = []; foreach ($queries as $query) { if (!is_array($query)) { $query = [$query, []]; } if (!isset($query[1])) { $query[1] = []; } $queryMatchers[] = [$this->equalTo($query[0])]; $statements[] = $this->createMockStatement($query[1]); } $driverExpect = $this->driver->expects($this->exactly(count($queries)))->method('query'); call_user_func_array([$driverExpect, 'withConsecutive'], $queryMatchers)->will(call_user_func_array([$this, 'onConsecutiveCalls'], $statements)); }
/** * Executes pending queries */ public function commit() { $this->driver->inTransaction(function (Driver $driver, array $pendingQueries) { /** @var PendingQuery[] $pendingQueries */ foreach ($pendingQueries as $item) { $item->execute(); } }, $this->pendingQueries); $this->pendingQueries = []; }
/** * EntityFinder constructor. * * @param EntityManager $manager * @param Driver $driver * @param Entity $entity */ public function __construct(EntityManager $manager, Driver $driver, Entity $entity) { $this->manager = $manager; $this->entity = $entity; $this->queryBuilder = $driver->getQueryBuilder(); }