Пример #1
0
 public function testCreate()
 {
     $event = new ProductCreateEvent();
     $defaultCategory = CategoryQuery::create()->select('id')->addAscendingOrderByColumn('RAND()')->findOne();
     $taxRuleId = TaxRuleQuery::create()->select('id')->addAscendingOrderByColumn('RAND()')->findOne();
     $currencyId = CurrencyQuery::create()->select('id')->addAscendingOrderByColumn('RAND()')->findOne();
     $event->setRef('testCreation')->setLocale('fr_FR')->setTitle('test create new product')->setVisible(1)->setDefaultCategory($defaultCategory)->setBasePrice(10)->setTaxRuleId($taxRuleId)->setBaseWeight(10)->setCurrencyId($currencyId)->setDispatcher($this->getDispatcher());
     $action = new Product();
     $action->create($event);
     $createdProduct = $event->getProduct();
     $this->assertInstanceOf('Thelia\\Model\\Product', $createdProduct);
     $this->assertFalse($createdProduct->isNew());
     $createdProduct->setLocale('fr_FR');
     $this->assertEquals('test create new product', $createdProduct->getTitle());
     $this->assertEquals('testCreation', $createdProduct->getRef());
     $this->assertEquals(1, $createdProduct->getVisible());
     $this->assertEquals($defaultCategory, $createdProduct->getDefaultCategoryId());
     $this->assertGreaterThan(0, $createdProduct->getPosition());
     $productSaleElements = $createdProduct->getProductSaleElementss();
     $this->assertEquals(1, count($productSaleElements));
     $defaultProductSaleElement = $productSaleElements->getFirst();
     $this->assertTrue($defaultProductSaleElement->getIsDefault());
     $this->assertEquals(0, $defaultProductSaleElement->getPromo());
     $this->assertEquals(0, $defaultProductSaleElement->getNewness());
     $this->assertEquals($createdProduct->getRef(), $defaultProductSaleElement->getRef());
     $this->assertEquals(10, $defaultProductSaleElement->getWeight());
     $productPrice = $defaultProductSaleElement->getProductPrices()->getFirst();
     $this->assertEquals(10, $productPrice->getPrice());
     $this->assertEquals($currencyId, $productPrice->getCurrencyId());
     return $createdProduct;
 }
Пример #2
0
 public function testCreateWithOptionalParametersAction()
 {
     $event = new ProductCreateEvent();
     /** @var Category $defaultCategory */
     $defaultCategory = CategoryQuery::create()->addAscendingOrderByColumn('RAND()')->findOne();
     $taxRuleId = TaxRuleQuery::create()->select('id')->addAscendingOrderByColumn('RAND()')->findOne();
     $currencyId = CurrencyQuery::create()->select('id')->addAscendingOrderByColumn('RAND()')->findOne();
     $templateId = $defaultCategory->getDefaultTemplateId();
     if (null === $templateId) {
         $templateId = TemplateQuery::create()->addAscendingOrderByColumn('RAND()')->findOne()->getId();
     }
     $newRef = 'testCreateWithOptionalParameters' . uniqid('_');
     $event->setRef($newRef)->setLocale('fr_FR')->setTitle('test create new product with optional parameters')->setVisible(1)->setDefaultCategory($defaultCategory->getId())->setBasePrice(10)->setTaxRuleId($taxRuleId)->setBaseWeight(10)->setCurrencyId($currencyId)->setBaseQuantity(10)->setTemplateId($templateId);
     $action = new Product($this->getMockEventDispatcher());
     $action->create($event);
     $createdProduct = $event->getProduct();
     $this->assertInstanceOf('Thelia\\Model\\Product', $createdProduct);
     $this->assertFalse($createdProduct->isNew());
     $createdProduct->setLocale('fr_FR');
     $this->assertEquals('test create new product with optional parameters', $createdProduct->getTitle());
     $this->assertEquals($newRef, $createdProduct->getRef());
     $this->assertEquals(1, $createdProduct->getVisible());
     $this->assertEquals($defaultCategory->getId(), $createdProduct->getDefaultCategoryId());
     $this->assertGreaterThan(0, $createdProduct->getPosition());
     $this->assertEquals($templateId, $createdProduct->getTemplateId());
     $productSaleElements = $createdProduct->getProductSaleElementss();
     $this->assertEquals(1, count($productSaleElements));
     $defaultProductSaleElement = $productSaleElements->getFirst();
     $this->assertTrue($defaultProductSaleElement->getIsDefault());
     $this->assertEquals(0, $defaultProductSaleElement->getPromo());
     $this->assertEquals(0, $defaultProductSaleElement->getNewness());
     $this->assertEquals($createdProduct->getRef(), $defaultProductSaleElement->getRef());
     $this->assertEquals(10, $defaultProductSaleElement->getWeight());
     $this->assertEquals(10, $defaultProductSaleElement->getQuantity());
     /** @var ProductPrice $productPrice */
     $productPrice = $defaultProductSaleElement->getProductPrices()->getFirst();
     $this->assertEquals(10, $productPrice->getPrice());
     $this->assertEquals($currencyId, $productPrice->getCurrencyId());
 }