function it_saves_associations($registry, AssociationInterface $association1, AssociationInterface $association2, ProductInterface $product1, ProductInterface $product2, GroupInterface $group1, GroupInterface $group2, ObjectManager $manager) { $registry->getManagerForClass(Argument::any())->willReturn($manager); $registry->getManagers()->willReturn([$manager]); $association1->getProducts()->willReturn([$product1, $product2]); $association1->getGroups()->willReturn([$group1, $group2]); $association1->getId()->willReturn(2); $association2->getProducts()->willReturn([$product1, $product2]); $association2->getGroups()->willReturn([$group1, $group2]); $association2->getId()->willReturn(null); $manager->persist($association1)->shouldBeCalled(); $manager->persist($association2)->shouldBeCalled(); $manager->flush()->shouldBeCalled(); $this->write([$association1, $association2]); }
function it_normalizes_a_product_associations_in_standard_format_only(ProductInterface $product, AssociationInterface $association1, AssociationInterface $association2, AssociationTypeInterface $associationType1, AssociationTypeInterface $associationType2, GroupInterface $group1, ProductInterface $productAssociated) { $group1->getCode()->willReturn('group_code'); $associationType1->getCode()->willReturn('XSELL'); $association1->getAssociationType()->willReturn($associationType1); $association1->getGroups()->willReturn([$group1]); $association1->getProducts()->willReturn([]); $productAssociated->getReference()->willReturn('product_code'); $associationType2->getCode()->willReturn('PACK'); $association2->getAssociationType()->willReturn($associationType2); $association2->getGroups()->willReturn([]); $association2->getProducts()->willReturn([$productAssociated]); $product->getAssociations()->willReturn([$association1, $association2]); $this->normalize($product, 'standard')->shouldReturn(['PACK' => ['groups' => [], 'products' => ['product_code']], 'XSELL' => ['groups' => ['group_code'], 'products' => []]]); }
function it_normalizes_the_associations_of_the_product(ProductInterface $product, AssociationInterface $association1, AssociationInterface $association2, AssociationTypeInterface $type1, AssociationTypeInterface $type2, ProductInterface $productAssociated1, ProductInterface $productAssociated2, ProductInterface $productAssociated3, GroupInterface $groupAssociated1, GroupInterface $groupAssociated2) { $type1->getCode()->willReturn('wahou the type'); $type2->getCode()->willReturn('such a type'); $groupAssociated1->getCode()->willReturn('group 1'); $groupAssociated2->getCode()->willReturn('group 2'); $productAssociated1->getReference()->willReturn('product 1'); $productAssociated2->getReference()->willReturn('product 2'); $productAssociated3->getReference()->willReturn('product 3'); $association1->getAssociationType()->willReturn($type1); $association2->getAssociationType()->willReturn($type2); $association1->getGroups()->willReturn([$groupAssociated1]); $association2->getGroups()->willReturn([$groupAssociated1, $groupAssociated2]); $association1->getProducts()->willReturn([]); $association2->getProducts()->willReturn([$productAssociated1, $productAssociated2, $productAssociated3]); $product->getAssociations()->willReturn([$association1, $association2]); $this->normalize($product, 'json')->shouldReturn(['such a type' => ['groups' => ['group 1', 'group 2'], 'products' => ['product 1', 'product 2', 'product 3']], 'wahou the type' => ['groups' => ['group 1'], 'products' => []]]); }