/** * @Given /^(this product) is available in "([^"]+)" size priced at ("[^"]+")$/ */ public function thisProductIsAvailableInSize(ProductInterface $product, $optionValueName, $price) { /** @var ProductVariantInterface $variant */ $variant = $this->productVariantFactory->createNew(); $optionValue = $this->sharedStorage->get(sprintf('%s_option_value', $optionValueName)); $variant->addOption($optionValue); $variant->setPrice($price); $variant->setCode(sprintf("%s_%s", $product->getCode(), $optionValueName)); $product->addVariant($variant); $this->objectManager->flush(); }
/** * @Then /^(this product) should not exist in the product catalog$/ */ public function productShouldNotExist(ProductInterface $product) { $this->iWantToBrowseProducts(); Assert::false($this->indexPage->isSingleResourceOnPage(['code' => $product->getCode()]), sprintf('Product with code %s exists but should not.', $product->getCode())); }
/** * @Given /^([^"]+) gives ("[^"]+%") off on a ("[^"]*" product)$/ */ public function itGivesPercentageDiscountOffOnAProduct(PromotionInterface $promotion, $discount, ProductInterface $product) { $this->createUnitPercentagePromotion($promotion, $discount, $this->getProductsFilterConfiguration([$product->getCode()])); }
/** * @Given the :product product's :optionValueName size belongs to :shippingCategory shipping category * @Given /^(this product) "([^"]+)" size belongs to ("([^"]+)" shipping category)$/ */ public function thisProductSizeBelongsToShippingCategory(ProductInterface $product, $optionValueName, ShippingCategoryInterface $shippingCategory) { $code = sprintf("%s_%s", $product->getCode(), $optionValueName); /** @var ProductVariantInterface $productVariant */ $productVariant = $product->getVariants()->filter(function ($variant) use($code) { return $code === $variant->getCode(); })->first(); Assert::notNull($productVariant, sprintf('Product variant with given code %s not exists!', $code)); $productVariant->setShippingCategory($shippingCategory); $this->objectManager->flush(); }
function it_reverse_transforms_into_array_of_products_codes(ProductInterface $axes, ProductInterface $shields) { $axes->getCode()->willReturn('axes'); $shields->getCode()->willReturn('shields'); $this->reverseTransform(new ArrayCollection([$axes->getWrappedObject(), $shields->getWrappedObject()]))->shouldReturn(['axes', 'shields']); }