Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssertTaxRateForm.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Tax\Test\Fixture\TaxRate;
10 use Magento\Tax\Test\Page\Adminhtml\TaxRateIndex;
11 use Magento\Tax\Test\Page\Adminhtml\TaxRateNew;
12 use Magento\Mtf\Constraint\AbstractConstraint;
13 
17 class AssertTaxRateForm extends AbstractConstraint
18 {
28  public function processAssert(
29  TaxRateIndex $taxRateIndexPage,
30  TaxRateNew $taxRateNewPage,
32  TaxRate $initialTaxRate = null
33  ) {
34  $data = $this->prepareData($taxRate, $initialTaxRate);
35  $filter = [
36  'code' => $data['code'],
37  ];
38 
39  $taxRateIndexPage->open();
40  $taxRateIndexPage->getTaxRateGrid()->searchAndOpen($filter);
41  $formData = $taxRateNewPage->getTaxRateForm()->getData($taxRate);
42  $dataDiff = $this->verifyForm($formData, $data);
43  \PHPUnit\Framework\Assert::assertTrue(
44  empty($dataDiff),
45  'Tax Rate form was filled incorrectly.'
46  . "\nLog:\n" . implode(";\n", $dataDiff)
47  );
48  }
49 
57  protected function prepareData(TaxRate $taxRate, TaxRate $initialTaxRate = null)
58  {
59  if ($initialTaxRate !== null) {
60  $data = array_merge($initialTaxRate->getData(), $taxRate->getData());
61  if ($taxRate->hasData('tax_country_id') && !$taxRate->hasData('tax_region_id')) {
62  unset($data['tax_region_id']);
63  }
64  } else {
65  $data = $taxRate->getData();
66  }
67  if ($data['zip_is_range'] === 'Yes') {
68  unset($data['tax_postcode']);
69  } else {
70  unset($data['zip_from'], $data['zip_to']);
71  }
72  $data['rate'] = number_format($data['rate'], 4);
73 
74  return $data;
75  }
76 
84  protected function verifyForm(array $formData, array $fixtureData)
85  {
86  $errorMessages = [];
87  $skippedFields = [
88  'id',
89  ];
90 
91  foreach ($fixtureData as $key => $value) {
92  if (in_array($key, $skippedFields)) {
93  continue;
94  }
95  if ($value !== $formData[$key]) {
96  $errorMessages[] = "Data in " . $key . " field is not equal."
97  . "\nExpected: " . $value
98  . "\nActual: " . $formData[$key];
99  }
100  }
101 
102  return $errorMessages;
103  }
104 
110  public function toString()
111  {
112  return 'Tax Rate form was filled correctly.';
113  }
114 }
prepareData(TaxRate $taxRate, TaxRate $initialTaxRate=null)
processAssert(TaxRateIndex $taxRateIndexPage, TaxRateNew $taxRateNewPage, TaxRate $taxRate, TaxRate $initialTaxRate=null)
$value
Definition: gender.phtml:16
verifyForm(array $formData, array $fixtureData)
$taxRate
Definition: tax_rule.php:12