Example #1
0
 /**
  * @constructor
  * @param FixtureFactory $fixtureFactory
  * @param array $params
  * @param array $data
  */
 public function __construct(FixtureFactory $fixtureFactory, array $params, array $data)
 {
     $this->params = $params;
     if (isset($data['entity'])) {
         list($type, $entity) = explode('/', $data['entity']);
         list($fixture, $dataSet) = explode('::', $entity);
         $this->entity = $fixtureFactory->createByCode($fixture, ['dataSet' => $dataSet]);
         $this->entity->persist();
         $this->data = sprintf("catalog/%s/view/id/%s", $type, $this->entity->getId());
     }
     if (isset($data['custom'])) {
         $this->data = $data['custom'];
     }
     if (isset($data['readyEntity'])) {
         $this->entity = $data['readyEntity'];
     }
 }
Example #2
0
 /**
  * @param FixtureFactory $fixtureFactory
  * @param array $params
  * @param string $data [optional]
  */
 public function __construct(FixtureFactory $fixtureFactory, array $params, $data = '')
 {
     $this->params = $params;
     if (!isset($data['entity']) || $data['entity'] === '-') {
         $this->data = $data;
         return;
     }
     preg_match('`%(.*?)%`', $data['entity'], $dataSet);
     $entityConfig = isset($dataSet[1]) ? explode('::', $dataSet[1]) : [];
     if (count($entityConfig) > 1) {
         /** @var FixtureInterface $fixture */
         $this->entity = $fixtureFactory->createByCode($entityConfig[0], ['dataSet' => $entityConfig[1]]);
         $this->entity->persist();
         $id = $this->entity->hasData('id') ? $this->entity->getId() : $this->entity->getPageId();
         $this->data = preg_replace('`(%.*?%)`', $id, $data['entity']);
     } else {
         $this->data = strval($data['entity']);
     }
 }
Example #3
0
 /**
  * Prepare data.
  *
  * @param FixtureInterface $fixture
  * @param $isSearchByEmail
  * @return array
  */
 protected function prepareData(FixtureInterface $fixture, $isSearchByEmail)
 {
     /** @var Order $fixture */
     /** @var Customer $customer */
     $customer = $fixture->getDataFieldConfig('customer_id')['source']->getCustomer();
     $data = ['order_id' => $fixture->getId(), 'billing_last_name' => $customer->getLastname()];
     if ($isSearchByEmail) {
         $data['find_order_by'] = 'Email';
         $data['email_address'] = $customer->getEmail();
     } else {
         $data['find_order_by'] = 'ZIP Code';
         $data['billing_zip_code'] = $fixture->getDataFieldConfig('billing_address_id')['source']->getPostcode();
     }
     return $data;
 }
Example #4
0
 /**
  * Fill the form.
  *
  * @param FixtureInterface $fixture
  * @param SimpleElement|null $element
  * @param bool $isSearchByEmail [optional]
  * @return $this
  */
 public function fill(FixtureInterface $fixture, SimpleElement $element = null, $isSearchByEmail = true)
 {
     /** @var OrderInjectable $fixture */
     /** @var Customer $customer */
     $customer = $fixture->getDataFieldConfig('customer_id')['source']->getCustomer();
     $data = ['order_id' => $fixture->getId(), 'billing_last_name' => $customer->getLastname()];
     if ($isSearchByEmail) {
         $data['find_order_by'] = 'Email';
         $data['email_address'] = $customer->getEmail();
     } else {
         $data['find_order_by'] = 'ZIP Code';
         $data['billing_zip_code'] = $fixture->getDataFieldConfig('billing_address_id')['source']->getPostcode();
     }
     $fields = isset($data['fields']) ? $data['fields'] : $data;
     $mapping = $this->dataMapping($fields);
     $this->waitLoadForm();
     $this->_fill($mapping, $element);
     return $this;
 }