9 use Magento\CatalogRule\Test\Fixture\CatalogRule;
10 use Magento\CatalogRule\Test\Page\Adminhtml\CatalogRuleIndex;
11 use Magento\CatalogRule\Test\Page\Adminhtml\CatalogRuleNew;
12 use Magento\Mtf\Constraint\AbstractConstraint;
29 CatalogRule $catalogPriceRule,
30 CatalogRuleIndex $pageCatalogRuleIndex,
31 CatalogRuleNew $pageCatalogRuleNew,
32 CatalogRule $catalogPriceRuleOriginal =
null 34 $data = ($catalogPriceRuleOriginal ===
null)
35 ? $catalogPriceRule->getData()
36 : array_merge($catalogPriceRuleOriginal->getData(), $catalogPriceRule->getData());
37 $filter[
'name'] =
$data[
'name'];
39 $pageCatalogRuleIndex->open();
40 $pageCatalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter);
41 $formData = $pageCatalogRuleNew->getEditForm()->getData($catalogPriceRule);
42 $fixtureData = $catalogPriceRule->getData();
44 if (isset($formData[
'discount_amount'])) {
45 $formData[
'discount_amount'] = floatval($formData[
'discount_amount']);
47 if (isset($fixtureData[
'discount_amount'])) {
48 $fixtureData[
'discount_amount'] = floatval($fixtureData[
'discount_amount']);
50 $diff = $this->
verifyData($formData, $fixtureData);
51 \PHPUnit\Framework\Assert::assertTrue(
64 protected function verifyData(array $formData, array $fixtureData)
67 foreach ($fixtureData as $key =>
$value) {
68 if ($key ==
'conditions') {
72 $diff = array_diff(
$value, $formData[$key]);
73 $diff = array_merge($diff, array_diff($formData[$key],
$value));
75 $errorMessage[] =
"Data in " . $key .
" field not equal." 76 .
"\nExpected: " . implode(
", ",
$value)
77 .
"\nActual: " . implode(
", ", $formData[$key]);
80 if (
$value !== $formData[$key]) {
81 $errorMessage[] =
"Data in " . $key .
" field not equal." 83 .
"\nActual: " . $formData[$key];
97 return 'Displayed catalog price rule data on edit page(backend) equals to passed from fixture.';