/** * @param EntityManager $manager * @param array $address * @return OrderAddress */ protected function createOrderAddress(EntityManager $manager, array $address) { $orderAddress = new OrderAddress(); $orderAddress->setLabel($address['label'])->setCountry($this->getCountryByIso2Code($manager, $address['country']))->setCity($address['city'])->setRegion($this->getRegionByIso2Code($manager, $address['region']))->setStreet($address['street'])->setPostalCode($address['postalCode']); $manager->persist($orderAddress); return $orderAddress; }
/** * @param ObjectManager $manager * @param string $name * @param array $address * @return OrderAddress */ protected function createOrderAddress(ObjectManager $manager, $name, array $address) { /** @var Country $country */ $country = $manager->getReference('OroAddressBundle:Country', $address['country']); if (!$country) { throw new \RuntimeException('Can\'t find country with ISO ' . $address['country']); } /** @var Region $region */ $region = $manager->getReference('OroAddressBundle:Region', $address['region']); if (!$region) { throw new \RuntimeException(sprintf('Can\'t find region with code %s', $address['country'])); } $orderAddress = new OrderAddress(); $orderAddress->setCountry($country)->setCity($address['city'])->setRegion($region)->setStreet($address['street'])->setPostalCode($address['postalCode']); $manager->persist($orderAddress); $this->addReference($name, $orderAddress); return $orderAddress; }
/** * @param bool $isValid * @param array $submittedData * @param mixed $expectedData * @param mixed $defaultData * @param array $formErrors * @param array $groupedAddresses * @dataProvider submitWithPermissionProvider */ public function testSubmitWithoutManualPermission($isValid, $submittedData, $expectedData, $defaultData, array $formErrors = [], array $groupedAddresses = []) { $this->serializer->expects($this->any())->method('normalize')->willReturn(['a_1' => ['street' => 'street']]); $this->orderAddressManager->expects($this->once())->method('getGroupedAddresses')->willReturn($groupedAddresses); $this->orderAddressManager->expects($this->any())->method('getEntityByIdentifier')->will($this->returnCallback(function ($identifier) use($groupedAddresses) { foreach ($groupedAddresses as $groupedAddressesGroup) { if (array_key_exists($identifier, $groupedAddressesGroup)) { return $groupedAddressesGroup[$identifier]; } } return null; })); $this->orderAddressManager->expects($this->any())->method('updateFromAbstract')->will($this->returnCallback(function (AccountAddress $address) { $orderAddress = new OrderAddress(); $orderAddress->setCountry($address->getCountry()); $orderAddress->setStreet($address->getStreet()); return $orderAddress; })); $this->orderAddressSecurityProvider->expects($this->once())->method('isManualEditGranted')->willReturn(false); $this->checkForm($isValid, $submittedData, $expectedData, $defaultData, $formErrors); }