Skip to content

Commit 619209f

Browse files
MTA-3901: Add variation for Partial Refund an order placed through Braintree with Partial capture
2 parents 032ab4e + 87d9218 commit 619209f

File tree

26 files changed

+284
-116
lines changed

26 files changed

+284
-116
lines changed

dev/tests/functional/etc/repository_replacer.xml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,4 @@
144144
<field name="id" xsi:type="number">1</field>
145145
</dataset>
146146
</repository>
147-
148-
<repository class="Magento\Braintree\Test\Repository\BraintreeSandboxCustomer">
149-
<dataset name="braintree_sandbox_default">
150-
<field name="environment" xsi:type="string">BRAINTREEE_ENVIRONMENT</field>
151-
<field name="merchantId" xsi:type="string">BRAINTREEE_MERCHANT_ID</field>
152-
<field name="publicKey" xsi:type="string">BRAINTREE_PUBLIC_KEY</field>
153-
<field name="privateKey" xsi:type="string">BRAINTREE_PRIVATE_KEY</field>
154-
</dataset>
155-
</repository>
156147
</config>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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/Magento/Mtf/Repository/etc/repository.xsd">
9+
<repository class="Magento\Braintree\Test\Repository\BraintreeSandboxCustomer">
10+
<dataset name="braintree_sandbox_default">
11+
<field name="environment" xsi:type="string">BRAINTREEE_ENVIRONMENT</field>
12+
<field name="merchantId" xsi:type="string">BRAINTREEE_MERCHANT_ID</field>
13+
<field name="publicKey" xsi:type="string">BRAINTREE_PUBLIC_KEY</field>
14+
<field name="privateKey" xsi:type="string">BRAINTREE_PRIVATE_KEY</field>
15+
</dataset>
16+
</repository>
17+
</config>

dev/tests/functional/tests/app/Magento/Braintree/Test/TestCase/CreateOnlineCreditMemoBraintreePaypalTest.xml

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,24 @@
1111
<data name="products/0" xsi:type="string">catalogProductSimple::product_10_dollar</data>
1212
<data name="products/1" xsi:type="string">bundleProduct::bundle_fixed_100_dollar_product</data>
1313
<data name="customer/dataset" xsi:type="string">default</data>
14-
<data name="checkoutMethod" xsi:type="string">login</data>
14+
<data name="checkoutMethod" xsi:type="string">guest</data>
1515
<data name="taxRule" xsi:type="string">us_ca_ny_rule</data>
16-
<data name="refundedPrices" xsi:type="array">
17-
<item name="0" xsi:type="string">139.90</item>
16+
<data name="order/data/refund" xsi:type="array">
17+
<item name="0" xsi:type="array">
18+
<item name="invoiceId" xsi:type="string">0</item>
19+
</item>
20+
</data>
21+
<data name="order/data/price/refund" xsi:type="array">
22+
<item name="0" xsi:type="array">
23+
<item name="grand_creditmemo_total" xsi:type="string">139.90</item>
24+
</item>
1825
</data>
1926
<data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
2027
<data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
2128
<data name="shipping/shipping_method" xsi:type="string">Fixed</data>
2229
<data name="payment/method" xsi:type="string">braintree_paypal</data>
2330
<data name="configData" xsi:type="string">braintree, braintree_paypal, braintree_paypal_sale, braintree_paypal_skip_order_review</data>
2431
<data name="paymentAction" xsi:type="string">sale</data>
25-
<data name="data/items_data/0/qty" xsi:type="string">-</data>
2632
<data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data>
2733
<constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" />
2834
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCreditMemoTab" />
@@ -31,20 +37,35 @@
3137
<variation name="CreateOnlineCreditMemoBraintreePaypalTestVariation2" summary="Partial refund of order placed within Braintree PayPal" ticketId="MAGETWO-48698">
3238
<data name="products/0" xsi:type="string">catalogProductSimple::simple_for_sales</data>
3339
<data name="customer/dataset" xsi:type="string">default</data>
34-
<data name="checkoutMethod" xsi:type="string">login</data>
40+
<data name="checkoutMethod" xsi:type="string">guest</data>
3541
<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.20</item>
42+
<data name="order/data/refund" xsi:type="array">
43+
<item name="0" xsi:type="array">
44+
<item name="invoiceId" xsi:type="string">0</item>
45+
<item name="items_data" xsi:type="array">
46+
<item name="0" xsi:type="array">
47+
<item name="qty" xsi:type="string">1</item>
48+
</item>
49+
</item>
50+
</item>
51+
<item name="1" xsi:type="array">
52+
<item name="invoiceId" xsi:type="string">0</item>
53+
</item>
54+
</data>
55+
<data name="order/data/price/refund" xsi:type="array">
56+
<item name="0" xsi:type="array">
57+
<item name="grand_creditmemo_total" xsi:type="string">621.20</item>
58+
</item>
59+
<item name="1" xsi:type="array">
60+
<item name="grand_creditmemo_total" xsi:type="string">606.20</item>
61+
</item>
3862
</data>
3963
<data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
4064
<data name="shipping/shipping_service" xsi:type="string">Flat Rate</data>
4165
<data name="shipping/shipping_method" xsi:type="string">Fixed</data>
4266
<data name="payment/method" xsi:type="string">braintree_paypal</data>
4367
<data name="configData" xsi:type="string">braintree, braintree_paypal, braintree_paypal_skip_order_review</data>
4468
<data name="data/items_data/0/qty" xsi:type="string">2</data>
45-
<data name="refundData/items_data/0/qty" xsi:type="string">1</data>
46-
<data name="order/dataset" xsi:type="string">default</data>
47-
<data name="isCreditMemoPartial" xsi:type="string">Yes</data>
4869
<data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data>
4970
<constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" />
5071
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCreditMemoTab" />

dev/tests/functional/tests/app/Magento/Braintree/Test/TestCase/CreateOnlineCreditMemoBraintreeTest.xml

Lines changed: 69 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,80 @@
2828
<data name="creditCard/data/payment_code" xsi:type="string">braintree</data>
2929
<data name="configData" xsi:type="string">braintree</data>
3030
<data name="status" xsi:type="string">Closed</data>
31-
<data name="refundedPrices" xsi:type="array">
32-
<item name="0" xsi:type="string">145.98</item>
31+
<data name="order/data/refund" xsi:type="array">
32+
<item name="0" xsi:type="array">
33+
<item name="invoiceId" xsi:type="string">0</item>
34+
</item>
35+
</data>
36+
<data name="order/data/price/refund" xsi:type="array">
37+
<item name="0" xsi:type="array">
38+
<item name="grand_creditmemo_total" xsi:type="string">145.98</item>
39+
</item>
40+
</data>
41+
<data name="transactions/refund" xsi:type="array">
42+
<item name="transactionType" xsi:type="string">Refund</item>
43+
<item name="statusIsClosed" xsi:type="string">Yes</item>
44+
</data>
45+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" />
46+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCommentsHistory" />
47+
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />
48+
<constraint name="Magento\Sales\Test\Constraint\AssertTransactionStatus" />
49+
</variation>
50+
<variation name="CreateOnlineCreditMemoBraintreeTestVariation2" summary="Partial Refund an order placed through Braintree with Partial capture" ticketId="MAGETWO-38325">
51+
<data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data>
52+
<data name="products" xsi:type="array">
53+
<item name="0" xsi:type="string">catalogProductSimple::product_10_dollar</item>
54+
<item name="1" xsi:type="string">configurableProduct::with_one_option</item>
55+
<item name="2" xsi:type="string">bundleProduct::bundle_fixed_100_dollar_product</item>
56+
</data>
57+
<data name="customer/dataset" xsi:type="string">default</data>
58+
<data name="braintreeSandboxCustomer/dataset" xsi:type="string">braintree_sandbox_default</data>
59+
<data name="taxRule" xsi:type="string">us_ca_ny_rule</data>
60+
<data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
61+
<data name="checkoutMethod" xsi:type="string">guest</data>
62+
<data name="shipping" xsi:type="array">
63+
<item name="shipping_service" xsi:type="string">Flat Rate</item>
64+
<item name="shipping_method" xsi:type="string">Fixed</item>
65+
</data>
66+
<data name="payment/method" xsi:type="string">braintree</data>
67+
<data name="creditCard/dataset" xsi:type="string">visa_default</data>
68+
<data name="creditCard/data/payment_code" xsi:type="string">braintree</data>
69+
<data name="configData" xsi:type="string">braintree</data>
70+
<data name="status" xsi:type="string">Processing</data>
71+
<data name="order/data/refund" xsi:type="array">
72+
<item name="0" xsi:type="array">
73+
<item name="invoiceId" xsi:type="string">0</item>
74+
<item name="items_data" xsi:type="array">
75+
<item name="1" xsi:type="array">
76+
<item name="qty" xsi:type="string">0</item>
77+
</item>
78+
</item>
79+
</item>
80+
<item name="1" xsi:type="array">
81+
<item name="invoiceId" xsi:type="string">0</item>
82+
</item>
83+
</data>
84+
<data name="order/data/price/refund" xsi:type="array">
85+
<item name="0" xsi:type="array">
86+
<item name="grand_creditmemo_total" xsi:type="string">134.07</item>
87+
</item>
88+
<item name="1" xsi:type="array">
89+
<item name="grand_creditmemo_total" xsi:type="string">1.08</item>
90+
</item>
3391
</data>
3492
<data name="transactions/refund" xsi:type="array">
3593
<item name="transactionType" xsi:type="string">Refund</item>
3694
<item name="statusIsClosed" xsi:type="string">Yes</item>
3795
</data>
38-
<data name="data/items_data/0/qty" xsi:type="string">-</data>
96+
<data name="transactions/capture" xsi:type="array">
97+
<item name="transactionType" xsi:type="string">Capture</item>
98+
<item name="statusIsClosed" xsi:type="string">Yes</item>
99+
</data>
100+
<data name="data/items_data" xsi:type="array">
101+
<item name="0" xsi:type="array">
102+
<item name="qty" xsi:type="string">0</item>
103+
</item>
104+
</data>
39105
<constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" />
40106
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCommentsHistory" />
41107
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />

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

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,55 +11,78 @@
1111
use Magento\Checkout\Test\Page\CheckoutOnepageSuccess;
1212
use Magento\Mtf\Fixture\FixtureFactory;
1313
use Magento\Mtf\TestStep\TestStepInterface;
14+
use Magento\Sales\Test\Fixture\OrderInjectable;
1415

1516
/**
16-
* Class PlaceOrderWithPaypalStep
17+
* Place order with Paypal in one page checkout.
1718
*/
1819
class PlaceOrderWithPaypalStep implements TestStepInterface
1920
{
2021
/**
22+
* Onepage checkout page.
23+
*
2124
* @var CheckoutOnepage
2225
*/
2326
private $checkoutOnepage;
2427

2528
/**
29+
* Assert that Order Grand Total is correct on checkout page review block.
30+
*
2631
* @var AssertGrandTotalOrderReview
2732
*/
2833
private $assertGrandTotalOrderReview;
2934

3035
/**
36+
* Assert billing address is not present in selected payment method.
37+
*
3138
* @var AssertBillingAddressAbsentInPayment
3239
*/
3340
private $assertBillingAddressAbsentInPayment;
3441

3542
/**
43+
* One page checkout success page.
44+
*
3645
* @var CheckoutOnepageSuccess
3746
*/
3847
private $checkoutOnepageSuccess;
3948

4049
/**
50+
* Price array.
51+
*
4152
* @var array
4253
*/
4354
private $prices;
4455

4556
/**
57+
* Factory for fixtures.
58+
*
4659
* @var FixtureFactory
4760
*/
4861
private $fixtureFactory;
4962

5063
/**
64+
* Array of product entities.
65+
*
5166
* @var array
5267
*/
5368
private $products;
5469

70+
/**
71+
* Fixture OrderInjectable.
72+
*
73+
* @var OrderInjectable
74+
*/
75+
private $order;
76+
5577
/**
5678
* @param CheckoutOnepage $checkoutOnepage
5779
* @param AssertGrandTotalOrderReview $assertGrandTotalOrderReview
5880
* @param AssertBillingAddressAbsentInPayment $assertBillingAddressAbsentInPayment
5981
* @param CheckoutOnepageSuccess $checkoutOnepageSuccess
6082
* @param FixtureFactory $fixtureFactory
6183
* @param array $products
62-
* @param array $prices
84+
* @param array|null $prices
85+
* @param OrderInjectable|null $order
6386
*/
6487
public function __construct(
6588
CheckoutOnepage $checkoutOnepage,
@@ -68,7 +91,8 @@ public function __construct(
6891
CheckoutOnepageSuccess $checkoutOnepageSuccess,
6992
FixtureFactory $fixtureFactory,
7093
array $products,
71-
array $prices = []
94+
array $prices = [],
95+
OrderInjectable $order = null
7296
) {
7397
$this->checkoutOnepage = $checkoutOnepage;
7498
$this->assertGrandTotalOrderReview = $assertGrandTotalOrderReview;
@@ -77,10 +101,13 @@ public function __construct(
77101
$this->fixtureFactory = $fixtureFactory;
78102
$this->products = $products;
79103
$this->prices = $prices;
104+
$this->order = $order;
80105
}
81106

82107
/**
83-
* @inheritdoc
108+
* Place order after checking order totals on review step.
109+
*
110+
* @return array
84111
*/
85112
public function run()
86113
{
@@ -94,15 +121,15 @@ public function run()
94121
->getSelectedPaymentMethodBlock()
95122
->clickPayWithPaypal();
96123
$this->checkoutOnepage->getBraintreePaypalBlock()->process($parentWindow);
97-
124+
$data = [
125+
'entity_id' => ['products' => $this->products]
126+
];
127+
$orderData = $this->order !== null ? $this->order->getData() : [];
98128
$order = $this->fixtureFactory->createByCode(
99129
'orderInjectable',
100-
[
101-
'data' => [
102-
'entity_id' => ['products' => $this->products]
103-
]
104-
]
130+
['data' => array_merge($data, $orderData)]
105131
);
132+
106133
return [
107134
'orderId' => $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(),
108135
'order' => $order

dev/tests/functional/tests/app/Magento/Checkout/Test/Fixture/Cart/Items.php

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,6 @@ public function __construct(array $params, array $data = [])
3434
{
3535
$this->params = $params;
3636
$this->products = isset($data['products']) ? $data['products'] : [];
37-
38-
foreach ($this->products as $product) {
39-
$classItem = 'Magento\\' . $this->getModuleName($product) . '\Test\Fixture\Cart\Item';
40-
$item = ObjectManager::getInstance()->create($classItem, ['product' => $product]);
41-
42-
$this->data[] = $item;
43-
}
4437
}
4538

4639
/**
@@ -55,6 +48,24 @@ protected function getModuleName(FixtureInterface $product)
5548
return isset($match[1]) ? $match[1] : '';
5649
}
5750

51+
/**
52+
* Return prepared dataset.
53+
*
54+
* @param null|string $key
55+
* @return array
56+
*/
57+
public function getData($key = null)
58+
{
59+
foreach ($this->products as $product) {
60+
$classItem = 'Magento\\' . $this->getModuleName($product) . '\Test\Fixture\Cart\Item';
61+
$item = ObjectManager::getInstance()->create($classItem, ['product' => $product]);
62+
$item->getData();
63+
$this->data[] = $item;
64+
}
65+
66+
return $this->data;
67+
}
68+
5869
/**
5970
* Get source products.
6071
*

0 commit comments

Comments
 (0)