Source of file GroupDiscountConstraintTest.php
Size: 1,475 Bytes - Last Modified: 2021-12-23T10:25:05+00:00
/var/www/docs.ssmods.com/process/src/tests/GroupDiscountConstraintTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | <?php namespace SilverShop\Discounts\Tests; use SilverShop\Model\Order; use SilverStripe\Dev\SapphireTest; use SilverShop\Tests\ShopTest; use SilverShop\Discounts\Model\OrderCoupon; use SilverStripe\Security\Group; use SilverStripe\Security\Member; class GroupDiscountConstraintTest extends SapphireTest { protected static $fixture_file = [ 'shop.yml' ]; public function setUp() { parent::setUp(); ShopTest::setConfiguration(); $this->cart = $this->objFromFixture(Order::class, 'cart'); $this->othercart = $this->objFromFixture(Order::class, 'othercart'); } public function testMemberGroup() { $coupon = OrderCoupon::create( [ 'Title' => 'Special Members Coupon', 'Code' => 'GROUPED', 'Type' => 'Percent', 'Percent' => 0.9, 'Active' => 1, 'GroupID' => $this->objFromFixture(Group::class, 'resellers')->ID ] ); $coupon->write(); $context = ['CouponCode' => $coupon->Code]; $this->assertFalse($coupon->validateOrder($this->cart, $context), 'Invalid for memberless order'); $context = [ 'CouponCode' => $coupon->Code, 'Member' => $this->objFromFixture(Member::class, 'bobjones') ]; $this->assertTrue($coupon->validateOrder($this->othercart, $context), 'Valid because member is in resellers group'); } } |