/**
  * Assert that child products generated during configurable product are present in products grid
  *
  * @param CatalogProductIndex $productGrid
  * @param ConfigurableProduct $product
  * @return void
  */
 public function processAssert(CatalogProductIndex $productGrid, ConfigurableProduct $product)
 {
     $configurableAttributesData = $product->getConfigurableAttributesData();
     $productType = $product->getProductHasWeight() === "Yes" ? 'Simple Product' : 'Virtual Product';
     $errors = [];
     $productGrid->open();
     foreach ($configurableAttributesData['matrix'] as $variation) {
         $filter = ['name' => $variation['name'], 'type' => $productType, 'sku' => $variation['sku'], 'visibility' => self::NOT_VISIBLE_INDIVIDUALLY];
         if (!$productGrid->getProductGrid()->isRowVisible($filter)) {
             $errors[] = sprintf('Child product with name: "%s" and sku:"%s" is absent in grid.', $filter['name'], $filter['sku']);
         }
     }
     \PHPUnit_Framework_Assert::assertEmpty($errors, implode(' ', $errors));
 }