Example #1
0
 public function testToString()
 {
     $product = new Product();
     $this->assertSame('', (string) $product);
     $product->setSku(123);
     $this->assertSame('123', (string) $product);
 }
 public function testGetProductSku()
 {
     $product = new Product();
     $product->setSku('test');
     $price = new ProductPrice();
     $price->setProduct($product);
     $this->assertEquals($product->getSku(), $price->getProductSku());
 }
 public function testToString()
 {
     $product = new Product();
     $this->assertSame('', (string) $product);
     $product->setSku(123);
     $this->assertSame('123', (string) $product);
     $product->addName((new LocalizedFallbackValue())->setString('localized_name'));
     $this->assertEquals('localized_name', (string) $product);
 }
 /**
  * @param string $sku
  * @param ProductUnit|null $productUnit
  * @return Product
  */
 protected function getProductEntity($sku, ProductUnit $productUnit = null)
 {
     $product = new Product();
     $product->setSku($sku);
     if ($productUnit) {
         $productUnitPrecision = new ProductUnitPrecision();
         $productUnitPrecision->setUnit($productUnit);
         $product->addUnitPrecision($productUnitPrecision);
     }
     return $product;
 }
 public function testEvent()
 {
     $product = new Product();
     $product->setSku('SKU-1');
     $sourceProduct = new Product();
     $sourceProduct->setSku('SKU-2');
     /** @var AbstractProductDuplicateEvent $event */
     $event = $this->getMockBuilder('OroB2B\\Bundle\\ProductBundle\\Event\\AbstractProductDuplicateEvent')->setConstructorArgs([$product, $sourceProduct])->getMockForAbstractClass();
     $this->assertEquals($product, $event->getProduct());
     $this->assertEquals($sourceProduct, $event->getSourceProduct());
 }
Example #6
0
 /**
  * @param ObjectManager $manager
  * @param string $sku
  * @return Product
  */
 protected function createProduct(ObjectManager $manager, $sku)
 {
     $businessUnit = $manager->getRepository('OroOrganizationBundle:BusinessUnit')->getFirst();
     $organization = $manager->getRepository('OroOrganizationBundle:Organization')->getFirst();
     $product = new Product();
     $product->setSku($sku);
     $product->setOwner($businessUnit);
     $product->setOrganization($organization);
     $manager->persist($product);
     $this->addReference($sku, $product);
     return $product;
 }
 public function testProcessLoadPriceAndProduct()
 {
     $productPrice = new ProductPrice();
     $productPrice->setQuantity(555);
     $this->setValue($productPrice, 'value', 1.2);
     $this->setValue($productPrice, 'currency', 'USD');
     /** @var ProductUnit $unit */
     $unit = $this->getReference('product_unit.liter');
     /** @var Product $product */
     $product = $this->getReference('product.1');
     /** @var PriceList $priceList */
     $priceList = $this->getReference('price_list_1');
     $productObject = new Product();
     $productObject->setSku($product->getSku());
     $productPrice->setProduct($product);
     $productPrice->setUnit($unit);
     $productPrice->setPriceList($priceList);
     $this->strategy->process($productPrice);
     $this->assertNotEmpty($productPrice->getPrice());
     $this->assertEquals('USD', $productPrice->getPrice()->getCurrency());
     $this->assertEquals(1.2, $productPrice->getPrice()->getValue());
     $this->assertNotEmpty($productPrice->getProduct());
     $this->assertEquals($product->getSku(), $productPrice->getProduct()->getSku());
 }
 /**
  * @param string $sku
  * @param bool $isReplacement
  * @return QuoteProduct
  */
 protected function createQuoteProduct($sku, $isReplacement = false)
 {
     $product = new Product();
     $product->setSku($sku);
     $quoteProduct = new QuoteProduct();
     if ($isReplacement) {
         $quoteProduct->setProductReplacement($product);
     } else {
         $quoteProduct->setProduct($product);
     }
     return $quoteProduct;
 }
 /**
  * @return array
  */
 public function submitProvider()
 {
     $product = new Product();
     $product->setSku('sku_test_001');
     $productUnitPrecision = new ProductUnitPrecision();
     $productUnitPrecision->setUnit((new ProductUnit())->setCode('kg'));
     $productUnitPrecision->setPrecision(5);
     $existingUnit = (new ProductUnit())->setCode('kg');
     $existingPrice = (new Price())->setValue(42)->setCurrency('USD');
     $product->addUnitPrecision($productUnitPrecision);
     /** @var PriceList $existingProductPriceList */
     $existingProductPriceList = $this->getEntity('OroB2B\\Bundle\\PricingBundle\\Entity\\PriceList', 1);
     $existingProductPrice = new ProductPrice();
     $existingProductPrice->setProduct($product)->setPriceList($existingProductPriceList)->setQuantity(123)->setUnit($existingUnit)->setPrice($existingPrice);
     /** @var PriceList $expectedPriceList */
     $expectedPriceList = $this->getEntity('OroB2B\\Bundle\\PricingBundle\\Entity\\PriceList', 2);
     $expectedUnit = (new ProductUnit())->setCode('item');
     $expectedPrice = (new Price())->setValue(43)->setCurrency('EUR');
     $expectedProductPrice = new ProductPrice();
     $expectedProductPrice->setPriceList($expectedPriceList)->setQuantity(124)->setUnit($expectedUnit)->setPrice($expectedPrice)->setProduct($product);
     $updatedExpectedProductPrice = clone $expectedProductPrice;
     $updatedExpectedProductPrice->setProduct($product);
     return ['product price with data' => ['defaultData' => (new ProductPrice())->setProduct($product)->setUnit($existingUnit), 'submittedData' => ['priceList' => 2, 'quantity' => 124, 'unit' => 'item', 'price' => ['value' => 43, 'currency' => 'EUR']], 'expectedData' => $expectedProductPrice], 'product price with precision' => ['defaultData' => $existingProductPrice, 'submittedData' => ['priceList' => 2, 'quantity' => 124, 'unit' => 'item', 'price' => ['value' => 43, 'currency' => 'EUR']], 'expectedData' => $updatedExpectedProductPrice, 'expectedOptions' => ['precision' => 5]]];
 }
 /**
  * @return Product
  */
 protected function createProduct()
 {
     $product = new Product();
     $product->setSku('sku_001');
     return $product;
 }
 /**
  * @return ProductPrice
  */
 public function getProductPrice()
 {
     $unit = new ProductUnit();
     $unit->setCode('kg');
     $unitPrecision = new ProductUnitPrecision();
     $unitPrecision->setUnit($unit)->setPrecision(3);
     $product = new Product();
     $product->setSku('testSku')->addUnitPrecision($unitPrecision);
     $price = new Price();
     $price->setValue('50')->setCurrency('USD');
     $productPrice = new ProductPrice();
     $productPrice->setPriceList(new PriceList())->setProduct($product)->setQuantity('10')->setPrice($price);
     return $productPrice;
 }