10 use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteEdit;
11 use Magento\SalesRule\Test\Page\Adminhtml\PromoQuoteIndex;
12 use Magento\Mtf\Constraint\AbstractConstraint;
13 use Magento\Mtf\Fixture\FixtureFactory;
26 'conditions_serialized',
43 PromoQuoteIndex $promoQuoteIndex,
44 PromoQuoteEdit $promoQuoteEdit,
45 FixtureFactory $fixtureFactory,
47 SalesRule $salesRuleOrigin =
null,
48 SalesRule $salesRuleAdditional =
null 54 $promoQuoteIndex->open();
55 $promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter);
56 $fixtureData = $salesRuleOrigin !=
null 57 ? array_merge($salesRuleOrigin->getData(),
$salesRule->getData())
59 $salesRuleMerged = $fixtureFactory->createByCode(
'salesRule', [
'data' => $fixtureData]);
60 $formData = $promoQuoteEdit->getSalesRuleForm()->getData($salesRuleMerged);
61 $fixtureData = $salesRuleOrigin !=
null 62 ? array_merge($salesRuleOrigin->getData(),
$salesRule->getData())
64 if ($salesRuleAdditional) {
65 $fixtureData = array_merge($fixtureData, $salesRuleAdditional->getData());
67 $dataDiff = $this->
verify($fixtureData, $formData);
68 \PHPUnit\Framework\Assert::assertTrue(
70 'Sales rule data on edit page(backend) not equals to passed from fixture.' 71 .
"\nFailed values:\n " . implode(
";\n ", $dataDiff)
82 protected function verify(array $fixtureData, array $formData)
86 foreach ($fixtureData as $key =>
$value) {
88 $diff = array_diff(
$value, $formData[$key]);
89 $diff = array_merge($diff, array_diff($formData[$key],
$value));
91 $errorMessage[] =
"Data in " . $key .
" field is not equal." 92 .
"\nExpected: " . implode(
", ",
$value)
93 .
"\nActual: " . implode(
", ", $formData[$key]);
96 if (!in_array($key, $this->skippedFields) &&
$value !== $formData[$key]) {
97 $errorMessage[] =
"Data in " . $key .
" field not equal." 99 .
"\nActual: " . $formData[$key];
104 return $errorMessage;
114 return 'Displayed sales rule data on edit page(backend) equals to passed from fixture.';