Skip to content

Commit

Permalink
Merge pull request #589 from magento-mpi/PR-11082016
Browse files Browse the repository at this point in the history
[MPI] Bugfixes, updating Zephyr tickets id and ApiAnnotationTest removing
  • Loading branch information
Yaroslav Onischenko committed Nov 28, 2016
2 parents d491a45 + eeb13d7 commit bbfff31
Show file tree
Hide file tree
Showing 10 changed files with 321 additions and 52 deletions.
4 changes: 2 additions & 2 deletions app/code/Magento/Authorizenet/Model/Authorizenet.php
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ protected function buildRequest(\Magento\Framework\DataObject $payment)
->setXCity($billing->getCity())
->setXState($billing->getRegion())
->setXZip($billing->getPostcode())
->setXCountry($billing->getCountry())
->setXCountry($billing->getCountryId())
->setXPhone($billing->getTelephone())
->setXFax($billing->getFax())
->setXCustId($order->getCustomerId())
Expand All @@ -352,7 +352,7 @@ protected function buildRequest(\Magento\Framework\DataObject $payment)
->setXShipToCity($shipping->getCity())
->setXShipToState($shipping->getRegion())
->setXShipToZip($shipping->getPostcode())
->setXShipToCountry($shipping->getCountry());
->setXShipToCountry($shipping->getCountryId());
}

$request->setXPoNum($payment->getPoNumber())
Expand Down
4 changes: 2 additions & 2 deletions app/code/Magento/Authorizenet/Model/Directpost/Request.php
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ public function setDataFromOrder(
->setXCity(strval($billing->getCity()))
->setXState(strval($billing->getRegion()))
->setXZip(strval($billing->getPostcode()))
->setXCountry(strval($billing->getCountry()))
->setXCountry(strval($billing->getCountryId()))
->setXPhone(strval($billing->getTelephone()))
->setXFax(strval($billing->getFax()))
->setXCustId(strval($billing->getCustomerId()))
Expand Down Expand Up @@ -151,7 +151,7 @@ public function setDataFromOrder(
)->setXShipToZip(
strval($shipping->getPostcode())
)->setXShipToCountry(
strval($shipping->getCountry())
strval($shipping->getCountryId())
);
}

Expand Down
2 changes: 1 addition & 1 deletion app/code/Magento/Braintree/view/adminhtml/web/js/vault.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ define([
self.$selector = $('#' + self.selector);
self.$container = $('#' + self.container);
self.$selector.on(
'setVaultNotActive',
'setVaultNotActive.' + self.getCode(),
function () {
self.$selector.off('submitOrder.' + self.getCode());
}
Expand Down
18 changes: 13 additions & 5 deletions app/code/Magento/Vault/view/adminhtml/web/js/vault.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ define([
.observe(['active']);

// re-init payment method events
self.$selector.off('changePaymentMethod.' + this.code)
.on('changePaymentMethod.' + this.code, this.changePaymentMethod.bind(this));
self.$selector.off('changePaymentMethod.' + this.getCode())
.on('changePaymentMethod.' + this.getCode(), this.changePaymentMethod.bind(this));

if (this.active()) {
$('#' + this.fieldset + ' input:radio:first').trigger('click');
Expand All @@ -50,7 +50,7 @@ define([
* @returns {exports.changePaymentMethod}
*/
changePaymentMethod: function (event, method) {
this.active(method === this.code);
this.active(method === this.getCode());

return this;
},
Expand All @@ -61,13 +61,21 @@ define([
*/
onActiveChange: function (isActive) {
if (!isActive) {
this.$selector.trigger('setVaultNotActive');
this.$selector.trigger('setVaultNotActive.' + this.getCode());

return;
}

$('#' + this.fieldset + ' input:radio:first').trigger('click');
window.order.addExcludedPaymentMethod(this.code);
window.order.addExcludedPaymentMethod(this.getCode());
},

/**
* Get payment method code
* @returns {String}
*/
getCode: function () {
return this.code;
}
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
<testCase name="Magento\Vault\Test\TestCase\ReorderUsingVaultTest" summary="Reorder from Admin with saved within Braintree credit card">
<variation name="ReorderUsingVaultBraintreeTestVariation1" summary="Reorder from Admin with saved within Braintree credit card for Guest Customer" ticketId="MAGETWO-54870">
<variation name="ReorderUsingVaultBraintreeTestVariation1" summary="Reorder from Admin with saved within Braintree credit card for Guest Customer" ticketId="MAGETWO-54869, MAGETWO-54870">
<data name="description" xsi:type="string">Reorder from Admin with saved within Braintree credit card for Guest Customer</data>
<data name="products/0" xsi:type="string">catalogProductSimple::product_10_dollar</data>
<data name="customer/dataset" xsi:type="string">default</data>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
<testCase name="Magento\Vault\Test\TestCase\ReorderUsingVaultTest" summary="Reorder from Admin with saved within PayPal Payflow Pro credit card">
<variation name="ReorderUsingVaultPayflowProTestVariation1" summary="Reorder from Admin with saved within PayPal Payflow Pro credit card for Guest Customer" ticketId="MAGETWO-54872">
<variation name="ReorderUsingVaultPayflowProTestVariation1" summary="Reorder from Admin with saved within PayPal Payflow Pro credit card for Guest Customer" ticketId="MAGETWO-34217, MAGETWO-54872">
<data name="description" xsi:type="string">Reorder from Admin with saved within PayPal Payflow Pro credit card for Guest Customer</data>
<data name="products/0" xsi:type="string">catalogProductSimple::product_10_dollar</data>
<data name="customer/dataset" xsi:type="string">default</data>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Authorizenet\Model\Directpost;

use Magento\Authorizenet\Model\Directpost;
use Magento\Framework\Api\FilterBuilder;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\Framework\App\ObjectManager;
use Magento\Sales\Api\Data\OrderInterface;
use Magento\Sales\Api\OrderRepositoryInterface;
use Magento\Sales\Model\Order;
use Magento\TestFramework\Helper\Bootstrap;
use PHPUnit_Framework_MockObject_MockObject as MockObject;

/**
* Class contains tests for Authorize.net Direct Post request handler
*/
class RequestTest extends \PHPUnit_Framework_TestCase
{
/**
* @var Order
*/
private $order;

/**
* @var Request
*/
private $request;

/**
* @var ObjectManager
*/
private $objectManager;

protected function setUp()
{
$this->objectManager = Bootstrap::getObjectManager();

$this->order = $this->getOrder();
$this->request = $this->objectManager->get(Request::class);
}

/**
* @covers \Magento\Authorizenet\Model\Directpost\Request::setDataFromOrder
* @magentoDataFixture Magento/Authorizenet/_files/order.php
*/
public function testSetDataFromOrder()
{
$customerEmail = 'john.doe@example.com';
$merchantEmail = 'merchant@example.com';

/** @var Directpost|MockObject $payment */
$payment = $this->getMockBuilder(Directpost::class)
->disableOriginalConstructor()
->setMethods(['getConfigData'])
->getMock();

$payment->expects(static::exactly(2))
->method('getConfigData')
->willReturnMap([
['email_customer', null, $customerEmail],
['merchant_email', null, $merchantEmail]
]);

$result = $this->request->setDataFromOrder($this->order, $payment);

static::assertEquals('US', $result->getXCountry());
static::assertEquals('UK', $result->getXShipToCountry());
static::assertEquals($customerEmail, $result->getXEmailCustomer());
static::assertEquals($merchantEmail, $result->getXMerchantEmail());
}

/**
* Get stored order
* @return Order
*/
private function getOrder()
{
/** @var FilterBuilder $filterBuilder */
$filterBuilder = $this->objectManager->get(FilterBuilder::class);
$filters = [
$filterBuilder->setField(OrderInterface::INCREMENT_ID)
->setValue('100000002')
->create()
];

/** @var SearchCriteriaBuilder $searchCriteriaBuilder */
$searchCriteriaBuilder = $this->objectManager->get(SearchCriteriaBuilder::class);
$searchCriteria = $searchCriteriaBuilder->addFilters($filters)
->create();

$orderRepository = $this->objectManager->get(OrderRepositoryInterface::class);
$orders = $orderRepository->getList($searchCriteria)
->getItems();

/** @var OrderInterface $order */
return array_pop($orders);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Authorizenet\Model;

use Magento\Framework\Api\FilterBuilder;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\HTTP\ZendClient;
use Magento\Framework\HTTP\ZendClientFactory;
use Magento\Sales\Api\Data\OrderInterface;
use Magento\Sales\Api\OrderRepositoryInterface;
use Magento\Sales\Model\Order\Payment;
use Magento\TestFramework\Helper\Bootstrap;
use PHPUnit_Framework_MockObject_MockObject as MockObject;
use Zend_Http_Response;

/**
* Class contains tests for Direct Post integration
*/
class DirectpostTest extends \PHPUnit_Framework_TestCase
{
/**
* @var ObjectManager
*/
private $objectManager;

/**
* @var ZendClientFactory|MockObject
*/
private $httpClientFactory;

/**
* @var Directpost
*/
private $directPost;

protected function setUp()
{
$this->objectManager = Bootstrap::getObjectManager();

$this->httpClientFactory = $this->getMockBuilder(ZendClientFactory::class)
->disableOriginalConstructor()
->setMethods(['create'])
->getMock();

$this->directPost = $this->objectManager->create(Directpost::class, [
'httpClientFactory' => $this->httpClientFactory
]);
}

/**
* @covers \Magento\Authorizenet\Model\Directpost::capture
* @magentoDataFixture Magento/Authorizenet/_files/order.php
*/
public function testCapture()
{
$amount = 120.15;
/** @var Payment $payment */
$payment = $this->getPayment();
$transactionId = '106235225';

/** @var ZendClient|MockObject $httpClient */
$httpClient = $this->getMockBuilder(ZendClient::class)
->disableOriginalConstructor()
->setMethods(['setUri', 'setConfig', 'setParameterPost', 'setMethod', 'request'])
->getMock();

$this->httpClientFactory->expects(static::once())
->method('create')
->willReturn($httpClient);

$response = $this->getMockBuilder(Zend_Http_Response::class)
->disableOriginalConstructor()
->setMethods(['getBody'])
->getMock();
$response->expects(static::once())
->method('getBody')
->willReturn(
"1(~)1(~)1(~)This transaction has been approved.(~)AWZFTG(~)P(~){$transactionId}(~)100000002(~)
(~)120.15(~)CC(~)prior_auth_capture(~)(~)Anthony(~)Nealy(~)(~)Pearl St(~)Los Angeles(~)California
(~)10020(~)US(~)22-333-44(~)(~)customer@example.com(~)John(~)Doe(~)
(~)Bourne St(~)London(~)(~)DW23W(~)UK(~)0.00(~)(~){$amount}(~)(~)
(~)74B5D54ADFE98093A0FF6446(~)(~)(~)(~)(~)(~)(~)(~)(~)(~)(~)(~)(~)XXXX1111(~)Visa(~)(~)(~)(~)(~)
(~)(~)(~)(~)(~)(~)(~)(~)(~)(~)(~)(~)"
);

$httpClient->expects(static::once())
->method('request')
->willReturn($response);

$this->directPost->capture($payment, $amount);

static::assertEquals($transactionId, $payment->getTransactionId());
static::assertFalse($payment->getIsTransactionClosed());
static::assertEquals('US', $payment->getOrder()->getBillingAddress()->getCountryId());
static::assertEquals('UK', $payment->getOrder()->getShippingAddress()->getCountryId());
}

/**
* Get order payment
* @return Payment
*/
private function getPayment()
{
/** @var FilterBuilder $filterBuilder */
$filterBuilder = $this->objectManager->get(FilterBuilder::class);
$filters = [
$filterBuilder->setField(OrderInterface::INCREMENT_ID)
->setValue('100000002')
->create()
];

/** @var SearchCriteriaBuilder $searchCriteriaBuilder */
$searchCriteriaBuilder = $this->objectManager->get(SearchCriteriaBuilder::class);
$searchCriteria = $searchCriteriaBuilder->addFilters($filters)
->create();

$orderRepository = $this->objectManager->get(OrderRepositoryInterface::class);
$orders = $orderRepository->getList($searchCriteria)
->getItems();

/** @var OrderInterface $order */
$order = array_pop($orders);
return $order->getPayment();
}
}
Loading

0 comments on commit bbfff31

Please sign in to comment.