function it_adds_violation_if_variant_with_given_same_options_already_exists(ExecutionContextInterface $context, ProductInterface $product, ProductVariantInterface $variant, ProductVariantsParityCheckerInterface $variantsParityChecker) { $constraint = new ProductVariantCombination(['message' => 'Variant with given options already exists']); $variant->getProduct()->willReturn($product); $product->hasVariants()->willReturn(true); $product->hasOptions()->willReturn(true); $variantsParityChecker->checkParity($variant, $product)->willReturn(true); $context->addViolation('Variant with given options already exists', Argument::any())->shouldBeCalled(); $this->validate($variant, $constraint); }
function it_adds_violation_if_variant_with_given_same_options_already_exists(ExecutionContextInterface $context, ProductInterface $variable, ProductOptionValueInterface $optionValue, ProductVariantInterface $existingVariant, ProductVariantInterface $variant) { $constraint = new ProductVariantCombination(['message' => 'Variant with given options already exists']); $variant->getProduct()->willReturn($variable); $variant->getOptionValues()->willReturn(new ArrayCollection([$optionValue->getWrappedObject()])); $existingVariant->hasOptionValue($optionValue)->willReturn(true); $variable->hasVariants()->willReturn(true); $variable->hasOptions()->willReturn(true); $variable->getVariants()->willReturn([$existingVariant]); $context->addViolation('Variant with given options already exists', Argument::any())->shouldBeCalled(); $this->validate($variant, $constraint); }