/**
  * Assert that configurable options available on configurable product Edit form on backend.
  *
  * @param CatalogProduct $catalogProductIndex
  * @param CatalogProductEdit $catalogProductEdit
  * @param CatalogProductAttribute $attribute
  * @param InjectableFixture $product
  * @return void
  */
 public function processAssert(CatalogProduct $catalogProductIndex, CatalogProductEdit $catalogProductEdit, CatalogProductAttribute $attribute, InjectableFixture $product)
 {
     $options = $attribute->getOptions();
     $attributeOptionsFromFixture = [];
     foreach ($options as $option) {
         $attributeOptionsFromFixture[] = $option['admin'];
     }
     $catalogProductIndex->open()->getProductGrid()->searchAndOpen(['sku' => $product->getSku()]);
     $productForm = $catalogProductEdit->getProductForm();
     $attributeOptions = $productForm->getAttributeElement($attribute)->getValues();
     \PHPUnit_Framework_Assert::assertEquals($attributeOptionsFromFixture, $attributeOptions);
 }
 /**
  * Prepare filter for search.
  *
  * @param InjectableFixture $product
  * @param CatalogProductAttribute $attribute
  * @return string
  */
 protected function prepareFilter(InjectableFixture $product, CatalogProductAttribute $attribute)
 {
     $filter = '';
     $attributesFillData = $product->getAttributes();
     $attributeOptions = $attribute->getOptions();
     foreach ($attributesFillData['preset'] as $optionsFillData) {
         foreach ($optionsFillData as $optionKey) {
             $optionKey = str_replace('option_key_', '', $optionKey);
             $filter .= isset($attributeOptions[$optionKey]['view']) ? $attributeOptions[$optionKey]['view'] : $attributeOptions[$optionKey]['admin'];
         }
     }
     return $filter;
 }