Sonata\Tests\Component\Product\BaseProductServiceTest::testVariationCreation PHP Метод

testVariationCreation() публичный Метод

    public function testVariationCreation()
    {
        $provider = $this->getBaseProvider();
        $provider->setVariationFields(array('name', 'price'));
        $product = new Product();
        $product->id = 2;
        $product->addDelivery(new Delivery());
        $product->addPackage(new Package());
        $product->addProductCategory(new ProductCategory());
        $variation1 = $provider->createVariation($product, false);
        $variation2 = $provider->createVariation($product, true);
        $this->assertNull($variation1->getId());
        $this->assertEquals('fake name (duplicated)', $variation1->getName());
        $this->assertEquals($product->getId(), $variation1->getParent()->getId());
        $this->assertFalse($variation1->isEnabled());
        $this->assertTrue($variation1->isVariation());
        $this->assertEquals(2, count($product->getVariations()));
        $this->assertEquals(0, count($variation1->getVariations()));
        $this->assertEquals(0, count($variation1->getPackages()));
        $this->assertEquals(0, count($variation1->getDeliveries()));
        $this->assertEquals(0, count($variation1->getProductCategories()));
        $this->assertEquals(0, count($variation2->getVariations()));
        $this->assertEquals(1, count($variation2->getPackages()));
        $this->assertEquals(1, count($variation2->getDeliveries()));
        $provider->setVariationFields(array('packages', 'productCollections', 'productCategories', 'deliveries'));
        $variation3 = $provider->createVariation($product, true);
        $this->assertEquals(0, count($variation3->getVariations()));
        $this->assertEquals(0, count($variation3->getPackages()));
        $this->assertEquals(0, count($variation3->getDeliveries()));
        $this->assertEquals(0, count($variation3->getProductCategories()));
    }