processingCode = new ProcessingCode('PC1'); $this->quantity = new CouponQuantity(10); $this->availableIn = Country::FRANCE; $this->printRules = new PrintRules(maxPerCustomer: 3); }); it('creates a valid campaign coupon', function (): void { // GIVEN / WHEN $campaignCoupon = new CampaignCoupon( $this->processingCode, $this->quantity, $this->availableIn, $this->printRules ); // THEN expect($campaignCoupon->processingCode)->toBe($this->processingCode) ->and($campaignCoupon->quantity)->toBe($this->quantity) ->and($campaignCoupon->availableIn)->toBe($this->availableIn) ->and($campaignCoupon->printRules)->toBe($this->printRules); }); it('creates a valid campaign coupon whitout warning threshold quantity', function (): void { // GIVEN / WHEN $campaignCoupon = new CampaignCoupon( processingCode: $this->processingCode, quantity: $this->quantity, availableIn: $this->availableIn, printRules: $this->printRules ); // THEN expect($campaignCoupon->processingCode)->toBe($this->processingCode) ->and($campaignCoupon->quantity)->toBe($this->quantity) ->and($campaignCoupon->availableIn)->toBe($this->availableIn) ->and($campaignCoupon->printRules)->toBe($this->printRules); }); it('creates a valid campaign coupon whitout print rules', function (): void { // GIVEN / WHEN $campaignCoupon = new CampaignCoupon( processingCode: $this->processingCode, quantity: $this->quantity, availableIn: $this->availableIn, ); // THEN expect($campaignCoupon->processingCode)->toBe($this->processingCode) ->and($campaignCoupon->quantity)->toBe($this->quantity) ->and($campaignCoupon->availableIn)->toBe($this->availableIn); }); it('creates a valid campaign coupon whitout warning threshold quantity and print rules', function (): void { // GIVEN / WHEN $campaignCoupon = new CampaignCoupon( processingCode: $this->processingCode, quantity: $this->quantity, availableIn: $this->availableIn ); // THEN expect($campaignCoupon->processingCode)->toBe($this->processingCode) ->and($campaignCoupon->quantity)->toBe($this->quantity) ->and($campaignCoupon->availableIn)->toBe($this->availableIn); }); });