Skip to content

Commit e732ddc

Browse files
MTA-3900: Create auto test to Refund an order placed through Braintree with full capture
2 parents 973bfe3 + c71c875 commit e732ddc

File tree

7 files changed

+241
-0
lines changed

7 files changed

+241
-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">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>
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: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data>
12+
<data name="products" xsi:type="array">
13+
<item name="0" xsi:type="string">catalogProductSimple::product_10_dollar</item>
14+
<item name="1" xsi:type="string">configurableProduct::with_one_option</item>
15+
<item name="2" xsi:type="string">bundleProduct::bundle_fixed_100_dollar_product</item>
16+
</data>
17+
<data name="customer/dataset" xsi:type="string">default</data>
18+
<data name="braintreeSandboxCustomer/dataset" xsi:type="string">braintree_sandbox_default</data>
19+
<data name="taxRule" xsi:type="string">us_ca_ny_rule</data>
20+
<data name="shippingAddress/dataset" xsi:type="string">US_address_1_without_email</data>
21+
<data name="checkoutMethod" xsi:type="string">guest</data>
22+
<data name="shipping" xsi:type="array">
23+
<item name="shipping_service" xsi:type="string">Flat Rate</item>
24+
<item name="shipping_method" xsi:type="string">Fixed</item>
25+
</data>
26+
<data name="payment/method" xsi:type="string">braintree</data>
27+
<data name="creditCard/dataset" xsi:type="string">visa_default</data>
28+
<data name="creditCard/data/payment_code" xsi:type="string">braintree</data>
29+
<data name="configData" xsi:type="string">braintree</data>
30+
<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>
33+
</data>
34+
<data name="transactions/refund" xsi:type="array">
35+
<item name="transactionType" xsi:type="string">Refund</item>
36+
<item name="statusIsClosed" xsi:type="string">Yes</item>
37+
</data>
38+
<data name="data/items_data/0/qty" xsi:type="string">-</data>
39+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage" />
40+
<constraint name="Magento\Sales\Test\Constraint\AssertRefundInCommentsHistory" />
41+
<constraint name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect" />
42+
<constraint name="Magento\Sales\Test\Constraint\AssertTransactionStatus" />
43+
</variation>
44+
</testCase>
45+
</config>
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
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 Magento\Mtf\ObjectManagerFactory;
12+
use Braintree\Gateway;
13+
use Magento\Mtf\TestStep\TestStepInterface;
14+
15+
/**
16+
* Settle transaction for Braintree Credit Card.
17+
*/
18+
class SettleTransactionStep implements TestStepInterface
19+
{
20+
/**
21+
* Braintree Sandbox customer fixture.
22+
*
23+
* @var BraintreeSandboxCustomer
24+
*/
25+
private $braintreeSandboxCustomer;
26+
27+
/**
28+
* Sales order page.
29+
*
30+
* @var OrderIndex
31+
*/
32+
private $salesOrder;
33+
34+
/**
35+
* Sales order view page.
36+
*
37+
* @var SalesOrderView
38+
*/
39+
private $salesOrderView;
40+
41+
/**
42+
* Order id.
43+
*
44+
* @var string
45+
*/
46+
private $orderId;
47+
48+
/**
49+
* @param BraintreeSandboxCustomer $braintreeSandboxCustomer
50+
* @param OrderIndex $salesOrder
51+
* @param SalesOrderView $salesOrderView
52+
* @param string $orderId
53+
*/
54+
public function __construct(
55+
BraintreeSandboxCustomer $braintreeSandboxCustomer,
56+
OrderIndex $salesOrder,
57+
SalesOrderView $salesOrderView,
58+
$orderId
59+
) {
60+
$this->braintreeSandboxCustomer = $braintreeSandboxCustomer;
61+
$this->salesOrder = $salesOrder;
62+
$this->salesOrderView = $salesOrderView;
63+
$this->orderId = $orderId;
64+
}
65+
66+
/**
67+
* Settle transaction for Braintree Credit Card.
68+
*
69+
* @return void
70+
*/
71+
public function run()
72+
{
73+
$credentials = $this->braintreeSandboxCustomer->getData();
74+
$gateway = ObjectManagerFactory::getObjectManager()->create(Gateway::class, ['config' => $credentials]);
75+
$transactionId = $this->getTransactionId();
76+
$gateway->testing()->settle($transactionId);
77+
}
78+
79+
/**
80+
* Get transaction id.
81+
*
82+
* @return string
83+
*/
84+
private function getTransactionId()
85+
{
86+
$this->salesOrder->open();
87+
$this->salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $this->orderId]);
88+
$this->salesOrderView->getOrderForm()->openTab('transactions');
89+
$actualTransactions = $this->salesOrderView->getOrderForm()->getTab('transactions')->getGridBlock()->getIds();
90+
91+
return current(array_keys($actualTransactions));
92+
}
93+
}

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)