/**
  * @return void
  */
 public function testImportProductOptionTypeUsageExclusion()
 {
     $product = $this->createProductConcrete();
     $optionShadeViolet = $this->createOptionTypeWithValue('SHADE', 'VIOLET');
     $optionFittingClassic = $this->createOptionTypeWithValue('FITTING', 'CLASSIC');
     $productOptionFitting = $this->createProductOptionTypeUsage($product, $optionFittingClassic);
     $productOptionShade = $this->createProductOptionTypeUsage($product, $optionShadeViolet);
     $this->facade->importProductOptionTypeUsageExclusion($product->getSku(), 'SHADE', 'FITTING');
     $this->facade->importProductOptionTypeUsageExclusion($product->getSku(), 'SHADE', 'FITTING');
     $this->facade->flushBuffer();
     $result = SpyProductOptionTypeUsageExclusionQuery::create()->filterByFkProductOptionTypeUsageA($productOptionShade->getIdProductOptionTypeUsage())->filterByFkProductOptionTypeUsageB($productOptionFitting->getIdProductOptionTypeUsage())->find();
     $this->assertEquals(1, $result->count(), 'Failed asserting that method is idempotent');
     $this->performAssertionOnTouchTable($product->getFkProductAbstract());
 }
 /**
  * @return \Orm\Zed\ProductOption\Persistence\SpyProductOptionTypeUsageExclusionQuery
  */
 public function createProductOptionTypeUsageExclusionQuery()
 {
     return SpyProductOptionTypeUsageExclusionQuery::create();
 }