protected function setUp() { $this->doctrineHelper = $this->getMockBuilder('Oro\\Bundle\\EntityBundle\\ORM\\DoctrineHelper')->disableOriginalConstructor()->getMock(); $this->doctrineHelper->expects($this->any())->method('isManageableEntity')->willReturn(true); $this->ownershipMetadataProvider = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Owner\\Metadata\\OwnershipMetadataProvider')->disableOriginalConstructor()->getMock(); $this->businessUnitManager = $this->getMockBuilder('Oro\\Bundle\\OrganizationBundle\\Entity\\Manager\\BusinessUnitManager')->disableOriginalConstructor()->getMock(); $this->businessUnitManager->expects($this->any())->method('getBusinessUnitIds')->will($this->returnValue(array(1, 2))); $organization = $this->getMockBuilder('Oro\\Bundle\\OrganizationBundle\\Entity\\Organization')->disableOriginalConstructor()->getMock(); $this->organizations = array($organization); $businessUnit = $this->getMockBuilder('Oro\\Bundle\\OrganizationBundle\\Entity\\BusinessUnit')->disableOriginalConstructor()->getMock(); $businessUnit->expects($this->any())->method('getOrganization')->will($this->returnValue($organization)); $this->businessUnits = new ArrayCollection(array($businessUnit)); $this->user = $this->getMockBuilder('Oro\\Bundle\\UserBundle\\Entity\\User')->disableOriginalConstructor()->getMock(); $this->user->expects($this->any())->method('getId')->will($this->returnValue(1)); $this->user->expects($this->any())->method('getBusinessUnits')->will($this->returnValue($this->businessUnits)); $this->organization = new Organization(); $this->organization->setId(1); $this->entityClassName = get_class($this->user); $this->securityFacade = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\SecurityFacade')->disableOriginalConstructor()->getMock(); $config = $this->getMockBuilder('Symfony\\Component\\Form\\FormConfigInterface')->disableOriginalConstructor()->getMock(); $config->expects($this->any())->method('getCompound')->will($this->returnValue(true)); $config->expects($this->any())->method('getDataClass')->will($this->returnValue($this->entityClassName)); $this->builder = $this->getMockBuilder('Symfony\\Component\\Form\\FormBuilder')->disableOriginalConstructor()->getMock(); $this->builder->expects($this->any())->method('getFormConfig')->will($this->returnValue($config)); $this->builder->expects($this->any())->method('getOption')->with('required')->will($this->returnValue(true)); $this->fieldName = 'owner'; $aclVoter = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Acl\\Voter\\AclVoter')->disableOriginalConstructor()->getMock(); $treeProvider = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Owner\\OwnerTreeProvider')->disableOriginalConstructor()->getMock(); $this->entityOwnerAccessor = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Owner\\EntityOwnerAccessor')->disableOriginalConstructor()->getMock(); $this->entityOwnerAccessor->expects($this->any())->method('getOwner')->willReturnCallback(function ($entity) { return $entity->getOwner(); }); $this->extension = new OwnerFormExtension($this->doctrineHelper, $this->ownershipMetadataProvider, $this->businessUnitManager, $this->securityFacade, $aclVoter, $treeProvider, $this->entityOwnerAccessor); }
public function preSetData() { $entityConfigId = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\Id\\EntityConfigId')->disableOriginalConstructor()->getMock(); $user = new User(); $user->setId(1); $organization = new Organization(); $organization->setId(3); $userConfig = new Config($entityConfigId); $userConfig->setValues(["owner_type" => "USER", "owner_field_name" => "owner", "owner_column_name" => "owner_id", "organization_field_name" => "organization", "organization_column_name" => "organization_id"]); $buConfig = new Config($entityConfigId); $buConfig->setValues(["owner_type" => "BUSINESS_UNIT", "owner_field_name" => "owner", "owner_column_name" => "owner_id", "organization_field_name" => "organization", "organization_column_name" => "organization_id"]); $organizationConfig = new Config($entityConfigId); $organizationConfig->setValues(["owner_type" => "ORGANIZATION", "owner_field_name" => "owner", "owner_column_name" => "owner_id"]); return ['OwnershipType User with UsernamePasswordOrganizationToken' => [new UsernamePasswordOrganizationToken($user, 'admin', 'key', $organization), $userConfig, ['owner' => $user, 'organization' => $organization]], 'OwnershipType BusinessUnit with UsernamePasswordOrganizationToken' => [new UsernamePasswordOrganizationToken($user, 'admin', 'key', $organization), $buConfig, ['organization' => $organization]], 'OwnershipType Organization with UsernamePasswordOrganizationToken' => [new UsernamePasswordOrganizationToken($user, 'admin', 'key', $organization), $organizationConfig, ['owner' => $organization]], 'OwnershipType User with UsernamePasswordToken' => [new UsernamePasswordToken($user, 'admin', 'key'), $userConfig, ['owner' => $user]], 'OwnershipType BusinessUnit with UsernamePasswordToken' => [new UsernamePasswordToken($user, 'admin', 'key'), $buConfig, []], 'OwnershipType Organization with UsernamePasswordToken' => [new UsernamePasswordToken($user, 'admin', 'key'), $organizationConfig, []]]; }
/** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @return array */ public function dataProvider() { $organization1 = new Organization(); $organization1->setId(1); $organization2 = new Organization(); $organization2->setId(2); $bu11 = new BusinessUnit(); $bu11->setId(1); $bu11->setOrganization($organization1); $bu22 = new BusinessUnit(); $bu22->setId(2); $bu22->setOrganization($organization2); $newUser = new User(); $newUser->setId(2); $newUser->setOrganizations(new ArrayCollection([$organization1])); $newUser->setBusinessUnits(new ArrayCollection([$bu11])); return ['BASIC_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::BASIC_LEVEL, $organization1, true], 'BASIC_LEVEL access level, another user' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::BASIC_LEVEL, $organization1, false], 'SYSTEM_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::SYSTEM_LEVEL, $organization1, true], 'SYSTEM_LEVEL access level, another user' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::SYSTEM_LEVEL, $organization1, true], 'GLOBAL_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::GLOBAL_LEVEL, $organization1, true], 'GLOBAL_LEVEL access level, another user, same org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::GLOBAL_LEVEL, $organization1, true], 'GLOBAL_LEVEL access level, another user, different org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::GLOBAL_LEVEL, $organization2, false], 'LOCAL_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::LOCAL_LEVEL, $organization1, true], 'LOCAL_LEVEL access level, another user, same org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::LOCAL_LEVEL, $organization1, true], 'LOCAL_LEVEL access level, another user, different org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::LOCAL_LEVEL, $organization2, false], 'DEEP_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::DEEP_LEVEL, $organization1, true], 'DEEP_LEVEL access level, another user, same org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::DEEP_LEVEL, $organization1, true], 'DEEP_LEVEL access level, another user, different org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::DEEP_LEVEL, $organization2, false]]; }