public function testUpdateActivityDescription() { $activityList = $this->getMockBuilder('Oro\\Bundle\\ActivityListBundle\\Entity\\ActivityList')->getMock(); $event = $this->getMockBuilder('Oro\\Bundle\\EmailBundle\\Event\\EmailBodyAdded')->disableOriginalConstructor()->getMock(); $email = $this->getMockBuilder('Oro\\Bundle\\EmailBundle\\Entity\\Email')->disableOriginalConstructor()->getMock(); $event->expects($this->exactly(1))->method('getEmail')->will($this->returnValue($email)); $this->chainProvider->expects($this->exactly(1))->method('getUpdatedActivityList')->with($this->identicalTo($email), $this->identicalTo($this->entityManager))->will($this->returnValue($activityList)); $this->entityManager->expects($this->exactly(1))->method('persist')->with($activityList); $this->listener->updateActivityDescription($event); }
public function testOnBuildMetadata() { $entity = Note::ENTITY_NAME; $alias = 'oro_bundle_notebundle_entity_note'; $calls = 1; $config = $this->getMock('Oro\\Bundle\\EntityConfigBundle\\Config\\ConfigInterface'); $this->configProvider->expects($this->any())->method('getConfig')->willReturn($config); $config->expects($this->exactly($calls))->method('get')->willReturn('label'); $fieldMetadataOptions = ['display' => true, 'activity' => true, 'type' => $entity, 'field_name' => $alias, 'is_collection' => true, 'template' => 'OroActivityListBundle:Merge:value.html.twig', 'label' => 'Items', 'merge_modes' => [MergeModes::NOTES_UNITE, MergeModes::NOTES_REPLACE]]; $fieldMetadata = new FieldMetadata($fieldMetadataOptions); $this->entityMetadata->expects($this->at(1))->method('addFieldMetadata')->with($this->equalTo($fieldMetadata)); $this->activityListChainProvider->expects($this->exactly($calls))->method('isApplicableTarget')->willReturn(true); $event = new EntityMetadataEvent($this->entityMetadata); $this->listener->onBuildMetadata($event); }
public function setUp() { $this->activityListProvider = $this->getMockBuilder('Oro\\Bundle\\ActivityListBundle\\Provider\\ActivityListChainProvider')->disableOriginalConstructor()->getMock(); $this->doctrine = $this->getMockBuilder('Doctrine\\Common\\Persistence\\ManagerRegistry')->disableOriginalConstructor()->getMock(); $this->activityListProvider->expects($this->any())->method('getTargetEntityClasses')->will($this->returnValue(['Oro\\Bundle\\ActivityListBundle\\Tests\\Unit\\Placeholder\\Fixture\\TestTarget'])); $this->doctrineHelper = $this->getMockBuilder('\\Oro\\Bundle\\EntityBundle\\ORM\\DoctrineHelper')->setMethods(['isNewEntity', 'isManageableEntity'])->setConstructorArgs([$this->doctrine])->getMock(); $this->doctrineHelper->expects($this->any())->method('isNewEntity')->will($this->returnCallback(function ($entity) { if (method_exists($entity, 'getId')) { return !(bool) $entity->getId(); } throw new \RuntimeException('Something wrong'); })); $this->doctrineHelper->expects($this->any())->method('isManageableEntity')->willReturnCallback(function ($entity) { return !$entity instanceof TestNonManagedTarget; }); $this->configureConfigProvider(); $this->filter = new PlaceholderFilter($this->activityListProvider, $this->doctrine, $this->doctrineHelper, $this->configProvider); }
public function testExecuteActionWithoutAttribute() { $options = ['email' => '$.email', 'target_entity' => '$.target_entity']; $fakeContext = ['fake', 'things', 'are', 'here']; $this->contextAccessor->expects($this->at(0))->method('getValue')->with($this->equalTo($fakeContext), $this->equalTo('$.email'))->will($this->returnValue($email = new Email())); $this->contextAccessor->expects($this->at(1))->method('getValue')->with($this->equalTo($fakeContext), $this->equalTo('$.target_entity'))->will($this->returnValue($target = new User())); $this->contextAccessor->expects($this->never())->method('setValue'); $this->activityListChainProvider->expects($this->any())->method('getActivityListEntitiesByActivityEntity')->with($this->equalTo($email))->will($this->returnValue($list = new ActivityList())); $this->entityManager->expects($this->once())->method('persist')->with($this->equalTo($list)); $this->emailActivityManager->expects($this->once())->method('addAssociation')->with($this->equalTo($email), $this->equalTo($target))->will($this->returnValue(true)); $this->action->initialize($options); $this->action->execute($fakeContext); }
public function testIsApplicable() { $repo = $this->getMockBuilder('Oro\\Bundle\\ActivityListBundle\\Entity\\Repository\\ActivityListRepository')->disableOriginalConstructor()->getMock(); $this->doctrine->expects($this->any())->method('getRepository')->will($this->returnValue($repo)); $repo->expects($this->any())->method('getRecordsCountForTargetClassAndId')->with('Oro\\Bundle\\ActivityListBundle\\Tests\\Unit\\Placeholder\\Fixture\\TestNonActiveTarget', 123)->willReturn(10); $entity = new TestNonActiveTarget(123); $entityClass = get_class($entity); $activityClass = 'Test\\Activity'; $config = new Config(new EntityConfigId('activity', $entityClass)); $config->set(ActivityScope::SHOW_ON_PAGE, '\\Oro\\Bundle\\ActivityBundle\\EntityConfig\\ActivityScope::VIEW_PAGE'); $config->set('activities', [$activityClass]); $this->configManager->expects($this->once())->method('hasConfig')->with($entityClass)->willReturn(true); $this->configManager->expects($this->once())->method('getEntityConfig')->with('activity', $entityClass)->willReturn($config); $this->activityListProvider->expects($this->once())->method('getSupportedActivities')->willReturn([$activityClass]); $this->activityListProvider->expects($this->exactly(1))->method('isApplicableTarget')->with($entityClass, $activityClass)->willReturn(true); $this->assertTrue($this->filter->isApplicable($entity, ActivityScope::VIEW_PAGE)); }