Skip to content

Commit 0260b1e

Browse files
committed
Merge remote-tracking branch 'mpi/MAGETWO-48211' into pr-mpi-200416
2 parents 6f6ae38 + b3ae6cb commit 0260b1e

File tree

10 files changed

+459
-58
lines changed

10 files changed

+459
-58
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Braintree\Test\TestCase;
7+
8+
use Magento\Mtf\TestCase\Scenario;
9+
10+
/**
11+
* Preconditions:
12+
* 1. PLace order via Briantree PayPal.
13+
*
14+
* Steps:
15+
* 1. Log in to Admin.
16+
* 2. Open created order.
17+
* 3. Create credit memo.
18+
* 4. Perform assertions.
19+
*
20+
* @group Braintree_(CS)
21+
* @ZephyrId MAGETWO-48689, MAGETWO-48698
22+
*/
23+
class CreateOnlineCreditMemoBraintreePaypalTest extends Scenario
24+
{
25+
/* tags */
26+
const MVP = 'yes';
27+
const DOMAIN = 'CS';
28+
const TEST_TYPE = '3rd_party_test';
29+
/* end tags */
30+
31+
/**
32+
* Runs test for online credit memo creation for order placed via Braintree PayPal.
33+
*
34+
* @return void
35+
*/
36+
public function test()
37+
{
38+
$this->executeScenario();
39+
}
40+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
/**
4+
* Copyright © 2016 Magento. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd">
9+
<testCase name="Magento\Braintree\Test\TestCase\CreateOnlineCreditMemoBraintreePaypalTest" summary="Create online credit memo for Braintree credit card" ticketId="MAGETWO-38324">
10+
<variation name="CreateCreditMemoBraintreePaypalTestVariation1" summary="Full refund of order placed within Braintree PayPal" ticketId="MAGETWO-48689">
11+
<data name="products" xsi:type="string">catalogProductSimple::product_10_dollar, bundleProduct::bundle_fixed_100_dollar_product</data>
12+
<data name="customer/dataset" xsi:type="string">default</data>
13+
<data name="checkoutMethod" xsi:type="string">login</data>
14+
<data name="taxRule" xsi:type="string">us_ca_ny_rule</data>
15+
<data name="refundedPrices" xsi:type="array">
16+
<item name="0" xsi:type="string">139.9</item>
17+
</data>
18+
<data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
19+
<data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
20+
<data name="shipping/shipping_method" xsi:type="string">Fixed</data>
21+
<data name="payment/method" xsi:type="string">braintree_paypal</data>
22+
<data name="configData" xsi:type="string">braintree, braintree_paypal_sale</data>
23+
<data name="paymentAction" xsi:type="string">sale</data>
24+
<data name="orderButtonsAvailable" xsi:type="string">Back, Send Email, Credit Memo, Hold, Ship, Reorder</data>
25+
<data name="data/items_data/0/qty" xsi:type="string">-</data>
26+
<data name="tag" xsi:type="string">test_type:3rd_party_test</data>
27+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" />
28+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCreditMemoTab" />
29+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCommentsHistory" />
30+
</variation>
31+
<variation name="CreateOnlineCreditMemoBraintreePaypalTestVariation2" summary="Partial refund of order placed within Braintree PayPal" ticketId="MAGETWO-48698">
32+
<data name="products" xsi:type="string">catalogProductSimple::simple_for_sales</data>
33+
<data name="customer/dataset" xsi:type="string">default</data>
34+
<data name="checkoutMethod" xsi:type="string">login</data>
35+
<data name="taxRule" xsi:type="string">us_ca_ny_rule</data>
36+
<data name="refundedPrices" xsi:type="array">
37+
<item name="0" xsi:type="string">621.2</item>
38+
</data>
39+
<data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
40+
<data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
41+
<data name="shipping/shipping_method" xsi:type="string">Fixed</data>
42+
<data name="payment/method" xsi:type="string">braintree_paypal</data>
43+
<data name="configData" xsi:type="string">braintree, braintree_paypal</data>
44+
<data name="orderButtonsAvailable" xsi:type="string">Back, Send Email, Credit Memo, Hold, Ship, Reorder</data>
45+
<data name="data/items_data/0/qty" xsi:type="string">2</data>
46+
<data name="refundData/items_data/0/qty" xsi:type="string">1</data>
47+
<data name="order/dataset" xsi:type="string">default</data>
48+
<data name="isCreditMemoPartial" xsi:type="string">Yes</data>
49+
<data name="tag" xsi:type="string">test_type:3rd_party_test</data>
50+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" />
51+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCreditMemoTab" />
52+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCommentsHistory" />
53+
</variation>
54+
</testCase>
55+
</config>
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Braintree\Test\TestStep;
8+
9+
use Magento\Config\Test\Fixture\ConfigData;
10+
use Magento\Mtf\ObjectManager;
11+
use Magento\Sales\Test\Fixture\OrderInjectable;
12+
use Magento\Sales\Test\Page\Adminhtml\OrderCreditMemoNew;
13+
use Magento\Sales\Test\Page\Adminhtml\OrderIndex;
14+
use Magento\Sales\Test\Page\Adminhtml\OrderInvoiceView;
15+
use Magento\Sales\Test\Page\Adminhtml\SalesOrderView;
16+
use Magento\Mtf\TestStep\TestStepInterface;
17+
use Braintree\Gateway;
18+
19+
/**
20+
* Create credit memo for order placed via Braintree credit card payment method.
21+
*/
22+
class CreateBraintreeCreditMemoStep implements TestStepInterface
23+
{
24+
/**
25+
* Orders Page.
26+
*
27+
* @var OrderIndex
28+
*/
29+
private $orderIndex;
30+
31+
/**
32+
* Order View Page.
33+
*
34+
* @var SalesOrderView
35+
*/
36+
private $salesOrderView;
37+
38+
/**
39+
* OrderCreditMemoNew Page.
40+
*
41+
* @var OrderCreditMemoNew
42+
*/
43+
private $orderCreditMemoNew;
44+
45+
/**
46+
* OrderInjectable fixture.
47+
*
48+
* @var OrderInjectable
49+
*/
50+
private $order;
51+
52+
/**
53+
* Credit memo data.
54+
*
55+
* @var array|null
56+
*/
57+
private $refundData;
58+
59+
/**
60+
* Order invoice view page.
61+
*
62+
* @var OrderInvoiceView
63+
*/
64+
private $orderInvoiceView;
65+
66+
/**
67+
* @construct
68+
* @param OrderIndex $orderIndex
69+
* @param SalesOrderView $salesOrderView
70+
* @param OrderInjectable $order
71+
* @param OrderInvoiceView $orderInvoiceView
72+
* @param OrderCreditMemoNew $orderCreditMemoNew
73+
* @param array|null refundData [optional]
74+
*/
75+
public function __construct(
76+
OrderIndex $orderIndex,
77+
SalesOrderView $salesOrderView,
78+
OrderInjectable $order,
79+
OrderInvoiceView $orderInvoiceView,
80+
OrderCreditMemoNew $orderCreditMemoNew,
81+
$refundData = null
82+
) {
83+
$this->orderIndex = $orderIndex;
84+
$this->salesOrderView = $salesOrderView;
85+
$this->order = $order;
86+
$this->orderCreditMemoNew = $orderCreditMemoNew;
87+
$this->refundData = $refundData;
88+
$this->orderInvoiceView = $orderInvoiceView;
89+
}
90+
91+
/**
92+
* Create credit memo.
93+
*
94+
* @return array
95+
*/
96+
public function run()
97+
{
98+
$this->orderIndex->open();
99+
$this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]);
100+
/** @var \Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Invoices\Grid $invoicesGrid */
101+
$invoicesGrid = $this->salesOrderView->getOrderForm()->getTab('invoices')->getGridBlock();
102+
$this->salesOrderView->getOrderForm()->openTab('invoices');
103+
$invoicesGrid->viewInvoice();
104+
$this->salesOrderView->getPageActions()->orderInvoiceCreditMemo();
105+
if (!empty($this->refundData)) {
106+
$this->orderCreditMemoNew->getFormBlock()->fillProductData(
107+
$this->refundData,
108+
$this->order->getEntityId()['products']
109+
);
110+
$this->orderCreditMemoNew->getFormBlock()->updateQty();
111+
}
112+
$this->orderCreditMemoNew->getFormBlock()->submit();
113+
114+
return ['ids' => ['creditMemoIds' => $this->getCreditMemoIds()]];
115+
}
116+
117+
/**
118+
* Get credit memo ids.
119+
*
120+
* @return array
121+
*/
122+
private function getCreditMemoIds()
123+
{
124+
$this->salesOrderView->getOrderForm()->openTab('creditmemos');
125+
return $this->salesOrderView->getOrderForm()->getTab('creditmemos')->getGridBlock()->getIds();
126+
}
127+
}

dev/tests/functional/tests/app/Magento/Braintree/Test/TestStep/PlaceOrderWithPaypalStep.php

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Magento\Checkout\Test\Constraint\AssertGrandTotalOrderReview;
99
use Magento\Checkout\Test\Page\CheckoutOnepage;
1010
use Magento\Checkout\Test\Page\CheckoutOnepageSuccess;
11+
use Magento\Mtf\Fixture\FixtureFactory;
1112
use Magento\Mtf\TestStep\TestStepInterface;
1213

1314
/**
@@ -35,21 +36,37 @@ class PlaceOrderWithPaypalStep implements TestStepInterface
3536
*/
3637
private $prices;
3738

39+
/**
40+
* @var FixtureFactory
41+
*/
42+
private $fixtureFactory;
43+
44+
/**
45+
* @var array
46+
*/
47+
private $products;
48+
3849
/**
3950
* @param CheckoutOnepage $checkoutOnepage
4051
* @param AssertGrandTotalOrderReview $assertGrandTotalOrderReview
4152
* @param CheckoutOnepageSuccess $checkoutOnepageSuccess
53+
* @param FixtureFactory $fixtureFactory
54+
* @param array $products
4255
* @param array $prices
4356
*/
4457
public function __construct(
4558
CheckoutOnepage $checkoutOnepage,
4659
AssertGrandTotalOrderReview $assertGrandTotalOrderReview,
4760
CheckoutOnepageSuccess $checkoutOnepageSuccess,
61+
FixtureFactory $fixtureFactory,
62+
array $products,
4863
array $prices = []
4964
) {
5065
$this->checkoutOnepage = $checkoutOnepage;
5166
$this->assertGrandTotalOrderReview = $assertGrandTotalOrderReview;
5267
$this->checkoutOnepageSuccess = $checkoutOnepageSuccess;
68+
$this->fixtureFactory = $fixtureFactory;
69+
$this->products = $products;
5370
$this->prices = $prices;
5471
}
5572

@@ -63,6 +80,17 @@ public function run()
6380
}
6481
$this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder();
6582
$this->checkoutOnepage->getBraintreePaypalBlock()->process();
66-
return ['orderId' => $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId()];
83+
$order = $this->fixtureFactory->createByCode(
84+
'orderInjectable',
85+
[
86+
'data' => [
87+
'entity_id' => ['products' => $this->products]
88+
]
89+
]
90+
);
91+
return [
92+
'orderId' => $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(),
93+
'order' => $order
94+
];
6795
}
6896
}

0 commit comments

Comments
 (0)