public function testMerge()
 {
     $account1 = new User();
     $account2 = new User();
     $this->setId($account1, 1);
     $this->setId($account2, 2);
     $entityMetadata = new EntityMetadata(['type' => ClassUtils::getRealClass($account1)]);
     $entityData = new EntityData($entityMetadata, [$account1, $account2]);
     $entityData->setMasterEntity($account1);
     $fieldData = new FieldData($entityData, new FieldMetadata());
     $fieldData->setMode(MergeModes::NOTES_REPLACE);
     $fieldData->setSourceEntity($account2);
     $queryBuilder = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->setMethods(['getQuery', 'getResult'])->getMock();
     $queryBuilder->expects($this->any())->method('getQuery')->will($this->returnSelf());
     $queryBuilder->expects($this->any())->method('getResult')->will($this->returnValue([new ExtendNote()]));
     $repository = $this->getMockBuilder('Oro\\Bundle\\ActivityListBundle\\Entity\\Repository\\ActivityListRepository')->disableOriginalConstructor()->setMethods(['getBaseAssociatedNotesQB', 'getActivityListQueryBuilderByActivityClass'])->getMock();
     $repository->expects($this->any())->method('getBaseAssociatedNotesQB')->willReturn($queryBuilder);
     $activityQueryBuilder = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->setMethods(['getQuery', 'getResult'])->getMock();
     $activityQueryBuilder->expects($this->any())->method('getQuery')->will($this->returnSelf());
     $activityQueryBuilder->expects($this->any())->method('getResult')->will($this->returnValue([['id' => 1, 'relatedActivityId' => 11], ['id' => 3, 'relatedActivityId' => 2]]));
     $repository->expects($this->any())->method('getActivityListQueryBuilderByActivityClass')->willReturn($activityQueryBuilder);
     $entityManager = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->setMethods(['remove'])->getMock();
     $this->doctrineHelper->expects($this->any())->method('getEntityRepository')->willReturn($repository);
     $this->doctrineHelper->expects($this->any())->method('getEntityManager')->willReturn($entityManager);
     $this->activityListManager->expects($this->once())->method('replaceActivityTargetWithPlainQuery');
     $this->strategy->merge($fieldData);
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function supports(FieldData $fieldData)
 {
     if ($fieldData->getMode() == MergeModes::UNITE) {
         return $fieldData->getMetadata()->isCollection();
     }
     return false;
 }
Example #3
0
 /**
  * Render value of merge field
  *
  * @param FieldData $fieldData
  * @param int $entityOffset
  * @return string
  */
 public function renderMergeFieldValue(FieldData $fieldData, $entityOffset)
 {
     $entity = $fieldData->getEntityData()->getEntityByOffset($entityOffset);
     $metadata = $fieldData->getMetadata();
     $value = $this->accessor->getValue($entity, $metadata);
     return $this->fieldValueRenderer->renderFieldValue($value, $metadata, $entity);
 }
Example #4
0
 /**
  * Add field merge data
  *
  * @param FieldMetadata $metadata
  * @return FieldData
  */
 protected function addNewField(FieldMetadata $metadata)
 {
     $field = new FieldData($this, $metadata);
     $this->fields[$field->getFieldName()] = $field;
     return $field;
 }
Example #5
0
 /**
  * {@inheritdoc}
  */
 public function supports(FieldData $fieldData)
 {
     return $fieldData->getMode() === MergeModes::ACTIVITY_REPLACE;
 }
Example #6
0
 public function testGetFieldName()
 {
     $fieldName = 'test';
     $this->fieldMetadata->expects($this->once())->method('getFieldName')->will($this->returnValue($fieldName));
     $this->assertEquals($fieldName, $this->fieldData->getFieldName());
 }
Example #7
0
 /**
  * {@inheritdoc}
  */
 public function supports(FieldData $fieldData)
 {
     return $fieldData->getMode() === MergeModes::NOTES_UNITE;
 }
Example #8
0
 /**
  * Add field merge data
  *
  * @param FieldMetadata $metadata
  * @return FieldData
  */
 protected function addNewField(FieldMetadata $metadata)
 {
     $field = new FieldData($this, $metadata);
     $this->fields[$field->getFieldName()] = $field;
     if ($this->getMasterEntity()) {
         $field->setSourceEntity($this->getMasterEntity());
     }
     return $field;
 }