/**
  * Assert that duplicated product can be found in grid by type, template, status and stock status.
  *
  * @param InjectableFixture $product
  * @param CatalogProduct $productGrid
  * @return void
  */
 public function processAssert(InjectableFixture $product, CatalogProduct $productGrid)
 {
     $config = $product->getDataConfig();
     $filter = ['name' => $product->getName(), 'visibility' => $product->getVisibility(), 'status' => 'Disabled', 'type' => ucfirst($config['create_url_params']['type']) . ' Product', 'price_to' => number_format($product->getPrice(), 2)];
     $productGrid->open()->getProductGrid()->search($filter);
     \PHPUnit_Framework_Assert::assertTrue($productGrid->getProductGrid()->isRowVisible($filter, false, false), 'Product duplicate is absent in Products grid.');
 }
 /**
  * Run test duplicate product entity.
  *
  * @param string $productType
  * @return array
  */
 public function test($productType)
 {
     // Precondition
     $product = $this->createProduct($productType);
     // Steps
     $this->productGrid->open();
     $this->productGrid->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]);
     $this->editProductPage->getFormPageActions()->duplicate();
     return ['product' => $product];
 }
 /**
  * Run delete product test.
  *
  * @param string $products
  * @return array
  */
 public function test($products)
 {
     //Preconditions
     $products = $this->createProducts($products);
     $deleteProducts = $this->prepareFilter($products);
     //Steps
     $this->catalogProductIndex->open();
     $this->catalogProductIndex->getProductGrid()->massaction($deleteProducts, 'Delete', true);
     return ['products' => $products];
 }
 /**
  * Run update product simple entity test.
  *
  * @param CatalogProductSimple $initialProduct
  * @param CatalogProductSimple $product
  * @return array
  */
 public function test(CatalogProductSimple $initialProduct, CatalogProductSimple $product)
 {
     // Preconditions
     $initialProduct->persist();
     // Steps
     $this->productGrid->open();
     $this->productGrid->getProductGrid()->searchAndOpen(['sku' => $initialProduct->getSku()]);
     $this->editProductPage->getProductForm()->fill($product);
     $this->editProductPage->getFormPageActions()->save();
     return ['category' => $this->getCategory($initialProduct, $product)];
 }
 /**
  * Add appurtenant products and save product.
  *
  * @param InjectableFixture $product
  * @param array $appurtenantData
  * @return void
  */
 protected function addAppurtenantProducts(InjectableFixture $product, array $appurtenantData)
 {
     $this->productGrid->open();
     $this->productGrid->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]);
     $form = $this->editProductPage->getProductForm();
     $form->openTab($this->tabName);
     $appurtenantTab = $form->getTabElement($this->tabName);
     $appurtenantData[$this->appurtenantType['formIndex']]['value'] = $this->prepareData($appurtenantData[$this->appurtenantType['formIndex']]['value']);
     $appurtenantTab->fillFormTab($appurtenantData);
     $this->editProductPage->getFormPageActions()->save();
 }
 /**
  * Assert form data equals fixture data.
  *
  * @param InjectableFixture $product
  * @param CatalogProduct $productGrid
  * @param CatalogProductEdit $productPage
  * @return void
  */
 public function processAssert(InjectableFixture $product, CatalogProduct $productGrid, CatalogProductEdit $productPage)
 {
     $this->catalogProductEdit = $productPage;
     $filter = ['sku' => $product->getSku()];
     $productGrid->open();
     $productGrid->getProductGrid()->searchAndOpen($filter);
     $productData = $product->getData();
     $fixtureData = $this->prepareFixtureData($productData, $this->sortFields);
     $formData = $this->prepareFormData($productPage->getProductForm()->getData($product), $this->sortFields);
     $error = $this->verifyData($fixtureData, $formData);
     \PHPUnit_Framework_Assert::assertTrue(empty($error), $error);
 }
 /**
  * Assert that created attribute is displayed on product form.
  *
  * @param InjectableFixture $product
  * @param CatalogProduct $productGrid
  * @param CatalogProductEdit $productEdit
  * @param CatalogProductAttribute $attribute
  * @return void
  */
 public function processAssert(InjectableFixture $product, CatalogProduct $productGrid, CatalogProductEdit $productEdit, CatalogProductAttribute $attribute)
 {
     $productGrid->open();
     $productGrid->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]);
     \PHPUnit_Framework_Assert::assertTrue($productEdit->getProductForm()->checkAttributeLabel($attribute->getData()), "Product Attribute is absent on Product form.");
 }
 /**
  * Open products on backend.
  *
  * @return void
  */
 public function run()
 {
     $this->catalogProductIndex->open();
     $this->catalogProductIndex->getProductGrid()->searchAndOpen(['sku' => $this->product->getSku()]);
 }
 /**
  * Assert that product is present in products grid and can be found by sku, type, status and attribute set.
  *
  * @param InjectableFixture $product
  * @param CatalogProduct $productGrid
  * @return void
  */
 public function processAssert(InjectableFixture $product, CatalogProduct $productGrid)
 {
     $this->product = $product;
     $productGrid->open();
     \PHPUnit_Framework_Assert::assertTrue($productGrid->getProductGrid()->isRowVisible($this->prepareFilter()), 'Product \'' . $this->product->getName() . '\' is absent in Products grid.');
 }
Ejemplo n.º 10
0
 /**
  * Check product on product grid.
  *
  * @param InjectableFixture $product
  * @param CatalogProduct $productGrid
  * @return void
  */
 public function assert(InjectableFixture $product, CatalogProduct $productGrid)
 {
     $filter = ['sku' => $product->getSku(), 'name' => $product->getName()];
     \PHPUnit_Framework_Assert::assertFalse($productGrid->getProductGrid()->isRowVisible($filter), "Product with sku {$filter['sku']} and name {$filter['name']} is present in Products grid.");
 }