/**
  * Assert that requested quantity is not available error message is displayed after adding products to order by sku.
  *
  * @param SalesOrderCreateIndex $salesOrderCreateIndex
  * @param array $requiredAttentionProducts
  * @return void
  */
 public function processAssert(SalesOrderCreateIndex $salesOrderCreateIndex, array $requiredAttentionProducts)
 {
     foreach ($requiredAttentionProducts as $product) {
         $productName = $product->getName();
         \PHPUnit_Framework_Assert::assertEquals(sprintf(self::ERROR_QUANTITY_MESSAGE, $productName), $salesOrderCreateIndex->getAdvancedOrderCreateBlock()->getItemsBlock()->getItemProduct($productName)->getNoticeMessage());
     }
 }
 /**
  * Add products by SKU on backend.
  *
  * @param Customer $customer
  * @param array $orderOptions
  * @param string $cartBlock
  * @param string|null $products
  * @return array
  */
 public function test(Customer $customer, array $orderOptions, $cartBlock, $products = null)
 {
     // Preconditions
     $products = $this->createProducts($products);
     $orderOptions = $this->prepareOrderOptions($products, $orderOptions);
     // Steps
     $this->orderIndex->open();
     $this->orderIndex->getPageActionsBlock()->addNew();
     $this->orderCreateIndex->getCustomerGrid()->selectCustomer($customer);
     $this->orderCreateIndex->getStoreBlock()->selectStoreView();
     $orderCreateBlock = $this->orderCreateIndex->getAdvancedOrderCreateBlock();
     $orderCreateBlock->getItemsBlock()->clickAddProductsBySku();
     $orderCreateBlock->getAddToOrderBySkuBlock()->getOrderBySkuForm()->fillForm($orderOptions);
     $this->orderCreateIndex->getAdvancedOrderCreateBlock()->getAddToOrderBySkuBlock()->addToCart();
     $filteredProducts = $this->filterProducts($products, $cartBlock);
     return ['products' => isset($filteredProducts['cart']) ? $filteredProducts['cart'] : [], 'requiredAttentionProducts' => isset($filteredProducts['required_attention']) ? $filteredProducts['required_attention'] : []];
 }
 /**
  * Assert that product requires attention error message is displayed after adding products by sku to order.
  *
  * @param SalesOrderCreateIndex $salesOrderCreateIndex
  * @param array $requiredAttentionProducts
  * @return void
  */
 public function processAssert(SalesOrderCreateIndex $salesOrderCreateIndex, array $requiredAttentionProducts)
 {
     \PHPUnit_Framework_Assert::assertEquals(sprintf(self::ERROR_MESSAGE, count($requiredAttentionProducts)), $salesOrderCreateIndex->getAdvancedOrderCreateBlock()->getRequireAttentionBlock()->getErrorMessage());
 }
 /**
  * Assert that requested qty does not meet the increments error message is displayed after adding products by sku.
  *
  * @param SalesOrderCreateIndex $salesOrderCreateIndex
  * @param array $requiredAttentionProducts
  * @return void
  */
 public function processAssert(SalesOrderCreateIndex $salesOrderCreateIndex, array $requiredAttentionProducts)
 {
     foreach ($requiredAttentionProducts as $product) {
         \PHPUnit_Framework_Assert::assertEquals(sprintf(self::QTY_INCREMENTS_ERROR_MESSAGE, $product->getStockData()['qty_increments']), $salesOrderCreateIndex->getAdvancedOrderCreateBlock()->getItemsBlock()->getItemProduct($product->getName())->getErrorMessage());
     }
 }
 /**
  * Assert that entered qty is not valid notice message is displayed after adding products to order by sku.
  *
  * @param SalesOrderCreateIndex $salesOrderCreateIndex
  * @param array $requiredAttentionProducts
  * @return void
  */
 public function processAssert(SalesOrderCreateIndex $salesOrderCreateIndex, array $requiredAttentionProducts)
 {
     foreach ($requiredAttentionProducts as $product) {
         \PHPUnit_Framework_Assert::assertEquals(self::NOTICE_MESSAGE, $salesOrderCreateIndex->getAdvancedOrderCreateBlock()->getRequireAttentionBlock()->getFailedItemBlock($product)->getNoticeMessage());
     }
 }