|
5 | 5 | */
|
6 | 6 | namespace Magento\SalesRule\Model\ResourceModel;
|
7 | 7 |
|
| 8 | +use Magento\SalesRule\Test\Fixture\ProductCondition as ProductConditionFixture; |
| 9 | +use Magento\SalesRule\Test\Fixture\ProductFoundInCartConditions as ProductFoundInCartConditionsFixture; |
| 10 | +use Magento\SalesRule\Test\Fixture\Rule as RuleFixture; |
| 11 | +use Magento\TestFramework\Fixture\DataFixture; |
| 12 | +use Magento\TestFramework\Fixture\DataFixtureStorage; |
| 13 | +use Magento\TestFramework\Fixture\DataFixtureStorageManager; |
| 14 | +use Magento\TestFramework\Helper\Bootstrap; |
| 15 | + |
8 | 16 | /**
|
9 | 17 | * @magentoDbIsolation enabled
|
10 | 18 | * @magentoAppIsolation enabled
|
11 | 19 | */
|
12 | 20 | class RuleTest extends \PHPUnit\Framework\TestCase
|
13 | 21 | {
|
| 22 | + /** |
| 23 | + * @var DataFixtureStorage |
| 24 | + */ |
| 25 | + private $fixtures; |
| 26 | + |
| 27 | + /** |
| 28 | + * @var Rule |
| 29 | + */ |
| 30 | + private $resource; |
| 31 | + |
| 32 | + /** |
| 33 | + * @inheirtDoc |
| 34 | + */ |
| 35 | + protected function setUp(): void |
| 36 | + { |
| 37 | + $this->fixtures = Bootstrap::getObjectManager()->get( |
| 38 | + DataFixtureStorageManager::class |
| 39 | + )->getStorage(); |
| 40 | + $this->resource = Bootstrap::getObjectManager()->create( |
| 41 | + Rule::class |
| 42 | + ); |
| 43 | + } |
| 44 | + |
14 | 45 | /**
|
15 | 46 | * @magentoDataFixture Magento/SalesRule/_files/rule_custom_product_attribute.php
|
16 | 47 | */
|
17 | 48 | public function testAfterSave()
|
18 | 49 | {
|
19 |
| - $resource = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( |
20 |
| - \Magento\SalesRule\Model\ResourceModel\Rule::class |
21 |
| - ); |
22 |
| - $items = $resource->getActiveAttributes(); |
| 50 | + $items = $this->resource->getActiveAttributes(); |
23 | 51 |
|
24 | 52 | $this->assertEquals([['attribute_code' => 'attribute_for_sales_rule_1']], $items);
|
25 | 53 | }
|
| 54 | + |
| 55 | + #[ |
| 56 | + DataFixture( |
| 57 | + ProductConditionFixture::class, |
| 58 | + ['attribute' => 'category_ids', 'value' => '2'], |
| 59 | + 'cond11' |
| 60 | + ), |
| 61 | + DataFixture( |
| 62 | + ProductFoundInCartConditionsFixture::class, |
| 63 | + ['conditions' => ['$cond11$']], |
| 64 | + 'cond1' |
| 65 | + ), |
| 66 | + DataFixture( |
| 67 | + RuleFixture::class, |
| 68 | + ['discount_amount' => 50, 'conditions' => ['$cond1$'], 'is_active' => 0], |
| 69 | + 'rule1' |
| 70 | + ) |
| 71 | + ] |
| 72 | + public function testGetActiveAttributes() |
| 73 | + { |
| 74 | + $rule = $this->fixtures->get('rule1'); |
| 75 | + $items = $this->resource->getActiveAttributes(); |
| 76 | + $this->assertEquals([], $items); |
| 77 | + $rule->setIsActive(1); |
| 78 | + $rule->save(); |
| 79 | + $items = $this->resource->getActiveAttributes(); |
| 80 | + $this->assertEquals([['attribute_code' => 'category_ids']], $items); |
| 81 | + } |
26 | 82 | }
|
0 commit comments