/**
  * @return void
  */
 public function testDoubleField()
 {
     $website = 'website';
     $websiteValue = 15;
     $email = 'email';
     $emailValue = '*****@*****.**';
     NoSuchEntityException::doubleField($website, $websiteValue, $email, $emailValue);
     $this->assertSame("No such entity with {$website} = {$websiteValue}, {$email} = {$emailValue}", NoSuchEntityException::doubleField($website, $websiteValue, $email, $emailValue)->getMessage());
 }
 public function testSendPasswordResetLinkBadEmailOrWebsite()
 {
     $email = '*****@*****.**';
     $this->_customerRegistry->expects($this->any())->method('retrieveByEmail')->will($this->throwException(NoSuchEntityException::doubleField('email', $email, 'websiteId', 0)));
     $this->_customerModelMock->expects($this->never())->method('sendPasswordResetConfirmationEmail');
     $customerService = $this->_createService();
     try {
         $customerService->initiatePasswordReset($email, CustomerAccountServiceInterface::EMAIL_RESET, 0);
         $this->fail("Expected NoSuchEntityException not caught");
     } catch (NoSuchEntityException $nsee) {
         $this->assertSame("No such entity with email = foo@example.com, websiteId = 0", $nsee->getMessage());
     }
 }
Пример #3
0
 /**
  * Check if user who has role is allowed to access requested resources.
  *
  * @param string[] $resources
  * @param UserIdentifier $userIdentifier
  * @return bool
  */
 protected function _isUserWithRoleAllowed($resources, UserIdentifier $userIdentifier)
 {
     try {
         $role = $this->_getUserRole($userIdentifier);
         if (!$role) {
             throw NoSuchEntityException::doubleField('userId', $userIdentifier->getUserId(), 'userType', $userIdentifier->getUserType());
         }
         foreach ($resources as $resource) {
             if (!$this->_aclBuilder->getAcl()->isAllowed($role->getId(), $resource)) {
                 return false;
             }
         }
         return true;
     } catch (\Exception $e) {
         $this->_logger->logException($e);
         return false;
     }
 }
Пример #4
0
 /**
  * {@inheritdoc}
  */
 public function getDefaultGroup($storeId = null)
 {
     if ($storeId === null) {
         $storeId = $this->storeManager->getStore()->getCode();
     }
     try {
         $groupId = $this->scopeConfig->getValue(self::XML_PATH_DEFAULT_ID, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $storeId);
     } catch (\Magento\Framework\Exception\State\InitException $e) {
         throw NoSuchEntityException::singleField('storeId', $storeId);
     } catch (NoSuchEntityException $e) {
         throw NoSuchEntityException::singleField('storeId', $storeId);
     }
     try {
         return $this->groupRepository->getById($groupId);
     } catch (NoSuchEntityException $e) {
         throw NoSuchEntityException::doubleField('groupId', $groupId, 'storeId', $storeId);
     }
 }
 /**
  * {@inheritdoc}
  */
 public function getDefaultGroup($storeId = null)
 {
     if (is_null($storeId)) {
         $storeId = $this->_storeManager->getStore()->getCode();
     }
     try {
         $groupId = $this->_scopeConfig->getValue(CustomerGroupModel::XML_PATH_DEFAULT_ID, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $storeId);
     } catch (\Magento\Framework\Model\Exception $e) {
         throw NoSuchEntityException::singleField('storeId', $storeId);
     }
     try {
         return $this->getGroup($groupId);
     } catch (NoSuchEntityException $e) {
         throw NoSuchEntityException::doubleField('groupId', $groupId, 'storeId', $storeId);
     }
 }
 /**
  * Test creating a customer with absent required address fields
  */
 public function testCreateCustomerWithoutAddressRequiresException()
 {
     $customerDataArray = $this->dataObjectProcessor->buildOutputDataArray($this->customerHelper->createSampleCustomerDataObject(), '\\Magento\\Customer\\Api\\Data\\CustomerInterface');
     foreach ($customerDataArray[Customer::KEY_ADDRESSES] as &$address) {
         $address[Address::FIRSTNAME] = null;
     }
     $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'Save']];
     $requestData = ['customer' => $customerDataArray];
     try {
         $this->_webApiCall($serviceInfo, $requestData);
         $this->fail('Expected exception did not occur.');
     } catch (\Exception $e) {
         if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) {
             $expectedException = new InputException();
             $expectedException->addError(__('%fieldName is a required field.', ['fieldName' => Address::FIRSTNAME]));
             $this->assertInstanceOf('SoapFault', $e);
             $this->checkSoapFault($e, $expectedException->getRawMessage(), 'env:Sender', $expectedException->getParameters());
         } else {
             $this->assertEquals(HTTPExceptionCodes::HTTP_BAD_REQUEST, $e->getCode());
             $exceptionData = $this->processRestExceptionResult($e);
             $expectedExceptionData = ['message' => '%fieldName is a required field.', 'parameters' => ['fieldName' => Address::FIRSTNAME]];
             $this->assertEquals($expectedExceptionData, $exceptionData);
         }
     }
     try {
         $this->customerRegistry->retrieveByEmail($customerDataArray[Customer::EMAIL], $customerDataArray[Customer::WEBSITE_ID]);
         $this->fail('An expected NoSuchEntityException was not thrown.');
     } catch (NoSuchEntityException $e) {
         $exception = NoSuchEntityException::doubleField('email', $customerDataArray[Customer::EMAIL], 'websiteId', $customerDataArray[Customer::WEBSITE_ID]);
         $this->assertEquals($exception->getMessage(), $e->getMessage(), 'Exception message does not match expected message.');
     }
 }