Skip to content

Commit 12521ae

Browse files
MTA-3900: Create auto test to Refund an order placed through Braintree with full capture
1 parent c429316 commit 12521ae

File tree

7 files changed

+236
-0
lines changed

7 files changed

+236
-0
lines changed

dev/tests/functional/etc/repository_replacer.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,4 +144,13 @@
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">sandbox</field>
151+
<field name="merchantId" xsi:type="string">v6cfgg6s452yc2ys</field>
152+
<field name="publicKey" xsi:type="string">s7gr9jbddsyfhgj7</field>
153+
<field name="privateKey" xsi:type="string">996440dc0e9d611fc2db5f48f610b674</field>
154+
</dataset>
155+
</repository>
147156
</config>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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/fixture.xsd">
9+
<fixture name="braintree_sandbox_customer"
10+
module="Magento_Braintree"
11+
type="virtual"
12+
repository_class="Magento\Braintree\Test\Repository\BraintreeSandboxCustomer"
13+
class="Magento\Braintree\Test\Fixture\BraintreeSandboxCustomer">
14+
<field name="environment" />
15+
<field name="merchantId" />
16+
<field name="publicKey" />
17+
<field name="privateKey" />
18+
</fixture>
19+
</config>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" ?>
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>
Lines changed: 40 additions & 0 deletions
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. Full capture of order placed within Braintree.
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
21+
* @ZephyrId MAGETWO-38324
22+
*/
23+
class CreateOnlineCreditMemoBraintreeTest extends Scenario
24+
{
25+
/* tags */
26+
const MVP = 'yes';
27+
const TEST_TYPE = '3rd_party_test';
28+
const SEVERITY = 'S1';
29+
/* end tags */
30+
31+
/**
32+
* Runs test for online credit memo creation for order placed via Braintree Credit Card.
33+
*
34+
* @return void
35+
*/
36+
public function test()
37+
{
38+
$this->executeScenario();
39+
}
40+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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\CreateOnlineCreditMemoBraintreeTest" summary="Create online credit memo for Braintree credit card" ticketId="MAGETWO-38324">
10+
<variation name="CreateOnlineCreditMemoBraintreeTestVariation1" summary="Refund an order placed through Braintree with full capture" ticketId="MAGETWO-38324">
11+
<data name="products/0" xsi:type="string">catalogProductSimple::product_10_dollar</data>
12+
<data name="products/1" xsi:type="string">configurableProduct::with_one_option</data>
13+
<data name="products/2" xsi:type="string">bundleProduct::bundle_fixed_100_dollar_product</data>
14+
<data name="customer/dataset" xsi:type="string">default</data>
15+
<data name="braintreeSandboxCustomer/dataset" xsi:type="string">braintree_sandbox_default</data>
16+
<data name="taxRule" xsi:type="string">us_ca_ny_rule</data>
17+
<data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
18+
<data name="checkoutMethod" xsi:type="string">guest</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</data>
22+
<data name="creditCard/dataset" xsi:type="string">visa_default</data>
23+
<data name="creditCard/data/payment_code" xsi:type="string">braintree</data>
24+
<data name="configData" xsi:type="string">braintree</data>
25+
<data name="status" xsi:type="string">Closed</data>
26+
<data name="refundedPrices" xsi:type="array">
27+
<item name="0" xsi:type="string">145.98</item>
28+
</data>
29+
<data name="transactions/Refund" xsi:type="array">
30+
<item name="transactionType" xsi:type="string">Refund</item>
31+
<item name="statusIsClosed" xsi:type="string">Yes</item>
32+
</data>
33+
<data name="data/items_data/0/qty" xsi:type="string">-</data>
34+
<data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data>
35+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" />
36+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCommentsHistory" />
37+
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />
38+
<constraint name="Magento\Sales\Test\Constraint\AssertTransactionStatus" />
39+
</variation>
40+
</testCase>
41+
</config>
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Braintree\Test\TestStep;
7+
8+
use Magento\Braintree\Test\Fixture\BraintreeSandboxCustomer;
9+
use Magento\Sales\Test\Page\Adminhtml\OrderIndex;
10+
use Magento\Sales\Test\Page\Adminhtml\SalesOrderView;
11+
use Braintree\Gateway;
12+
use Magento\Mtf\TestStep\TestStepInterface;
13+
14+
/**
15+
* Settle transaction for Braintree Credit Card.
16+
*/
17+
class SettleTransactionStep implements TestStepInterface
18+
{
19+
/**
20+
* Braintree Sandbox customer fixture.
21+
*
22+
* @var BraintreeSandboxCustomer
23+
*/
24+
private $braintreeSandboxCustomer;
25+
26+
/**
27+
* Sales order page.
28+
*
29+
* @var OrderIndex
30+
*/
31+
private $salesOrder;
32+
33+
/**
34+
* Sales order view page.
35+
*
36+
* @var SalesOrderView
37+
*/
38+
private $salesOrderView;
39+
40+
/**
41+
* Order id.
42+
*
43+
* @var string
44+
*/
45+
private $orderId;
46+
47+
/**
48+
* @param BraintreeSandboxCustomer $braintreeSandboxCustomer
49+
* @param OrderIndex $salesOrder
50+
* @param SalesOrderView $salesOrderView
51+
* @param string $orderId
52+
*/
53+
public function __construct(
54+
BraintreeSandboxCustomer $braintreeSandboxCustomer,
55+
OrderIndex $salesOrder,
56+
SalesOrderView $salesOrderView,
57+
$orderId
58+
) {
59+
$this->braintreeSandboxCustomer = $braintreeSandboxCustomer;
60+
$this->salesOrder = $salesOrder;
61+
$this->salesOrderView = $salesOrderView;
62+
$this->orderId = $orderId;
63+
}
64+
65+
/**
66+
* Settle transaction for Braintree Credit Card.
67+
*
68+
* @return void
69+
*/
70+
public function run()
71+
{
72+
$credentials = $this->braintreeSandboxCustomer->getData();
73+
$gateway = new Gateway($credentials);
74+
$transactionId = $this->getTransactionId();
75+
$gateway->testing()->settle($transactionId);
76+
}
77+
78+
/**
79+
* Get transaction id.
80+
*
81+
* @return string
82+
*/
83+
private function getTransactionId()
84+
{
85+
$this->salesOrder->open();
86+
$this->salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $this->orderId]);
87+
$this->salesOrderView->getOrderForm()->openTab('transactions');
88+
$actualTransactions = $this->salesOrderView->getOrderForm()->getTab('transactions')->getGridBlock()->getIds();
89+
90+
return current(array_keys($actualTransactions));
91+
}
92+
}

dev/tests/functional/tests/app/Magento/Braintree/Test/etc/testcase.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,4 +188,22 @@
188188
<step name="useVaultPaymentToken" module="Magento_Vault" next="submitOrder" />
189189
<step name="submitOrder" module="Magento_Sales" />
190190
</scenario>
191+
<scenario name="CreateOnlineCreditMemoBraintreeTest" firstStep="setupConfiguration">
192+
<step name="setupConfiguration" module="Magento_Config" next="createProducts" />
193+
<step name="createProducts" module="Magento_Catalog" next="createTaxRule" />
194+
<step name="createTaxRule" module="Magento_Tax" next="addProductsToTheCart" />
195+
<step name="addProductsToTheCart" module="Magento_Checkout" next="estimateShippingAndTax" />
196+
<step name="estimateShippingAndTax" module="Magento_Checkout" next="clickProceedToCheckout" />
197+
<step name="clickProceedToCheckout" module="Magento_Checkout" next="createCustomer" />
198+
<step name="createCustomer" module="Magento_Customer" next="selectCheckoutMethod" />
199+
<step name="selectCheckoutMethod" module="Magento_Checkout" next="fillShippingAddress" />
200+
<step name="fillShippingAddress" module="Magento_Checkout" next="fillShippingMethod" />
201+
<step name="fillShippingMethod" module="Magento_Checkout" next="selectPaymentMethod" />
202+
<step name="selectPaymentMethod" module="Magento_Checkout" next="fillBillingInformation" />
203+
<step name="fillBillingInformation" module="Magento_Checkout" next="placeOrder" />
204+
<step name="placeOrder" module="Magento_Checkout" next="createInvoice" />
205+
<step name="createInvoice" module="Magento_Sales" next="settleTransaction" />
206+
<step name="settleTransaction" module="Magento_Braintree" next="createOnlineCreditMemo" />
207+
<step name="createOnlineCreditMemo" module="Magento_Sales" />
208+
</scenario>
191209
</config>

0 commit comments

Comments
 (0)