/**
* This test verifies that promotions with code get the
* correct code within its tuple object.
* We add 1 promotion with code, and verify the single tuple
* that will be generated.
*
* @group promotions
*/
// now get the codes from our configuration
// and also from our line items (that already exist)
// and merge them both into a flat list
$extensionCodes = $cartExtension->getCodes(); $cartCodes = $original->getLineItems()->filterType(PromotionProcessor::LINE_ITEM_TYPE)->getReferenceIds(); $allCodes = array_unique(array_merge(array_values($cartCodes), $extensionCodes));
if(!$behavior->hasPermission(self::SKIP_AUTOMATIC_PROMOTIONS)){ // add auto promotions
$allPromotions->addAutomaticPromotions($this->searchPromotionsAuto($data, $context)); }
// check if max allowed redemption of promotion have been reached or not
// if max redemption has been reached promotion will not be added
$allPromotions = $this->getEligiblePromotionsWithDiscounts($allPromotions, $context->getCustomer());