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