Пример #1
10
 /**
  * Fill gift message form on order level
  *
  * @param GiftMessage $giftMessage
  * @return void
  */
 public function fillGiftMessageOrder(GiftMessage $giftMessage)
 {
     /** @var \Magento\GiftMessage\Test\Block\Cart\GiftOptions\GiftMessageForm $giftMessageForm */
     if ($giftMessage->getAllowGiftMessagesForOrder() === 'Yes') {
         $this->_rootElement->find($this->allowGiftOptions)->click();
         $giftMessageForm = $this->blockFactory->create('Magento\\GiftMessage\\Test\\Block\\Cart\\GiftOptions\\GiftMessageForm', ['element' => $this->_rootElement->find($this->giftMessageOrderForm)]);
         $formData = ['sender' => $giftMessage->getSender(), 'recipient' => $giftMessage->getRecipient(), 'message' => $giftMessage->getMessage()];
         $formData = $this->fixtureFactory->createByCode('giftMessage', ['data' => $formData]);
         $giftMessageForm->fill($formData);
         $this->_rootElement->find($this->giftMessageOrderButton)->click();
         $this->waitForElementVisible($this->giftMessageSummary);
     }
 }
 /**
  * Create new order via curl.
  *
  * @return array
  */
 public function run()
 {
     /** @var Order $order */
     $order = $this->fixtureFactory->createByCode('order', ['dataSet' => $this->orderDataSet]);
     $order->persist();
     return ['order' => $order];
 }
Пример #3
0
 /**
  * @constructor
  * @param FixtureFactory $fixtureFactory
  * @param string $data
  * @param array $params [optional]
  */
 public function __construct(FixtureFactory $fixtureFactory, $data, array $params = [])
 {
     $this->params = $params;
     $explodedData = explode('::', $data);
     switch (sizeof($explodedData)) {
         case 1:
             $this->data = $explodedData[0];
             break;
         case 3:
             list($fixture, $dataset, $field) = $explodedData;
             $entity = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]);
             if (!$entity->hasData('id')) {
                 $entity->persist();
             }
             $this->data = $entity->getData($field);
             $this->entity = $entity;
             break;
         case 4:
             list($fixture, $dataset, $source, $field) = $explodedData;
             $entity = $fixtureFactory->createByCode($fixture, ['dataset' => $dataset]);
             if (!$entity->hasData('id')) {
                 $entity->persist();
             }
             $source = $source == 'product' ? $entity->getEntityId()['products'][0] : $entity->getData($source);
             $this->data = $source->getData($field);
             $this->entity = $entity;
             break;
     }
 }
Пример #4
0
 /**
  * Fill Sales Data.
  *
  * @return array
  */
 public function run()
 {
     $this->orderCreateIndex->getCreateBlock()->submitOrder();
     $this->salesOrderView->getMessagesBlock()->waitSuccessMessage();
     $orderId = trim($this->salesOrderView->getTitleBlock()->getTitle(), '#');
     $order = $this->fixtureFactory->createByCode('orderInjectable', ['data' => ['id' => $orderId, 'customer_id' => ['customer' => $this->customer], 'entity_id' => ['products' => $this->products], 'billing_address_id' => ['billingAddress' => $this->billingAddress]]]);
     return ['orderId' => $orderId, 'order' => $order];
 }
 /**
  * Prepare VAT ID confguration.
  *
  * @param ConfigData $vatConfig
  * @param string $customerGroup
  * @return void
  */
 protected function prepareVatConfig(ConfigData $vatConfig, $customerGroup)
 {
     $groupConfig = ['customer/create_account/viv_domestic_group' => ['value' => $this->vatGroups['valid_domestic_group']->getCustomerGroupId()], 'customer/create_account/viv_intra_union_group' => ['value' => $this->vatGroups['valid_intra_union_group']->getCustomerGroupId()], 'customer/create_account/viv_invalid_group' => ['value' => $this->vatGroups['invalid_group']->getCustomerGroupId()], 'customer/create_account/viv_error_group' => ['value' => $this->vatGroups['error_group']->getCustomerGroupId()]];
     $vatConfig = $this->fixtureFactory->createByCode('configData', ['data' => array_replace_recursive($vatConfig->getSection(), $groupConfig)]);
     $vatConfig->persist();
     $customerData = array_merge($this->customer->getData(), ['group_id' => ['value' => $this->vatGroups[$customerGroup]->getCustomerGroupCode()]], ['address' => ['addresses' => $this->customer->getDataFieldConfig('address')['source']->getAddresses()]]);
     $this->customer = $this->fixtureFactory->createByCode('customer', ['data' => $customerData]);
 }
Пример #6
0
 /**
  * Update CMS Page.
  *
  * @param CmsPage $cms
  * @param CmsPage $cmsOriginal
  * @return array
  */
 public function test(CmsPage $cms, CmsPage $cmsOriginal)
 {
     // Steps
     $this->cmsPageIndex->open();
     $this->cmsPageIndex->getCmsPageGridBlock()->searchAndOpen(['title' => $cmsOriginal->getTitle()]);
     $this->cmsPageNew->getPageForm()->fill($cms);
     $this->cmsPageNew->getPageMainActions()->save();
     return ['cms' => $this->factory->createByCode('cmsPage', ['data' => array_merge($cmsOriginal->getData(), $cms->getData())])];
 }
 /**
  * Create reward exchange rates.
  *
  * @return void
  */
 public function run()
 {
     if (count($this->rewardRates)) {
         foreach ($this->rewardRates as $rewardRate) {
             $exchangeRate = $this->fixtureFactory->createByCode('rewardRate', ['dataSet' => $rewardRate]);
             $exchangeRate->persist();
         }
     }
 }
Пример #8
0
 /**
  * Place order after checking order totals on review step.
  *
  * @return array
  */
 public function run()
 {
     if (isset($this->prices['grandTotal'])) {
         $this->assertGrandTotalOrderReview->processAssert($this->checkoutOnepage, $this->prices['grandTotal']);
     }
     $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->clickPlaceOrder();
     $order = $this->fixtureFactory->createByCode('orderInjectable', ['data' => ['entity_id' => ['products' => $this->products]]]);
     return ['orderId' => $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(), 'order' => $order];
 }
 /**
  * Set Default Attribute Value.
  *
  * @return void
  */
 public function run()
 {
     $customAttribute = $this->attribute;
     if ($this->attributeValue !== null) {
         $customAttribute = ['value' => $this->attributeValue, 'attribute' => $customAttribute];
     }
     $product = $this->fixtureFactory->createByCode('catalogProductSimple', ['data' => ['custom_attribute' => $customAttribute]]);
     $this->catalogProductEdit->getProductForm()->fill($product);
 }
Пример #10
0
 /**
  * Get product by data
  *
  * @param string $productData
  * @param array $relatedProductsData
  * @return FixtureInterface
  */
 protected function getProductByData($productData, array $relatedProductsData)
 {
     list($fixtureName, $dataSet) = explode('::', $productData);
     $relatedProductsPresets = [];
     foreach ($relatedProductsData as $type => $presets) {
         $relatedProductsPresets[$type]['presets'] = $presets;
     }
     return $this->fixtureFactory->createByCode($fixtureName, ['dataSet' => $dataSet, 'data' => $relatedProductsPresets]);
 }
 /**
  * Create simple product and inject pages.
  *
  * @param SystemCurrencySymbolIndex $currencySymbolIndex
  * @param SystemCurrencyIndex $currencyIndex
  * @param FixtureFactory $fixtureFactory
  * @return array
  */
 public function __inject(SystemCurrencySymbolIndex $currencySymbolIndex, SystemCurrencyIndex $currencyIndex, FixtureFactory $fixtureFactory)
 {
     $this->currencySymbolIndex = $currencySymbolIndex;
     $this->currencyIndex = $currencyIndex;
     $this->fixtureFactory = $fixtureFactory;
     $product = $this->fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'product_with_category']);
     $product->persist();
     return ['product' => $product];
 }
 /**
  * Create sales rule.
  *
  * @return array
  */
 public function run()
 {
     $result['salesRule'] = null;
     if ($this->salesRule !== null) {
         $salesRule = $this->fixtureFactory->createByCode('salesRule', ['dataset' => $this->salesRule]);
         $salesRule->persist();
         $result['salesRule'] = $salesRule;
     }
     return $result;
 }
 /**
  * Prepare data.
  *
  * @param FixtureFactory $fixtureFactory
  * @return array
  */
 public function __prepare(FixtureFactory $fixtureFactory)
 {
     /** @var CatalogProductSimple $productSymbols */
     $productSymbols = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'abc_dfj_simple_for_advancedsearch']);
     $productSymbols->persist();
     /** @var CatalogProductSimple $productNumbers */
     $productNumbers = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'adc_123_simple_for_advancedsearch']);
     $productNumbers->persist();
     return ['productsSearch' => ['simple_1' => $productSymbols, 'simple_2' => $productNumbers]];
 }
 /**
  * Create product.
  *
  * @return array
  */
 public function run()
 {
     list($fixtureClass, $dataSet) = explode('::', $this->product);
     /** @var FixtureInterface $product */
     $product = $this->fixtureFactory->createByCode(trim($fixtureClass), ['dataSet' => trim($dataSet), 'data' => $this->data]);
     if ($product->hasData('id') === false) {
         $product->persist();
     }
     return ['product' => $product];
 }
 /**
  * Create tax rule.
  *
  * @return array
  */
 public function run()
 {
     $result['taxRule'] = null;
     if ($this->taxRule != '-') {
         $taxRule = $this->fixtureFactory->createByCode('taxRule', ['dataSet' => $this->taxRule]);
         $taxRule->persist();
         $result['taxRule'] = $taxRule;
     }
     return $result;
 }
 /**
  * Create customer and 2 simple products with categories before run test.
  *
  * @param FixtureFactory $fixtureFactory
  * @return array
  */
 public function __prepare(FixtureFactory $fixtureFactory)
 {
     $customer = $fixtureFactory->createByCode('customer', ['dataset' => 'default']);
     $customer->persist();
     $productForSalesRule1 = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'simple_for_salesrule_1']);
     $productForSalesRule1->persist();
     $productForSalesRule2 = $fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'simple_for_salesrule_2']);
     $productForSalesRule2->persist();
     return ['customer' => $customer, 'productForSalesRule1' => $productForSalesRule1, 'productForSalesRule2' => $productForSalesRule2];
 }
 /**
  * Create catalog rule
  *
  * @return array
  */
 public function run()
 {
     $result['catalogRule'] = null;
     if (!empty($this->catalogRule) && $this->catalogRule != '-') {
         $catalogRule = $this->fixtureFactory->createByCode('catalogRule', ['dataSet' => $this->catalogRule]);
         $catalogRule->persist();
         $result['catalogRule'] = $catalogRule;
     }
     return $result;
 }
 /**
  * Creating Cms page.
  *
  * @param array $data
  * @param string $fixtureType
  * @return array
  */
 public function test(array $data, $fixtureType)
 {
     // Steps
     $cms = $this->fixtureFactory->createByCode($fixtureType, ['data' => $data]);
     $this->cmsIndex->open();
     $this->cmsIndex->getPageActionsBlock()->addNew();
     $this->cmsPageNew->getPageForm()->fill($cms);
     $this->cmsPageNew->getPageMainActions()->save();
     return ['cms' => $cms];
 }
Пример #19
0
 /**
  * Prepare configuration settings for test.
  *
  * @param FixtureFactory $fixtureFactory
  * @return array
  */
 public function __prepare(FixtureFactory $fixtureFactory)
 {
     $this->fixtureFactory = $fixtureFactory;
     $config = \Magento\Mtf\ObjectManagerFactory::getObjectManager()->get('Magento\\Mtf\\Config\\GlobalConfig');
     $adminCred['username'] = $config->get('application/0/backendLogin/0/value');
     $adminCred['password'] = $config->get('application/0/backendPassword/0/value');
     $newVersion['Mage_All_Latest'] = $config->get('version/0/value');
     $adminFixture = $this->fixtureFactory->createByCode('user', ['data' => $adminCred]);
     $connectFixture = $this->fixtureFactory->createByCode('connect', ['data' => $newVersion]);
     return ['adminUser' => $adminFixture, 'connect' => $connectFixture];
 }
 /**
  * Apply several sales rules.
  *
  * @param array $salesRules
  * @param CatalogProductSimple $productForSalesRule1
  * @param CatalogProductSimple $productForSalesRule2
  */
 public function testApplySeveralSalesRules(array $salesRules, CatalogProductSimple $productForSalesRule1, CatalogProductSimple $productForSalesRule2)
 {
     // Preconditions
     $productForSalesRule1->persist();
     $productForSalesRule2->persist();
     // Create sales rules
     foreach ($salesRules as $key => $dataSet) {
         $salesRule[$key] = $this->fixtureFactory->createByCode('salesRule', ['dataset' => $dataSet]);
         $salesRule[$key]->persist();
     }
 }
 /**
  * Run product type switching on creation test
  *
  * @param string $createProduct
  * @param string $product
  * @return array
  */
 public function test($createProduct, $product)
 {
     // Steps
     $this->catalogProductIndex->open();
     $this->catalogProductIndex->getGridPageActionBlock()->addProduct($createProduct);
     list($fixture, $dataSet) = explode('::', $product);
     $product = $this->fixtureFactory->createByCode($fixture, ['dataSet' => $dataSet]);
     $this->catalogProductNew->getProductForm()->fill($product);
     $this->catalogProductNew->getFormPageActions()->save($product);
     return ['product' => $product];
 }
 /**
  * Create addresses.
  *
  * @return array
  */
 public function run()
 {
     if ($this->newAddresses === null) {
         return [];
     }
     $newAddressesFixtures = [];
     $dataSets = explode(',', $this->newAddresses);
     foreach ($dataSets as $dataSet) {
         $newAddressesFixtures[] = $this->fixtureFactory->createByCode('address', ['dataSet' => $dataSet]);
     }
     return ['newAddresses' => $newAddressesFixtures];
 }
Пример #23
0
 /**
  * Prepare data.
  *
  * @param FixtureFactory $fixtureFactory
  * @return array
  */
 public function __prepare(FixtureFactory $fixtureFactory)
 {
     $this->objectManager->create('Mage\\Tax\\Test\\TestStep\\DeleteAllTaxRulesStep')->run();
     $this->objectManager->create('Mage\\Core\\Test\\TestStep\\SetupConfigurationStep', ['configData' => 'default_tax_configuration'])->run();
     $customer = $fixtureFactory->createByCode('customer', ['dataSet' => 'johndoe_with_addresses']);
     $customer->persist();
     $taxRule = $fixtureFactory->createByCode('taxRule', ['dataSet' => 'tax_rule_default']);
     $taxRule->persist();
     $productTemplate = $fixtureFactory->createByCode('catalogAttributeSet', ['dataSet' => 'custom_attribute_set_with_fpt']);
     $productTemplate->persist();
     return ['customer' => $customer, 'data' => ['attribute_set_id' => ['attribute_set' => $productTemplate]]];
 }
 /**
  * Creating Cms page.
  *
  * @param array $data
  * @param string $fixtureType
  * @return array
  */
 public function test(array $data, $fixtureType)
 {
     // Steps
     $cms = $this->fixtureFactory->createByCode($fixtureType, ['data' => $data]);
     $this->cmsIndex->open();
     $this->cmsIndex->getPageActionsBlock()->addNew();
     //TODO: remove cms page new refresh after resolve issue with static js files publication (MAGETWO-37898)
     $this->cmsPageNew->open();
     $this->cmsPageNew->getPageForm()->fill($cms);
     $this->cmsPageNew->getPageMainActions()->save();
     return ['cms' => $cms];
 }
 /**
  * Apply currency in config step.
  *
  * @return void
  */
 public function run()
 {
     if ($this->currencySymbols !== '-') {
         $symbols = explode(',', $this->currencySymbols);
         foreach ($symbols as &$symbol) {
             $symbol = strtoupper(trim($symbol));
         }
         $this->data['currency/options/allow']['value'] = $symbols;
         $config = $this->fixtureFactory->createByCode('configData', ['data' => $this->data]);
         $config->persist();
     }
 }
Пример #26
0
 /**
  * Create tax rule.
  *
  * @return array
  */
 public function run()
 {
     $result['taxRule'] = null;
     if ($this->taxRule !== null) {
         $taxRuleDataSets = explode(',', $this->taxRule);
         foreach ($taxRuleDataSets as $taxRuleDataSet) {
             $taxRule = $this->fixtureFactory->createByCode('taxRule', ['dataset' => $taxRuleDataSet]);
             $taxRule->persist();
             $result['taxRule'] = $taxRule;
         }
     }
     return $result;
 }
 /**
  * Create a new product with the given attribute set
  *
  * @return array
  */
 public function run()
 {
     // Create product with attribute set mentioned above:
     $customAttribute = $this->attribute;
     if ($this->attributeValue !== null) {
         $customAttribute = ['value' => $this->attributeValue, 'attribute' => $customAttribute];
     }
     $product = $this->fixtureFactory->createByCode('catalogProductSimple', ['dataset' => 'product_with_category_with_anchor', 'data' => ['attribute_set_id' => ['attribute_set' => $this->attributeSet], 'custom_attribute' => $customAttribute]]);
     $this->catalogProductIndex->open()->getGridPageActionBlock()->addProduct('simple');
     $productForm = $this->catalogProductEdit->getProductForm();
     $productForm->fill($product);
     $this->catalogProductEdit->getFormPageActions()->save();
     return ['product' => $product];
 }
Пример #28
0
 /**
  * Create products.
  *
  * @return InjectableFixture[]
  */
 public function run()
 {
     $products = [];
     $productsDataSets = explode(',', $this->products);
     foreach ($productsDataSets as $key => $productDataSet) {
         list($fixtureClass, $dataSet) = $this->resolveProductFixture($productDataSet);
         $data = isset($this->data[$key]) ? $this->data[$key] : [];
         /** @var InjectableFixture[] $products */
         $products[$key] = $this->fixtureFactory->createByCode($fixtureClass, ['dataSet' => $dataSet, 'data' => $data]);
         if ($products[$key]->hasData('id') === false) {
             $products[$key]->persist();
         }
     }
     return ['products' => $products];
 }
 /**
  * Prepare new product for update.
  *
  * @param ConfigurableProduct $initialProduct
  * @param ConfigurableProduct $product
  * @param string $attributeTypeAction
  * @return ConfigurableProduct
  */
 protected function prepareProduct(ConfigurableProduct $initialProduct, ConfigurableProduct $product, $attributeTypeAction)
 {
     if ($attributeTypeAction == 'deleteAll') {
         $this->deletedAttributes = $initialProduct->getDataFieldConfig('configurable_attributes_data')['source']->getAttributes();
         return $product;
     }
     $dataProduct = $product->getData();
     $dataInitialProduct = $initialProduct->getData();
     $oldMatrix = [];
     if ($attributeTypeAction == 'deleteLast') {
         array_pop($dataInitialProduct['configurable_attributes_data']['attributes_data']);
         $attributes = $initialProduct->getDataFieldConfig('configurable_attributes_data')['source']->getAttributes();
         $this->deletedAttributes[] = array_pop($attributes);
     }
     $attributesData = $dataInitialProduct['configurable_attributes_data']['attributes_data'];
     if ($attributeTypeAction == 'addOptions') {
         $oldMatrix = $dataInitialProduct['configurable_attributes_data']['matrix'];
         $this->addOptions($attributesData, $dataProduct['configurable_attributes_data']['attributes_data']);
     } else {
         $this->addAttributes($attributesData, $dataProduct['configurable_attributes_data']['attributes_data']);
     }
     $dataProduct['configurable_attributes_data'] = ['attributes_data' => $attributesData, 'matrix' => $oldMatrix];
     if ($product->hasData('category_ids')) {
         $dataProduct['category_ids']['category'] = $product->getDataFieldConfig('category_ids')['source']->getCategories()[0];
     }
     return $this->fixtureFactory->createByCode('configurableProduct', ['data' => $dataProduct]);
 }
 /**
  * Create review.
  *
  * @param Review $review
  * @param int $rating
  * @return Review
  */
 protected function createReview($review, $rating)
 {
     $reviewData = $review->getData();
     $fixtureRating = $this->reviewInitial->getDataFieldConfig('ratings')['source']->getRatings()[0];
     $reviewData['ratings'][0] = ['fixtureRating' => $fixtureRating, 'rating' => $rating];
     return $this->fixtureFactory->createByCode('review', ['data' => $reviewData]);
 }