public function testGetIds() { $objects = []; $object = new ExtendedDataObject(); $objects[] = $object->setId(4); $object = new ExtendedDataObject(); $objects[] = $object->setId(7); $this->assertEquals([4, 7], ExtendedDataObject::getIds($objects)); }
public function testFlush() { $unitOfWork = new UnitOfWork($this->objectMapper); $toSave = new ExtendedDataObject(); $toSave->setId(5); $toSaveAll = [new OtherDataObject(), new OtherDataObject()]; $unitOfWork->save($toSave)->saveAll($toSaveAll); $toDelete = new ExtendedDataObject(); $toDelete->setId(7); $toDeleteAll = [new OtherDataObject(), new OtherDataObject()]; $unitOfWork->delete($toDelete)->deleteAll($toDeleteAll); $this->connection->expects($this->once())->method('beginTransaction'); $this->connection->expects($this->once())->method('commit'); $this->objectMapper->expects($this->once())->method('save')->with($toSave); $this->objectMapper->expects($this->once())->method('saveAll')->with($toSaveAll); $this->objectMapper->expects($this->once())->method('delete')->with($toDelete); $this->objectMapper->expects($this->once())->method('deleteAll')->with($toDeleteAll); $unitOfWork->flush(); }
public function testFindAll() { $this->cache->expects($this->exactly(2))->method('contains')->will($this->onConsecutiveCalls(false, true)); $this->cache->expects($this->once())->method('save'); $this->cache->expects($this->once())->method('fetch')->willReturn([['id' => 1, 'myColumn' => 'My Value'], ['id' => 2, 'myColumn' => 'My Value 2']]); $repository = $this->getRepository(); $objects = []; $object = new ExtendedDataObject(); $objects[] = $object->setId(1)->setMyColumn('My Value'); $object = new ExtendedDataObject(); $objects[] = $object->setId(2)->setMyColumn('My Value 2'); $repository->expects($this->once())->method('fetchAll')->willReturn($objects); $objects = $repository->findAll(); $this->assertCount(2, $objects); $this->assertInstanceOf(ExtendedDataObject::class, $objects[0]); /** @var ExtendedDataObject[] $objects */ $objects = $repository->findAll(); $this->assertCount(2, $objects); $this->assertInstanceOf(ExtendedDataObject::class, $objects[0]); $this->assertEquals('My Value', $objects[0]->getMyColumn()); }
public function testDeleteAllEvents() { $firedEvents = ['DataObject.beforeDelete' => 0, 'DataObject.ExtendedDataObject.beforeDelete' => 0, 'DataObject.afterDelete' => 0, 'DataObject.ExtendedDataObject.afterDelete' => 0]; $this->dispatcher->addListener('DataObject.beforeDelete', function (DataObjectEventInterface $event) use(&$firedEvents) { $firedEvents['DataObject.beforeDelete']++; }); $this->dispatcher->addListener('DataObject.ExtendedDataObject.beforeDelete', function (DataObjectEventInterface $event) use(&$firedEvents) { $firedEvents['DataObject.ExtendedDataObject.beforeDelete']++; }); $this->dispatcher->addListener('DataObject.afterDelete', function (DataObjectEventInterface $event) use(&$firedEvents) { $firedEvents['DataObject.afterDelete']++; }); $this->dispatcher->addListener('DataObject.ExtendedDataObject.afterDelete', function (DataObjectEventInterface $event) use(&$firedEvents) { $firedEvents['DataObject.ExtendedDataObject.afterDelete']++; }); $repo = $this->getRepository(); $dataObjects = []; $dataObject = new ExtendedDataObject(); $dataObjects[] = $dataObject->setId('12345'); $dataObject = new ExtendedDataObject(); $dataObjects[] = $dataObject->setId('6789'); $repo->deleteAll($dataObjects); $this->assertEquals(2, $firedEvents['DataObject.beforeDelete']); $this->assertEquals(2, $firedEvents['DataObject.ExtendedDataObject.beforeDelete']); $this->assertEquals(2, $firedEvents['DataObject.afterDelete']); $this->assertEquals(2, $firedEvents['DataObject.ExtendedDataObject.afterDelete']); }
public function testLoadManyToMany() { $objects = []; $object = new ExtendedDataObject(); $objects[] = $object->setId(123); $object = new ExtendedDataObject(); $objects[] = $object->setId(456); $mockRepo = $this->getMockBuilder(ExtendedDataObjectRepository::class)->disableOriginalConstructor()->getMock(); $return = ['789' => new OtherDataObject()]; $mockRepo->expects($this->once())->method('loadManyToMany')->with($objects, OtherDataObject::class, 'link_table')->willReturn($return); $loaded = $this->getCorma($mockRepo)->loadManyToMany($objects, OtherDataObject::class, 'link_table'); $this->assertEquals($return, $loaded); }