Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SettleTransactionStep.php
Go to the documentation of this file.
1 <?php
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 
18 class SettleTransactionStep implements TestStepInterface
19 {
25  private $braintreeSandboxCustomer;
26 
32  private $salesOrder;
33 
39  private $salesOrderView;
40 
46  private $orderId;
47 
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 
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 
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 }
__construct(BraintreeSandboxCustomer $braintreeSandboxCustomer, OrderIndex $salesOrder, SalesOrderView $salesOrderView, $orderId)