8 class RuleTest extends \PHPUnit\Framework\TestCase
32 $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
34 $this->coupon = $this->getMockBuilder(\
Magento\SalesRule\Model\Coupon::class)
35 ->disableOriginalConstructor()
36 ->setMethods([
'loadPrimaryByRule',
'setRule',
'setIsPrimary',
'getCode',
'getUsageLimit'])
39 $couponFactory = $this->getMockBuilder(\
Magento\SalesRule\Model\CouponFactory::class)
40 ->disableOriginalConstructor()
41 ->setMethods([
'create'])
43 $couponFactory->expects($this->any())
45 ->willReturn($this->coupon);
47 $this->conditionCombineFactoryMock = $this->getMockBuilder(
48 \
Magento\SalesRule\Model\Rule\Condition\CombineFactory::class
49 )->disableOriginalConstructor()
50 ->setMethods([
'create'])
53 $this->condProdCombineFactoryMock = $this->getMockBuilder(
54 \
Magento\SalesRule\Model\Rule\Condition\Product\CombineFactory::class
55 )->disableOriginalConstructor()
56 ->setMethods([
'create'])
60 \
Magento\SalesRule\Model\Rule::class,
62 'couponFactory' => $couponFactory,
63 'condCombineFactory' => $this->conditionCombineFactoryMock,
64 'condProdCombineF' => $this->condProdCombineFactoryMock,
71 $this->coupon->expects($this->once())
72 ->method(
'loadPrimaryByRule')
74 $this->coupon->expects($this->once())
78 $this->coupon->expects($this->once())
79 ->method(
'setIsPrimary')
82 $this->coupon->expects($this->once())
84 ->willReturn(
'test_code');
85 $this->coupon->expects($this->once())
86 ->method(
'getUsageLimit')
89 $this->model->setId(1);
90 $this->model->setUsesPerCoupon(
null);
91 $this->model->setUseAutoGeneration(
false);
93 $this->model->loadCouponCode();
94 $this->assertEquals(1, $this->model->getUsesPerCoupon());
102 $this->conditionCombineFactoryMock->expects($this->exactly(2))
104 ->willReturn($conditionMock);
107 $this->condProdCombineFactoryMock->expects($this->exactly(2))
109 ->willReturn($prodConditionMock);
111 $this->model->beforeSave();
112 $this->model->getConditions();
113 $this->model->getActions();
121 $prodConditionMock = $this->getMockBuilder(\
Magento\SalesRule\Model\Rule\Condition\Product\Combine::class)
122 ->disableOriginalConstructor()
123 ->setMethods([
'setRule',
'setId',
'loadArray',
'getConditions'])
126 $prodConditionMock->expects($this->any())
129 $prodConditionMock->expects($this->any())
132 $prodConditionMock->expects($this->any())
133 ->method(
'getConditions')
136 return $prodConditionMock;
144 $conditionMock = $this->getMockBuilder(\
Magento\SalesRule\Model\Rule\Condition\Combine::class)
145 ->disableOriginalConstructor()
146 ->setMethods([
'setRule',
'setId',
'loadArray',
'getConditions'])
148 $conditionMock->expects($this->any())
151 $conditionMock->expects($this->any())
154 $conditionMock->expects($this->any())
155 ->method(
'getConditions')
158 return $conditionMock;
164 $this->model->setId(100);
165 $expectedResult =
'form_namerule_conditions_fieldset_100';
166 $this->assertEquals($expectedResult, $this->model->getConditionsFieldSetId(
$formName));
172 $this->model->setId(100);
173 $expectedResult =
'form_namerule_actions_fieldset_100';
174 $this->assertEquals($expectedResult, $this->model->getActionsFieldSetId(
$formName));
$condProdCombineFactoryMock
$conditionCombineFactoryMock
testGetActionsFieldSetId()
testBeforeSaveResetConditionToNull()
testGetConditionsFieldSetId()