public function testWorkflowName() { $this->assertNull($this->workflowItem->getWorkflowName()); $value = 'example_workflow'; $this->workflowItem->setWorkflowName($value); $this->assertEquals($value, $this->workflowItem->getWorkflowName()); }
/** * @expectedException \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * @expectedExceptionMessage Managed entities for workflow item not found */ public function testValidateManagedEntitiesNotFound() { $workflowItem = new WorkflowItem(); $workflowItem->setWorkflowName('test_workflow'); $this->workflowManager->expects($this->once())->method('isAllManagedEntitiesSpecified')->with($workflowItem)->will($this->returnValue(false)); $this->validator->validate($workflowItem); }
/** * @param Workflow $workflow * @param string $currentStepName * @return WorkflowItem */ protected function createWorkflowItem(Workflow $workflow, $currentStepName = null) { $result = new WorkflowItem(); $result->setCurrentStepName($currentStepName); $result->setWorkflowName($workflow->getName()); return $result; }
/** * @expectedException \Oro\Bundle\WorkflowBundle\Exception\WorkflowException * @expectedExceptionMessage Cannot find workflow definition "test_workflow" */ public function testPrePersistFails() { $entity = new WorkflowItem(); $entity->setWorkflowName('test_workflow'); $workflowDefinition = new WorkflowDefinition(); $workflowDefinition->setName('test_workflow'); $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->setMethods(array('find'))->disableOriginalConstructor()->getMock(); $em->expects($this->once())->method('find')->with('OroWorkflowBundle:WorkflowDefinition', 'test_workflow')->will($this->returnValue(null)); $this->subscriber->prePersist(new LifecycleEventArgs($entity, $em)); }
/** * @expectedException \Oro\Bundle\WorkflowBundle\Exception\WorkflowException * @expectedExceptionMessage Value of attribute "attribute" must be an object */ public function testUpdateAclIdentitiesNotAnObjectException() { $workflowName = 'test_workflow'; $step = new WorkflowStep(); $step->setName('step'); $attribute = new Attribute(); $attribute->setName('attribute')->setOption('class', 'TestEntity'); $entityAcl = new WorkflowEntityAcl(); $entityAcl->setStep($step)->setAttribute($attribute->getName()); $definition = new WorkflowDefinition(); $definition->setName($workflowName)->setSteps(array($step))->setEntityAcls(array($entityAcl)); $this->setWorkflow($workflowName, array($attribute)); $workflowItem = new WorkflowItem(); $workflowItem->setWorkflowName($workflowName)->setDefinition($definition)->setCurrentStep($step); $workflowItem->getData()->set($attribute->getName(), 'not_an_object'); $this->manager->updateAclIdentities($workflowItem); }
public function testOnFlush() { $entity1 = new WorkflowItem(); $entity1->setWorkflowName('workflow_1'); $entity1->setSerializedData('_old_serialized_data'); $data1 = new WorkflowData(); $data1->foo = 'foo'; $entity1->setData($data1); $entity2 = new WorkflowItem(); $entity2->setWorkflowName('workflow_2'); $data2 = new WorkflowData(); $data2->bar = 'bar'; $entity2->setData($data2); $entity3 = new \stdClass(); $entity4 = new WorkflowItem(); $entity4->setWorkflowName('workflow_4'); $data4 = new WorkflowData(); $data4->foo = 'baz'; $entity4->setData($data4); $entity5 = new WorkflowItem(); $data5 = new WorkflowData(); // Leave this data not modified $entity5->setData($data5); $entity6 = new \stdClass(); $expectedSerializedData1 = 'serialized_data_1'; $expectedSerializedData2 = 'serialized_data_2'; $expectedSerializedData4 = 'serialized_data_4'; $this->serializer->expects($this->never())->method('deserialize'); $this->serializer->expects($this->at(0))->method('setWorkflowName')->with($entity1->getWorkflowName()); $this->serializer->expects($this->at(1))->method('serialize')->with($data1, 'json')->will($this->returnValue($expectedSerializedData1)); $this->serializer->expects($this->at(2))->method('setWorkflowName')->with($entity2->getWorkflowName()); $this->serializer->expects($this->at(3))->method('serialize')->with($data2, 'json')->will($this->returnValue($expectedSerializedData2)); $this->serializer->expects($this->at(4))->method('setWorkflowName')->with($entity4->getWorkflowName()); $this->serializer->expects($this->at(5))->method('serialize')->with($data4, 'json')->will($this->returnValue($expectedSerializedData4)); $this->subscriber->onFlush(new OnFlushEventArgs($this->getOnFlushEntityManagerMock(array(array('getScheduledEntityInsertions', array(), $this->returnValue(array($entity1, $entity2, $entity3))), array('propertyChanged', array($entity1, 'serializedData', $entity1->getSerializedData(), $expectedSerializedData1)), array('propertyChanged', array($entity2, 'serializedData', $entity2->getSerializedData(), $expectedSerializedData2)), array('getScheduledEntityUpdates', array(), $this->returnValue(array($entity4, $entity5, $entity6))), array('propertyChanged', array($entity4, 'serializedData', $entity4->getSerializedData(), $expectedSerializedData4)))))); $this->assertAttributeEquals($expectedSerializedData1, 'serializedData', $entity1); $this->assertAttributeEquals($expectedSerializedData2, 'serializedData', $entity2); $this->assertAttributeEquals($expectedSerializedData4, 'serializedData', $entity4); $this->assertAttributeEquals(null, 'serializedData', $entity5); }
/** * Create workflow item. * * @param object $entity * @param array $data * @return WorkflowItem */ public function createWorkflowItem($entity, array $data = array()) { $entityAttributeName = $this->attributeManager->getEntityAttribute()->getName(); $workflowItem = new WorkflowItem(); $workflowItem->setWorkflowName($this->getName())->setEntity($entity); if (array_key_exists($entityAttributeName, $data)) { unset($data[$entityAttributeName]); } $workflowItem->getData()->set($entityAttributeName, $entity)->setFieldsMapping($this->getAttributesMapping())->add($data); $workflowItem->setDefinition($this->getDefinition()); return $workflowItem; }
/** * @param string $workflowName * @return WorkflowItem */ protected function createWorkflowItem($workflowName = self::TEST_WORKFLOW_NAME) { $workflowItem = new WorkflowItem(); $workflowItem->setWorkflowName($workflowName); return $workflowItem; }
/** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testOnFlushAndPostFlush() { $definition = $this->getMockBuilder('Oro\\Bundle\\WorkflowBundle\\Entity\\WorkflowDefinition')->disableOriginalConstructor()->getMock(); $definition->expects($this->any())->method('getEntityAttributeName')->will($this->returnValue('entity')); $entity1 = new WorkflowItem(); $entity1->setDefinition($definition); $entity1->setWorkflowName('workflow_1'); $entity1->setSerializedData('_old_serialized_data'); $data1 = new WorkflowData(); $data1->foo = 'foo'; $entity1->setData($data1); $entity2 = new WorkflowItem(); $entity2->setDefinition($definition); $entity2->setWorkflowName('workflow_2'); $data2 = new WorkflowData(); $data2->bar = 'bar'; $entity2->setData($data2); $entity3 = new \stdClass(); $entity4 = new WorkflowItem(); $entity4->setDefinition($definition); $entity4->setWorkflowName('workflow_4'); $data4 = new WorkflowData(); $data4->foo = 'baz'; $entity4->setData($data4); $entity5 = new WorkflowItem(); $entity5->setDefinition($definition); $data5 = new WorkflowData(); // Leave this data not modified $entity5->setData($data5); $entity6 = new \stdClass(); $expectedSerializedData1 = 'serialized_data_1'; $expectedSerializedData2 = 'serialized_data_2'; $expectedSerializedData4 = 'serialized_data_4'; $this->serializer->expects($this->never())->method('deserialize'); $this->serializer->expects($this->at(0))->method('setWorkflowName')->with($entity1->getWorkflowName()); $this->serializer->expects($this->at(1))->method('serialize')->with($this->isInstanceOf('Oro\\Bundle\\WorkflowBundle\\Model\\WorkflowData'), 'json')->will($this->returnCallback(function ($data) use($data1, $expectedSerializedData1) { $this->assertEquals($data1, $data); return $expectedSerializedData1; })); $this->serializer->expects($this->at(2))->method('setWorkflowName')->with($entity2->getWorkflowName()); $this->serializer->expects($this->at(3))->method('serialize')->with($this->isInstanceOf('Oro\\Bundle\\WorkflowBundle\\Model\\WorkflowData'), 'json')->will($this->returnCallback(function ($data) use($data2, $expectedSerializedData2) { $this->assertEquals($data2, $data); return $expectedSerializedData2; })); $this->serializer->expects($this->at(4))->method('setWorkflowName')->with($entity4->getWorkflowName()); $this->serializer->expects($this->at(5))->method('serialize')->with($this->isInstanceOf('Oro\\Bundle\\WorkflowBundle\\Model\\WorkflowData'), 'json')->will($this->returnCallback(function ($data) use($data4, $expectedSerializedData4) { $this->assertEquals($data4, $data); return $expectedSerializedData4; })); $entityManager = $this->getPostFlushEntityManagerMock(array(array('getScheduledEntityInsertions', array(), $this->returnValue(array($entity1, $entity2, $entity3))), array('getScheduledEntityUpdates', array(), $this->returnValue(array($entity4, $entity5, $entity6))))); $this->listener->onFlush(new OnFlushEventArgs($entityManager)); $this->listener->postFlush(new PostFlushEventArgs($entityManager)); $this->assertAttributeEquals($expectedSerializedData1, 'serializedData', $entity1); $this->assertAttributeEquals($expectedSerializedData2, 'serializedData', $entity2); $this->assertAttributeEquals($expectedSerializedData4, 'serializedData', $entity4); $this->assertAttributeEquals(null, 'serializedData', $entity5); $this->assertFalse($entity1->getData()->isModified()); $this->assertFalse($entity2->getData()->isModified()); $this->assertFalse($entity4->getData()->isModified()); $this->assertFalse($entity5->getData()->isModified()); }
/** * Create workflow item. * * @param array $data * @return WorkflowItem * @throws \LogicException */ public function createWorkflowItem(array $data = array()) { $workflowItem = new WorkflowItem(); $workflowItem->setWorkflowName($this->getName()); $workflowItem->getData()->add($data); return $workflowItem; }