function it_add_violation_if_product_is_simple_and_code_has_been_used_in_other_product_variant(ExecutionContextInterface $context, ProductInterface $product, ProductVariantInterface $existingProductVariant, ProductVariantRepositoryInterface $productVariantRepository, ConstraintViolationBuilderInterface $constraintViolationBuilder)
 {
     $constraint = new UniqueSimpleProductCode(['message' => 'Simple product code has to be unique']);
     $product->isSimple()->willReturn(true);
     $product->getCode()->willReturn('AWESOME_PRODUCT');
     $context->buildViolation('Simple product code has to be unique', Argument::cetera())->willReturn($constraintViolationBuilder);
     $constraintViolationBuilder->atPath('code')->shouldBeCalled()->willReturn($constraintViolationBuilder);
     $constraintViolationBuilder->addViolation()->shouldBeCalled()->willReturn($constraintViolationBuilder);
     $productVariantRepository->findOneBy(['code' => 'AWESOME_PRODUCT'])->willReturn($existingProductVariant);
     $this->validate($product, $constraint);
 }