10 use Magento\CatalogRule\Test\Fixture\CatalogRule;
29 const TEST_TYPE =
'acceptance_test, extended_acceptance_test';
43 CatalogRule $catalogPriceRule,
45 $conditionEntity =
null,
50 $productSimple = $this->fixtureFactory->createByCode(
'catalogProductSimple', [
'dataset' =>
$product]);
51 $catalogPriceRule = $this->applyCustomerGroup($catalogPriceRule,
$customer);
52 $replace = $this->prepareCondition($productSimple, $conditionEntity);
55 $this->catalogRuleIndex->open();
56 $this->catalogRuleIndex->getGridPageActions()->addNew();
57 $this->catalogRuleNew->getEditForm()->fill($catalogPriceRule,
null, $replace);
58 $this->catalogRuleNew->getFormPageActions()->save();
68 protected function applyCustomerGroup(CatalogRule $catalogPriceRule, Customer
$customer =
null)
73 $customerGroup =
$customer->getDataFieldConfig(
'group_id')[
'source']->getCustomerGroup();
74 $catalogPriceRule = $this->fixtureFactory->createByCode(
77 'data' => array_merge(
78 $catalogPriceRule->getData(),
79 [
'customer_group_ids' => $customerGroup->getCustomerGroupCode()]
85 return $catalogPriceRule;
95 private function prepareCondition(CatalogProductSimple $productSimple, $conditionEntity)
99 switch ($conditionEntity) {
101 $result[
'%category_id%'] = $productSimple->getDataFieldConfig(
'category_ids')[
'source']->getIds()[0];
105 $attributes = $productSimple->getDataFieldConfig(
'attribute_set_id')[
'source']
106 ->getAttributeSet()->getDataFieldConfig(
'assigned_attributes')[
'source']->getAttributes();