63 lines
2.0 KiB
PHP
63 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace KupShop\ContentBundle\Tests;
|
|
|
|
use KupShop\ContentBundle\Entity\ProductUnified;
|
|
use KupShop\KupShopBundle\Util\Price\ProductPrice;
|
|
|
|
class ProductUnifiedTest extends \DatabaseTestCase
|
|
{
|
|
/**
|
|
* Zkontrolovat, ze to vraci hodnoty.
|
|
*
|
|
* @dataProvider data_ProductUnifiedData
|
|
*/
|
|
public function testProductUnifiedData(int $productId, ?int $variationId): void
|
|
{
|
|
$product = new \Product();
|
|
$product->createFromDB($productId);
|
|
|
|
$unified = new ProductUnified($product, $product->fetchVariations());
|
|
if ($variationId) {
|
|
$unified->selectVariation($variationId);
|
|
}
|
|
|
|
$this->assertIsInt($unified->getId());
|
|
$this->assertIsString($unified->getTitle());
|
|
$this->assertIsFloat($unified->getInStore());
|
|
$this->assertInstanceOf(\Decimal::class, $unified->getBonusPoints());
|
|
|
|
$this->assertIsString($unified->getDeliveryTimeText());
|
|
$this->assertIsInt($unified->getDeliveryTime());
|
|
$this->assertIsInt($unified->getDeliveryTimeRaw());
|
|
|
|
$this->assertInstanceOf(\Decimal::class, $unified->getDiscount());
|
|
$this->assertInstanceOf(ProductPrice::class, $unified->getProductPrice());
|
|
$this->assertInstanceOf(ProductPrice::class, $unified->getPriceCommon());
|
|
}
|
|
|
|
public function data_ProductUnifiedData(): array
|
|
{
|
|
return [
|
|
[1, null],
|
|
[2, 9],
|
|
];
|
|
}
|
|
|
|
public function testVariationSelect(): void
|
|
{
|
|
$product = new \Product();
|
|
$product->createFromDB(2);
|
|
|
|
$unified = new ProductUnified($product, $product->fetchVariations());
|
|
|
|
$this->assertEquals('Adidas Mundial Goal Dalsi Test Velmi Dlouheho Produktoveho Nazvu', $unified->getTitle());
|
|
$this->assertEmpty($unified->getVariationId());
|
|
|
|
$unified->selectVariation(9);
|
|
|
|
$this->assertEquals('Velikost: 40', $unified->getTitle());
|
|
$this->assertNotEmpty($unified->getVariationId());
|
|
}
|
|
}
|