/** * {@inheritdoc} * * @param RequestProductItemEntity $requestProductItem * @param Constraint|RequestProductItem $constraint */ public function validate($requestProductItem, Constraint $constraint) { if (!$requestProductItem instanceof RequestProductItemEntity) { throw new UnexpectedTypeException($requestProductItem, 'OroB2B\\Bundle\\RFPBundle\\Entity\\RequestProductItem'); } if (null === ($requestProduct = $requestProductItem->getRequestProduct())) { $this->addViolation($constraint); return; } if (null === ($product = $requestProduct->getProduct())) { $this->addViolation($constraint); return; } if ([] === ($allowedUnits = $product->getAvailableUnitCodes())) { $this->addViolation($constraint); return; } if (null === ($productUnit = $requestProductItem->getProductUnit())) { $this->addViolation($constraint); return; } if (!in_array($productUnit->getCode(), $allowedUnits, true)) { $this->addViolation($constraint); return; } }
/** * @depends testProperties */ public function testAddRequestProductItem() { $requestProduct = new RequestProduct(); $requestProductItem = new RequestProductItem(); $this->assertNull($requestProductItem->getRequestProduct()); $requestProduct->addRequestProductItem($requestProductItem); $this->assertEquals($requestProduct, $requestProductItem->getRequestProduct()); }