本文整理汇总了PHP中Magento\Customer\Api\AccountManagementInterface::expects方法的典型用法代码示例。如果您正苦于以下问题:PHP AccountManagementInterface::expects方法的具体用法?PHP AccountManagementInterface::expects怎么用?PHP AccountManagementInterface::expects使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Customer\Api\AccountManagementInterface
的用法示例。
在下文中一共展示了AccountManagementInterface::expects方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testExecuteWithException
public function testExecuteWithException()
{
$token = 'token';
$customerId = '11';
$this->requestMock->expects($this->exactly(2))->method('getParam')->willReturnMap([['token', null, $token], ['id', null, null]]);
$this->sessionMock->expects($this->once())->method('getRpToken')->willReturn($token);
$this->sessionMock->expects($this->once())->method('getRpCustomerId')->willReturn($customerId);
$this->accountManagementMock->expects($this->once())->method('validateResetPasswordLinkToken')->with($customerId, $token)->willThrowException(new \Exception('Exception.'));
$this->messageManagerMock->expects($this->once())->method('addError')->with(__('Your password reset link has expired.'))->willReturnSelf();
/** @var Redirect|\PHPUnit_Framework_MockObject_MockObject $redirectMock */
$redirectMock = $this->getMockBuilder('Magento\\Framework\\Controller\\Result\\Redirect')->disableOriginalConstructor()->getMock();
$this->redirectFactoryMock->expects($this->once())->method('create')->with([])->willReturn($redirectMock);
$redirectMock->expects($this->once())->method('setPath')->with('*/*/forgotpassword', [])->willReturnSelf();
$this->assertEquals($redirectMock, $this->model->executeInternal());
}
示例2: testPopulateCustomerInfo
public function testPopulateCustomerInfo()
{
$this->quoteMock->expects($this->once())->method('getCustomer')->willReturn($this->customerMock);
$this->customerMock->expects($this->atLeastOnce())->method('getId')->willReturn(null);
$this->customerMock->expects($this->atLeastOnce())->method('getDefaultBilling')->willReturn(100500);
$this->quoteMock->expects($this->atLeastOnce())->method('getBillingAddress')->willReturn($this->quoteAddressMock);
$this->quoteMock->expects($this->atLeastOnce())->method('getShippingAddress')->willReturn($this->quoteAddressMock);
$this->quoteMock->expects($this->atLeastOnce())->method('setCustomer')->with($this->customerMock)->willReturnSelf();
$this->quoteMock->expects($this->once())->method('getPasswordHash')->willReturn('password hash');
$this->quoteAddressMock->expects($this->atLeastOnce())->method('getId')->willReturn(null);
$this->customerAddressRepositoryMock->expects($this->atLeastOnce())->method('getById')->with(100500)->willReturn($this->customerAddressMock);
$this->quoteAddressMock->expects($this->atLeastOnce())->method('importCustomerAddressData')->willReturnSelf();
$this->accountManagementMock->expects($this->once())->method('createAccountWithPasswordHash')->with($this->customerMock, 'password hash')->willReturn($this->customerMock);
$this->customerManagement->populateCustomerInfo($this->quoteMock);
}
示例3: testEditPostActionWithoutErrors
/**
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function testEditPostActionWithoutErrors()
{
$customerId = 24;
$address = $this->getMockForAbstractClass('Magento\\Customer\\Api\\Data\\AddressInterface', [], '', false);
$loadedCustomer = $this->getMockForAbstractClass('Magento\\Customer\\Api\\Data\\CustomerInterface', [], 'loadedCustomer', false);
$loadedCustomer->expects($this->once())->method('getAddresses')->willReturn([$address, $address]);
$this->resultRedirectFactory->expects($this->once())->method('create')->willReturn($this->redirectResultMock);
$this->formKeyValidator->expects($this->once())->method('validate')->willReturn(true);
$this->request->expects($this->once())->method('isPost')->willReturn(true);
$this->customerSession->expects($this->once())->method('getCustomerId')->willReturn($customerId);
$this->customerExtractor->expects($this->once())->method('extract')->willReturn($this->customer);
$this->customer->expects($this->once())->method('setId')->with($customerId);
$this->customer->expects($this->once())->method('getAddresses')->willReturn(null);
$this->customerRepository->expects($this->exactly(2))->method('getById')->with($customerId)->willReturn($loadedCustomer);
$this->customer->expects($this->once())->method('setAddresses')->with([$address, $address]);
$this->request->expects($this->once())->method('getParam')->with('change_password')->willReturn(true);
$this->request->expects($this->at(2))->method('getPost')->with('current_password', null)->willReturn(123);
$this->request->expects($this->at(3))->method('getPost')->with('password', null)->willReturn(321);
$this->request->expects($this->at(4))->method('getPost')->with('password_confirmation', null)->willReturn(321);
$this->customerAccountManagement->expects($this->once())->method('changePassword');
$this->customerRepository->expects($this->once())->method('save');
$messageCollection = $this->getMock('Magento\\Framework\\Message\\Collection', [], [], '', false);
$messageCollection->expects($this->once())->method('getCount')->willReturn(0);
$this->messageManager->expects($this->once())->method('getMessages')->willReturn($messageCollection);
$this->messageManager->expects($this->once())->method('addSuccess')->with('You saved the account information.');
$this->redirectResultMock->expects($this->once())->method('setPath')->with('customer/account')->willReturn('http://test.com/customer/account/edit');
$this->assertSame($this->redirectResultMock, $this->getController()->execute());
}
示例4: testSaveBilling
/**
* @dataProvider saveBillingDataProvider
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
* @SuppressWarnings(PHPMD.NPathComplexity)
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
public function testSaveBilling($data, $customerAddressId, $quoteCustomerId, $addressCustomerId, $isAddress, $validateDataResult, $validateResult, $checkoutMethod, $customerPassword, $confirmPassword, $validationResultMessages, $isEmailAvailable, $isVirtual, $getStepDataResult, $expected)
{
$useForShipping = (int) $data['use_for_shipping'];
$passwordHash = 'password hash';
$this->requestMock->expects($this->any())->method('isAjax')->will($this->returnValue(false));
$customerValidationResultMock = $this->getMock('Magento\\Customer\\Api\\Data\\ValidationResultsInterface', [], [], '', false);
$customerValidationResultMock->expects($this->any())->method('isValid')->will($this->returnValue(empty($validationResultMessages)));
$customerValidationResultMock->expects($this->any())->method('getMessages')->will($this->returnValue($validationResultMessages));
$this->accountManagementMock->expects($this->any())->method('getPasswordHash')->with($customerPassword)->will($this->returnValue($passwordHash));
$this->accountManagementMock->expects($this->any())->method('validate')->will($this->returnValue($customerValidationResultMock));
$this->accountManagementMock->expects($this->any())->method('isEmailAvailable')->will($this->returnValue($isEmailAvailable));
/** @var \Magento\Quote\Model\Quote|\PHPUnit_Framework_MockObject_MockObject $quoteMock */
$quoteMock = $this->getMock('Magento\\Quote\\Model\\Quote', ['getData', 'getCustomerId', '__wakeup', 'getBillingAddress', 'setPasswordHash', 'getCheckoutMethod', 'isVirtual', 'getShippingAddress', 'getCustomerData', 'collectTotals', 'save', 'getCustomer'], [], '', false);
$customerMock = $this->getMockForAbstractClass('Magento\\Framework\\Api\\AbstractExtensibleObject', [], '', false, true, true, ['__toArray']);
$shippingAddressMock = $this->getMock('Magento\\Quote\\Model\\Quote\\Address', ['setSameAsBilling', 'save', 'collectTotals', 'addData', 'setShippingMethod', 'setCollectShippingRates', '__wakeup'], [], '', false);
$quoteMock->expects($this->any())->method('getShippingAddress')->will($this->returnValue($shippingAddressMock));
$shippingAddressMock->expects($useForShipping ? $this->any() : $this->once())->method('setSameAsBilling')->with($useForShipping)->will($this->returnSelf());
$expects = !$useForShipping || $checkoutMethod != Onepage::METHOD_REGISTER ? $this->once() : $this->never();
$shippingAddressMock->expects($expects)->method('save');
$shippingAddressMock->expects($useForShipping ? $this->once() : $this->never())->method('addData')->will($this->returnSelf());
$shippingAddressMock->expects($this->any())->method('setSaveInAddressBook')->will($this->returnSelf());
$shippingAddressMock->expects($useForShipping ? $this->once() : $this->never())->method('setShippingMethod')->will($this->returnSelf());
$shippingAddressMock->expects($useForShipping ? $this->once() : $this->never())->method('setCollectShippingRates')->will($this->returnSelf());
$shippingAddressMock->expects($useForShipping ? $this->once() : $this->never())->method('collectTotals');
$quoteMock->expects($this->any())->method('setPasswordHash')->with($passwordHash);
$quoteMock->expects($this->any())->method('getCheckoutMethod')->will($this->returnValue($checkoutMethod));
$quoteMock->expects($this->any())->method('isVirtual')->will($this->returnValue($isVirtual));
$addressMock = $this->getMock('Magento\\Quote\\Model\\Quote\\Address', ['setSaveInAddressBook', 'getData', 'setEmail', '__wakeup', 'importCustomerAddressData', 'validate', 'save'], [], '', false);
$addressMock->expects($this->any())->method('importCustomerAddressData')->will($this->returnSelf());
$addressMock->expects($this->atLeastOnce())->method('validate')->will($this->returnValue($validateResult));
$addressMock->expects($this->any())->method('getData')->will($this->returnValue([]));
$quoteMock->expects($this->any())->method('getBillingAddress')->will($this->returnValue($addressMock));
$quoteMock->expects($this->any())->method('getCustomerId')->will($this->returnValue($quoteCustomerId));
$this->quoteRepositoryMock->expects($checkoutMethod === Onepage::METHOD_REGISTER ? $this->once() : $this->never())->method('save')->with($quoteMock);
$addressMock->expects($checkoutMethod === Onepage::METHOD_REGISTER ? $this->never() : $this->once())->method('save');
$quoteMock->expects($this->any())->method('getCustomer')->will($this->returnValue($customerMock));
$data1 = [];
$extensibleDataObjectConverterMock = $this->getMock('Magento\\Framework\\Api\\ExtensibleDataObjectConverter', ['toFlatArray'], [], '', false);
$extensibleDataObjectConverterMock->expects($this->any())->method('toFlatArray')->with($customerMock)->will($this->returnValue($data1));
$formMock = $this->getMock('Magento\\Customer\\Model\\Metadata\\Form', [], [], '', false);
$formMock->expects($this->atLeastOnce())->method('validateData')->will($this->returnValue($validateDataResult));
$this->formFactoryMock->expects($this->any())->method('create')->will($this->returnValue($formMock));
$formMock->expects($this->any())->method('prepareRequest')->will($this->returnValue($this->requestMock));
$formMock->expects($this->any())->method('extractData')->with($this->requestMock)->will($this->returnValue([]));
$formMock->expects($this->any())->method('validateData')->with([])->will($this->returnValue(false));
$customerDataMock = $this->getMock('Magento\\Customer\\Api\\Data\\CustomerInterface', [], [], '', false);
$this->customerDataFactoryMock->expects($this->any())->method('create')->will($this->returnValue($customerDataMock));
$this->checkoutSessionMock->expects($this->any())->method('getQuote')->will($this->returnValue($quoteMock));
$this->checkoutSessionMock->expects($this->any())->method('getStepData')->will($this->returnValue($useForShipping ? true : $getStepDataResult));
$this->checkoutSessionMock->expects($this->any())->method('setStepData')->will($this->returnSelf());
$customerAddressMock = $this->getMockForAbstractClass('Magento\\Customer\\Api\\Data\\AddressInterface', [], '', false);
$customerAddressMock->expects($this->any())->method('getCustomerId')->will($this->returnValue($addressCustomerId));
$this->addressRepositoryMock->expects($this->any())->method('getById')->will($isAddress ? $this->returnValue($customerAddressMock) : $this->throwException(new \Exception()));
$websiteMock = $this->getMock('Magento\\Store\\Model\\Website', [], [], '', false);
$this->storeManagerMock->expects($this->any())->method('getWebsite')->will($this->returnValue($websiteMock));
$this->assertEquals($expected, $this->onepage->saveBilling($data, $customerAddressId));
}
示例5: testExecuteWithException
public function testExecuteWithException()
{
$token = 'token';
$customerId = '11';
$password = 'password';
$passwordConfirmation = 'password';
$email = 'email@email.com';
$this->requestMock->expects($this->exactly(2))->method('getQuery')->willReturnMap([['token', $token], ['id', $customerId]]);
$this->requestMock->expects($this->exactly(2))->method('getPost')->willReturnMap([['password', $password], ['password_confirmation', $passwordConfirmation]]);
/** @var \Magento\Customer\Api\Data\CustomerInterface|\PHPUnit_Framework_MockObject_MockObject $customerMock */
$customerMock = $this->getMockBuilder('\\Magento\\Customer\\Api\\Data\\CustomerInterface')->getMockForAbstractClass();
$this->customerRepositoryMock->expects($this->once())->method('getById')->with($customerId)->willReturn($customerMock);
$customerMock->expects($this->once())->method('getEmail')->willReturn($email);
$this->accountManagementMock->expects($this->once())->method('resetPassword')->with($email, $token, $password)->willThrowException(new \Exception('Exception.'));
$this->messageManagerMock->expects($this->once())->method('addError')->with(__('Something went wrong while saving the new password.'))->willReturnSelf();
/** @var Redirect|\PHPUnit_Framework_MockObject_MockObject $redirectMock */
$redirectMock = $this->getMockBuilder('Magento\\Framework\\Controller\\Result\\Redirect')->disableOriginalConstructor()->getMock();
$this->redirectFactoryMock->expects($this->once())->method('create')->with([])->willReturn($redirectMock);
$redirectMock->expects($this->once())->method('setPath')->with('*/*/createPassword', ['id' => $customerId, 'token' => $token])->willReturnSelf();
$this->assertEquals($redirectMock, $this->model->execute());
}
示例6: testUpdateSubscription
public function testUpdateSubscription()
{
$customerId = 1;
$customerDataMock = $this->getMockBuilder('\\Magento\\Customer\\Api\\Data\\CustomerInterface')->getMock();
$this->customerRepository->expects($this->atLeastOnce())->method('getById')->with($customerId)->willReturn($customerDataMock);
$this->resource->expects($this->atLeastOnce())->method('loadByCustomerData')->with($customerDataMock)->willReturn(['subscriber_id' => 1, 'subscriber_status' => 1]);
$customerDataMock->expects($this->atLeastOnce())->method('getId')->willReturn('id');
$this->resource->expects($this->atLeastOnce())->method('save')->willReturnSelf();
$this->customerAccountManagement->expects($this->once())->method('getConfirmationStatus')->with($customerId)->willReturn('account_confirmation_required');
$customerDataMock->expects($this->once())->method('getStoreId')->willReturn('store_id');
$customerDataMock->expects($this->once())->method('getEmail')->willReturn('email');
$this->assertEquals($this->subscriber, $this->subscriber->updateSubscription($customerId));
}
示例7: testExecuteWithException
public function testExecuteWithException()
{
$this->request->expects($this->once())->method('getPost')->willReturn(null);
$this->form->expects($this->once())->method('setInvisibleIgnored');
$this->form->expects($this->atLeastOnce())->method('extractData')->willReturn([]);
$this->form->expects($this->never())->method('validateData');
$this->extensibleDataObjectConverter->expects($this->once())->method('toFlatArray')->willReturn([]);
$validationResult = $this->getMockForAbstractClass('Magento\\Customer\\Api\\Data\\ValidationResultsInterface', [], '', false, true, true);
$error = $this->getMock('Magento\\Framework\\Message\\Error', [], [], '', false);
$error->expects($this->once())->method('getText')->willReturn('Error text');
$exception = $this->getMock('Magento\\Framework\\Validator\\Exception', [], [], '', false);
$exception->expects($this->once())->method('getMessages')->willReturn([$error]);
$validationResult->expects($this->once())->method('getMessages')->willThrowException($exception);
$this->customerAccountManagement->expects($this->once())->method('validate')->willReturn($validationResult);
$this->controller->execute();
}
示例8: testLoginFailure
public function testLoginFailure()
{
$jsonRequest = '{"username":"invalid@example.com", "password":"invalid"}';
$loginFailureResponse = '{"message":"Invalid login or password."}';
$this->request->expects($this->any())->method('getContent')->willReturn($jsonRequest);
$this->request->expects($this->any())->method('getMethod')->willReturn('POST');
$this->request->expects($this->any())->method('isXmlHttpRequest')->willReturn(true);
$this->resultJsonFactory->expects($this->once())->method('create')->willReturn($this->resultJson);
$this->jsonHelperMock->expects($this->any())->method('jsonDecode')->with($jsonRequest)->willReturn(['username' => 'invalid@example.com', 'password' => 'invalid']);
$customerMock = $this->getMockForAbstractClass('Magento\\Customer\\Api\\Data\\CustomerInterface');
$this->customerAccountManagementMock->expects($this->any())->method('authenticate')->with('invalid@example.com', 'invalid')->willThrowException(new InvalidEmailOrPasswordException(__('Invalid login or password.')));
$this->customerSession->expects($this->never())->method('setCustomerDataAsLoggedIn')->with($customerMock);
$this->customerSession->expects($this->never())->method('regenerateId');
$result = ['errors' => true, 'message' => __('Invalid login or password.')];
$this->resultJson->expects($this->once())->method('setData')->with($result)->willReturn($loginFailureResponse);
$this->assertEquals($loginFailureResponse, $this->object->execute());
}
示例9: testSuccessRedirect
/**
* @param $customerId
* @param $key
* @param $backUrl
* @param $successUrl
* @param $resultUrl
* @param $isSetFlag
* @param $successMessage
*
* @dataProvider getSuccessRedirectDataProvider
*/
public function testSuccessRedirect($customerId, $key, $backUrl, $successUrl, $resultUrl, $isSetFlag, $successMessage)
{
$this->customerSessionMock->expects($this->once())->method('isLoggedIn')->will($this->returnValue(false));
$this->requestMock->expects($this->any())->method('getParam')->willReturnMap([['id', false, $customerId], ['key', false, $key], ['back_url', false, $backUrl]]);
$this->customerRepositoryMock->expects($this->any())->method('getById')->with($customerId)->will($this->returnValue($this->customerDataMock));
$email = 'test@example.com';
$this->customerDataMock->expects($this->once())->method('getEmail')->will($this->returnValue($email));
$this->customerAccountManagementMock->expects($this->once())->method('activate')->with($this->equalTo($email), $this->equalTo($key))->will($this->returnValue($this->customerDataMock));
$this->customerSessionMock->expects($this->any())->method('setCustomerDataAsLoggedIn')->with($this->equalTo($this->customerDataMock))->willReturnSelf();
$this->messageManagerMock->expects($this->any())->method('addSuccess')->with($this->stringContains($successMessage))->willReturnSelf();
$this->storeMock->expects($this->any())->method('getFrontendName')->will($this->returnValue('frontend'));
$this->storeManagerMock->expects($this->any())->method('getStore')->will($this->returnValue($this->storeMock));
$this->urlMock->expects($this->any())->method('getUrl')->with($this->equalTo('*/*/index'), ['_secure' => true])->will($this->returnValue($successUrl));
$this->redirectMock->expects($this->never())->method('success')->with($this->equalTo($resultUrl))->willReturn($resultUrl);
$this->scopeConfigMock->expects($this->never())->method('isSetFlag')->with(Url::XML_PATH_CUSTOMER_STARTUP_REDIRECT_TO_DASHBOARD, ScopeInterface::SCOPE_STORE)->willReturn($isSetFlag);
$this->model->execute();
}
示例10: _setupStoreMode
/**
* @param $customerData
* @param $isSingleStoreMode
* @param $canModifyCustomer
*
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
private function _setupStoreMode($customerData, $isSingleStoreMode, $canModifyCustomer)
{
$backendSessionMock = $this->getMock('\\Magento\\Backend\\Model\\Session', ['getCustomerData'], [], '', false);
$backendSessionMock->expects($this->any())->method('getCustomerData')->will($this->returnValue([]));
$layoutMock = $this->getMock('\\Magento\\Framework\\View\\Layout\\Element\\Layout', ['createBlock'], [], '', false);
$layoutMock->expects($this->at(0))->method('createBlock')->with('Magento\\Customer\\Block\\Adminhtml\\Edit\\Renderer\\Attribute\\Group')->will($this->returnValue($this->objectManagerHelper->getObject('Magento\\Customer\\Block\\Adminhtml\\Edit\\Renderer\\Attribute\\Group')));
$layoutMock->expects($this->at(1))->method('createBlock')->with('Magento\\Backend\\Block\\Store\\Switcher\\Form\\Renderer\\Fieldset\\Element')->will($this->returnValue($this->objectManagerHelper->getObject('Magento\\Backend\\Block\\Store\\Switcher\\Form\\Renderer\\Fieldset\\Element')));
if (empty($customerData['id'])) {
$layoutMock->expects($this->at(2))->method('createBlock')->with('Magento\\Customer\\Block\\Adminhtml\\Edit\\Renderer\\Attribute\\Sendemail')->will($this->returnValue($this->objectManagerHelper->getObject('Magento\\Customer\\Block\\Adminhtml\\Edit\\Renderer\\Attribute\\Sendemail')));
}
$urlBuilderMock = $this->getMock('\\Magento\\Backend\\Model\\Url', ['getBaseUrl'], [], '', false);
$urlBuilderMock->expects($this->once())->method('getBaseUrl')->will($this->returnValue('someUrl'));
$storeManagerMock = $this->getMock('Magento\\Store\\Model\\StoreManager', [], [], '', false);
$storeManagerMock->expects($this->any())->method('isSingleStoreMode')->will($this->returnValue($isSingleStoreMode));
$customerObject = $this->getMock('\\Magento\\Customer\\Api\\Data\\CustomerInterface');
if (!empty($customerData['id'])) {
$customerObject->expects($this->any())->method('getId')->will($this->returnValue($customerData['id']));
}
$fieldset = $this->getMockBuilder('\\Magento\\Framework\\Data\\Form\\Element\\Fieldset')->setMethods(['getForm', 'addField', 'removeField'])->disableOriginalConstructor()->getMock();
$accountForm = $this->getMockBuilder('Magento\\Framework\\Data\\Form')->setMethods(['create', 'addFieldset', 'getElement', 'setValues'])->disableOriginalConstructor()->getMock();
$accountForm->expects($this->any())->method('addFieldset')->with('base_fieldset')->will($this->returnValue($fieldset));
$accountForm->expects($this->any())->method('setValues')->will($this->returnValue($accountForm));
$fieldset->expects($this->any())->method('getForm')->will($this->returnValue($accountForm));
$formElement = $this->getMockBuilder('\\Magento\\Framework\\Data\\Form\\Element\\Select')->setMethods(['setRenderer', 'addClass', 'setDisabled'])->disableOriginalConstructor()->getMock();
$formElement->expects($this->any())->method('setRenderer')->will($this->returnValue(null));
$formElement->expects($this->any())->method('addClass')->will($this->returnValue(null));
$formElement->expects($this->any())->method('setDisabled')->will($this->returnValue(null));
$accountForm->expects($this->any())->method('getElement')->withAnyParameters()->will($this->returnValue($formElement));
$fieldset->expects($this->any())->method('addField')->will($this->returnValue($formElement));
$customerForm = $this->getMock('\\Magento\\Customer\\Model\\Metadata\\Form', ['getAttributes'], [], '', false);
$customerForm->expects($this->any())->method('getAttributes')->will($this->returnValue([]));
$this->contextMock->expects($this->any())->method('getBackendSession')->will($this->returnValue($backendSessionMock));
$this->contextMock->expects($this->any())->method('getLayout')->will($this->returnValue($layoutMock));
$this->contextMock->expects($this->any())->method('getUrlBuilder')->will($this->returnValue($urlBuilderMock));
$this->contextMock->expects($this->any())->method('getStoreManager')->will($this->returnValue($storeManagerMock));
$this->customerFactoryMock->expects($this->any())->method('create')->will($this->returnValue($customerObject));
$this->dataObjectHelperMock->expects($this->once())->method('populateWithArray');
$this->options->expects($this->any())->method('getNamePrefixOptions')->will($this->returnValue(['Pref1', 'Pref2']));
$this->options->expects($this->any())->method('getNameSuffixOptions')->will($this->returnValue(['Suf1', 'Suf2']));
$this->formFactoryMock->expects($this->any())->method('create')->will($this->returnValue($accountForm));
$this->extensibleDataObjectConverterMock->expects($this->any())->method('toFlatArray')->will($this->returnValue($customerData));
$this->customerFormFactoryMock->expects($this->any())->method('create')->with('customer', 'adminhtml_customer', $this->extensibleDataObjectConverterMock->toFlatArray($customerObject, [], '\\Magento\\Customer\\Api\\Data\\CustomerInterface'))->will($this->returnValue($customerForm));
$this->accountManagementMock->expects($this->any())->method('isReadOnly')->withAnyParameters()->will($this->returnValue(!$canModifyCustomer));
$this->accountManagementMock->expects($this->any())->method('getConfirmationStatus')->withAnyParameters()->will($this->returnValue(AccountManagementInterface::ACCOUNT_CONFIRMED));
}
示例11: testResetPasswordActionSendEmail
public function testResetPasswordActionSendEmail()
{
$customerId = 1;
$email = 'test@example.com';
$websiteId = 1;
$redirectLink = 'customer/*/edit';
$this->_request->expects($this->once())->method('getParam')->with($this->equalTo('customer_id'), $this->equalTo(0))->will($this->returnValue($customerId));
$customer = $this->getMockForAbstractClass('\\Magento\\Customer\\Api\\Data\\CustomerInterface', ['getId', 'getEmail', 'getWebsiteId']);
$customer->expects($this->once())->method('getEmail')->will($this->returnValue($email));
$customer->expects($this->once())->method('getWebsiteId')->will($this->returnValue($websiteId));
$this->_customerRepositoryMock->expects($this->once())->method('getById')->with($customerId)->will($this->returnValue($customer));
// verify initiatePasswordReset() is called
$this->_customerAccountManagementMock->expects($this->once())->method('initiatePasswordReset')->with($email, AccountManagement::EMAIL_REMINDER, $websiteId);
// verify success message
$this->messageManager->expects($this->once())->method('addSuccess')->with($this->equalTo('Customer will receive an email with a link to reset password.'));
// verify redirect
$this->_helper->expects($this->any())->method('getUrl')->with($this->equalTo('customer/*/edit'), $this->equalTo(['id' => $customerId, '_current' => true]))->will($this->returnValue($redirectLink));
$this->resultRedirectMock->expects($this->once())->method('setPath')->with($redirectLink, ['id' => $customerId, '_current' => true]);
$this->assertInstanceOf('Magento\\Backend\\Model\\View\\Result\\Redirect', $this->_testedObject->execute());
}
示例12: testSuccessRedirect
/**
* @param $customerId
* @param $password
* @param $confirmationStatus
* @param $successUrl
* @param $isSetFlag
* @param $successMessage
*
* @dataProvider getSuccessRedirectDataProvider
*/
public function testSuccessRedirect($customerId, $password, $confirmationStatus, $successUrl, $isSetFlag, $successMessage)
{
$this->customerSessionMock->expects($this->once())->method('isLoggedIn')->will($this->returnValue(false));
$this->registration->expects($this->once())->method('isAllowed')->will($this->returnValue(true));
$this->customerSessionMock->expects($this->once())->method('regenerateId');
$this->customerMock->expects($this->any())->method('getId')->will($this->returnValue($customerId));
$this->customerExtractorMock->expects($this->any())->method('extract')->with($this->equalTo('customer_account_create'), $this->equalTo($this->requestMock))->will($this->returnValue($this->customerMock));
$this->requestMock->expects($this->once())->method('isPost')->will($this->returnValue(true));
$this->requestMock->expects($this->any())->method('getPost')->will($this->returnValue(false));
$this->requestMock->expects($this->any())->method('getParam')->willReturnMap([['password', null, $password], ['password_confirmation', null, $password], ['is_subscribed', false, true]]);
$this->customerMock->expects($this->once())->method('setAddresses')->with($this->equalTo([]))->will($this->returnSelf());
$this->accountManagement->expects($this->once())->method('createAccount')->with($this->equalTo($this->customerDetailsMock), $this->equalTo($password), '')->will($this->returnValue($this->customerMock));
$this->accountManagement->expects($this->once())->method('getConfirmationStatus')->with($this->equalTo($customerId))->will($this->returnValue($confirmationStatus));
$this->subscriberMock->expects($this->once())->method('subscribeCustomerById')->with($this->equalTo($customerId));
$this->messageManagerMock->expects($this->any())->method('addSuccess')->with($this->stringContains($successMessage))->will($this->returnSelf());
$this->urlMock->expects($this->any())->method('getUrl')->willReturnMap([['*/*/index', ['_secure' => true], $successUrl], ['*/*/create', ['_secure' => true], $successUrl]]);
$this->redirectMock->expects($this->once())->method('success')->with($this->equalTo($successUrl))->will($this->returnValue($successUrl));
$this->scopeConfigMock->expects($this->once())->method('isSetFlag')->with($this->equalTo(Url::XML_PATH_CUSTOMER_STARTUP_REDIRECT_TO_DASHBOARD), $this->equalTo(ScopeInterface::SCOPE_STORE))->will($this->returnValue($isSetFlag));
$this->storeMock->expects($this->any())->method('getFrontendName')->will($this->returnValue('frontend'));
$this->storeManagerMock->expects($this->any())->method('getStore')->will($this->returnValue($this->storeMock));
$this->model->execute();
}
示例13: testExecuteWithNewCustomerAndException
/**
* @covers \Magento\Customer\Controller\Adminhtml\Index\Index::execute
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
public function testExecuteWithNewCustomerAndException()
{
$subscription = 'false';
$postValue = ['customer' => ['coolness' => false, 'disable_auto_group_change' => 'false'], 'subscription' => $subscription];
$filteredData = ['coolness' => false, 'disable_auto_group_change' => 'false'];
/** @var AttributeMetadataInterface|\PHPUnit_Framework_MockObject_MockObject $formMock */
$attributeMock = $this->getMockBuilder('Magento\\Customer\\Api\\Data\\AttributeMetadataInterface')->disableOriginalConstructor()->getMock();
$attributeMock->expects($this->once())->method('getAttributeCode')->willReturn('coolness');
$attributeMock->expects($this->once())->method('getFrontendInput')->willReturn('int');
$attributes = [$attributeMock];
$this->requestMock->expects($this->exactly(2))->method('getPostValue')->willReturn($postValue);
$this->requestMock->expects($this->exactly(2))->method('getPost')->willReturnMap([['customer', null, $postValue['customer']], ['address', null, null]]);
/** @var \Magento\Customer\Model\Metadata\Form|\PHPUnit_Framework_MockObject_MockObject $formMock */
$formMock = $this->getMockBuilder('Magento\\Customer\\Model\\Metadata\\Form')->disableOriginalConstructor()->getMock();
$this->formFactoryMock->expects($this->once())->method('create')->with(\Magento\Customer\Api\CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, 'adminhtml_customer', [], false, \Magento\Customer\Model\Metadata\Form::DONT_IGNORE_INVISIBLE)->willReturn($formMock);
$formMock->expects($this->once())->method('extractData')->with($this->requestMock, 'customer')->willReturn($filteredData);
/** @var \Magento\Framework\DataObject|\PHPUnit_Framework_MockObject_MockObject $objectMock */
$objectMock = $this->getMockBuilder('Magento\\Framework\\DataObject')->disableOriginalConstructor()->getMock();
$this->objectFactoryMock->expects($this->once())->method('create')->with(['data' => $postValue])->willReturn($objectMock);
$objectMock->expects($this->once())->method('getData')->with('customer')->willReturn($postValue['customer']);
$formMock->expects($this->once())->method('getAttributes')->willReturn($attributes);
/** @var \Magento\Customer\Api\Data\CustomerInterface|\PHPUnit_Framework_MockObject_MockObject $customerMock */
$customerMock = $this->getMockBuilder('Magento\\Customer\\Api\\Data\\CustomerInterface')->disableOriginalConstructor()->getMock();
$this->customerDataFactoryMock->expects($this->once())->method('create')->willReturn($customerMock);
$exception = new \Exception(__('Exception'));
$this->managementMock->expects($this->once())->method('createAccount')->with($customerMock, null, '')->willThrowException($exception);
$customerMock->expects($this->never())->method('getId');
$this->authorizationMock->expects($this->never())->method('isAllowed');
$this->subscriberFactoryMock->expects($this->never())->method('create');
$this->sessionMock->expects($this->never())->method('unsCustomerData');
$this->registryMock->expects($this->never())->method('register');
$this->messageManagerMock->expects($this->never())->method('addSuccess');
$this->messageManagerMock->expects($this->once())->method('addException')->with($exception, __('Something went wrong while saving the customer.'));
$this->sessionMock->expects($this->once())->method('setCustomerData')->with($postValue);
/** @var Redirect|\PHPUnit_Framework_MockObject_MockObject $redirectMock */
$redirectMock = $this->getMockBuilder('Magento\\Framework\\Controller\\Result\\Redirect')->disableOriginalConstructor()->getMock();
$this->redirectFactoryMock->expects($this->once())->method('create')->with([])->willReturn($redirectMock);
$redirectMock->expects($this->once())->method('setPath')->with('customer/*/new', ['_current' => true])->willReturn(true);
$this->assertEquals($redirectMock, $this->model->execute());
}