Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SignifydObserveCaseStep.php
Go to the documentation of this file.
1 <?php
7 
8 use Magento\Mtf\TestStep\TestStepFactory;
9 use Magento\Mtf\TestStep\TestStepInterface;
13 use Magento\Signifyd\Test\Fixture\SignifydData;
14 use Magento\Signifyd\Test\Page\SignifydConsole\SignifydCases;
15 use Magento\Signifyd\Test\Page\SignifydConsole\SignifydNotifications;
16 
20 class SignifydObserveCaseStep implements TestStepInterface
21 {
27  private $assertCaseInfo;
28 
34  private $signifydAddress;
35 
41  private $signifydCases;
42 
48  private $signifydNotifications;
49 
55  private $signifydData;
56 
62  private $prices;
63 
69  private $order;
70 
76  private $testStepFactory;
77 
81  private $searchAttempts = 10;
82 
93  public function __construct(
94  AssertCaseInfoOnSignifydConsole $assertCaseInfoOnSignifydConsole,
95  SignifydAddress $signifydAddress,
96  SignifydCases $signifydCases,
97  SignifydNotifications $signifydNotifications,
98  SignifydData $signifydData,
99  OrderInjectable $order,
100  TestStepFactory $testStepFactory,
101  array $prices
102  ) {
103  $this->assertCaseInfo = $assertCaseInfoOnSignifydConsole;
104  $this->signifydAddress = $signifydAddress;
105  $this->signifydCases = $signifydCases;
106  $this->signifydNotifications = $signifydNotifications;
107  $this->signifydData = $signifydData;
108  $this->order = $order;
109  $this->testStepFactory = $testStepFactory;
110  $this->prices = $prices;
111  }
112 
116  public function run()
117  {
118  $this->signifydCases->open();
119  // Search case few times because it can appear with delay.
120  for ($attempts = $this->searchAttempts; $attempts > 0; $attempts--) {
121  $this->signifydCases->getCaseSearchBlock()
122  ->searchCaseByCustomerName($this->signifydAddress->getFirstname());
123  if ($this->signifydCases->getCaseSearchBlock()->isAnyCaseVisible()) {
124  break;
125  }
126  sleep(3);
127  }
128 
129  $this->signifydCases->getCaseSearchBlock()->selectCase();
130  $this->signifydCases->getCaseInfoBlock()->flagCase($this->signifydData->getCaseFlag());
131 
132  $this->assertCaseInfo->processAssert(
133  $this->signifydCases,
134  $this->signifydAddress,
135  $this->signifydData,
136  $this->prices,
137  $this->order->getId(),
138  $this->getCustomerFullName($this->signifydAddress)
139  );
140  }
141 
147  public function cleanup()
148  {
149  $this->testStepFactory->create(
150  SignifydCancelOrderStep::class,
151  ['order' => $this->order]
152  )->run();
153  }
154 
161  private function getCustomerFullName(SignifydAddress $billingAddress)
162  {
163  return sprintf('%s %s', $billingAddress->getFirstname(), $billingAddress->getLastname());
164  }
165 }
$billingAddress
Definition: order.php:25
$order
Definition: order.php:55
__construct(AssertCaseInfoOnSignifydConsole $assertCaseInfoOnSignifydConsole, SignifydAddress $signifydAddress, SignifydCases $signifydCases, SignifydNotifications $signifydNotifications, SignifydData $signifydData, OrderInjectable $order, TestStepFactory $testStepFactory, array $prices)