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()); }
/** * @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; }