/** * @return void */ public function testImportProductOptionValueUsageConstraint() { $product = $this->createProductConcrete(); $optionShadeViolet = $this->createOptionTypeWithValue('SHADE', 'VIOLET'); $optionFittingClassic = $this->createOptionTypeWithValue('FITTING', 'CLASSIC'); $productOptionShade = $this->createProductOptionTypeUsage($product, $optionShadeViolet); $productOptionFitting = $this->createProductOptionTypeUsage($product, $optionFittingClassic); $idProductOptionValueUsageSmall = $this->facade->importProductOptionValueUsage($productOptionFitting->getIdProductOptionTypeUsage(), 'CLASSIC'); $idProductOptionValueUsageViolet = $this->facade->importProductOptionValueUsage($productOptionShade->getIdProductOptionTypeUsage(), 'VIOLET'); $this->facade->importProductOptionValueUsageConstraint($product->getSku(), $idProductOptionValueUsageSmall, 'VIOLET', 'NOT'); $this->facade->importProductOptionValueUsageConstraint($product->getSku(), $idProductOptionValueUsageViolet, 'CLASSIC', 'NOT'); $this->facade->flushBuffer(); $result = SpyProductOptionValueUsageConstraintQuery::create()->filterByFkProductOptionValueUsageA([$idProductOptionValueUsageSmall, $idProductOptionValueUsageViolet], Criteria::IN)->filterByFkProductOptionValueUsageB([$idProductOptionValueUsageSmall, $idProductOptionValueUsageViolet], Criteria::IN)->find(); $this->assertEquals(1, $result->count(), 'Failed asserting that method is idempotent'); $this->performAssertionOnTouchTable($product->getFkProductAbstract()); }
/** * @return \Orm\Zed\ProductOption\Persistence\SpyProductOptionValueUsageConstraintQuery */ public function createProductOptionValueUsageConstraintQuery() { return SpyProductOptionValueUsageConstraintQuery::create(); }