public function testPostFlush() { $serializedData = 'serializedData'; $processDefinition = new ProcessDefinition(); $processDefinition->setRelatedEntity(self::TEST_CLASS); $processTrigger = new ProcessTrigger(); $processTrigger->setDefinition($processDefinition); $processData = new ProcessData(); $processData->set('test', 'value'); $processJob = new ProcessJob(); $processJob->setProcessTrigger($processTrigger)->setData($processData); $unitOfWork = $this->getMockBuilder('Doctrine\\ORM\\UnitOfWork')->disableOriginalConstructor()->getMock(); $unitOfWork->expects($this->at(0))->method('getScheduledEntityInsertions')->will($this->returnValue(array($processJob))); $unitOfWork->expects($this->at(1))->method('getScheduledEntityUpdates')->will($this->returnValue(array($processJob))); $entityId = 1; $entityHash = ProcessJob::generateEntityHash(self::TEST_CLASS, $entityId); $this->serializer->expects($this->exactly(2))->method('serialize')->with($processJob->getData(), 'json', array('processJob' => $processJob))->will($this->returnCallback(function () use($processJob, $entityId, $serializedData) { $processJob->setEntityId($entityId); return $serializedData; })); $entityManager = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock(); $entityManager->expects($this->any())->method('getUnitOfWork')->will($this->returnValue($unitOfWork)); $entityManager->expects($this->once())->method('flush'); $this->listener->onFlush(new OnFlushEventArgs($entityManager)); $this->listener->postFlush(new PostFlushEventArgs($entityManager)); $this->assertEquals($serializedData, $processJob->getSerializedData()); $this->assertEquals($entityId, $processJob->getEntityId()); $this->assertEquals($entityHash, $processJob->getEntityHash()); $this->assertFalse($processJob->getData()->isModified()); }
/** * @param string $event * @return ProcessJob */ protected function createProcessJob($event) { $definition = new ProcessDefinition(); $definition->setRelatedEntity('Test\\Entity'); $trigger = new ProcessTrigger(); $trigger->setDefinition($definition)->setEvent($event); $job = new ProcessJob(); $job->setProcessTrigger($trigger); return $job; }
/** * @param array $data */ protected function prepareRegistryForBuild(array $data) { // generate triggers $triggers = array(); foreach ($data as $entityClass => $events) { $definition = new ProcessDefinition(); $definition->setRelatedEntity($entityClass); foreach ($events as $event) { $trigger = new ProcessTrigger(); $trigger->setDefinition($definition)->setEvent($event); $triggers[] = $trigger; } } // set mocks $triggerClass = 'OroWorkflowBundle:ProcessTrigger'; $repository = $this->getMockBuilder('Oro\\Bundle\\WorkflowBundle\\Entity\\Repository\\ProcessTriggerRepository')->disableOriginalConstructor()->getMock(); $repository->expects($this->any())->method('findAllWithDefinitions')->will($this->returnValue($triggers)); $entityManager = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock(); $entityManager->expects($this->any())->method('getRepository')->with($triggerClass)->will($this->returnValue($repository)); $this->registry->expects($this->any())->method('getManagerForClass')->with($triggerClass)->will($this->returnValue($entityManager)); }
public function testSetGetEntityIdAndHash() { $entityClass = 'Test\\Entity'; $entityId = 12; $definition = new ProcessDefinition(); $definition->setRelatedEntity($entityClass); $trigger = new ProcessTrigger(); $trigger->setDefinition($definition); $this->entity->setProcessTrigger($trigger); $this->assertNull($this->entity->getEntityId()); $this->assertNull($this->entity->getEntityHash()); $this->entity->setEntityId($entityId); $this->assertEquals($entityId, $this->entity->getEntityId()); $this->assertEquals(ProcessJob::generateEntityHash($entityClass, $entityId), $this->entity->getEntityHash()); $this->entity->setEntityId(null); $this->assertNull($this->entity->getEntityId()); $this->assertNull($this->entity->getEntityHash()); }