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;
 }
Exemplo n.º 3
0
 /**
  * @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));
 }
Exemplo n.º 4
0
 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());
 }