Sonata\Tests\Component\Basket\BasketElementTest::testGettersSetters PHP Method

testGettersSetters() public method

public testGettersSetters ( )
    public function testGettersSetters()
    {
        $currency = $this->getMock('Sonata\\Component\\Currency\\Currency');
        $productProvider = $this->getMock('Sonata\\Component\\Product\\ProductProviderInterface');
        $productManager = $this->getMock('Sonata\\Component\\Product\\ProductManagerInterface');
        $productDefinition = new ProductDefinition($productProvider, $productManager);
        $basketElement = new BasketElement();
        $basketElement->setProductDefinition($productDefinition);
        $this->assertEquals(0, $basketElement->getVatRate());
        $this->assertEquals(0, $basketElement->getUnitPrice($currency));
        $this->assertFalse($basketElement->isValid());
        $provider = $this->getMock('Sonata\\Component\\Product\\ProductProviderInterface');
        $manager = $this->getMock('Sonata\\Component\\Product\\ProductManagerInterface');
        $productDefinition = new ProductDefinition($provider, $manager);
        // Tests getProduct
        $this->assertNull($basketElement->getProduct());
        $basketElement->setProductDefinition($productDefinition);
        $this->assertNull($basketElement->getProduct());
        $product = $this->getMock('Sonata\\Component\\Product\\ProductInterface');
        $product->expects($this->any())->method('getId')->will($this->returnValue(42));
        $basketElement->setProduct('product_code', $product);
        $this->assertEquals($product, $basketElement->getProduct());
        // Tests setProductId
        $basketElement->setProductId(42);
        $this->assertEquals(42, $basketElement->getProductId());
        $basketElement->setProductId(24);
        $this->assertNull($basketElement->getProductId());
        $manager->expects($this->any())->method('findOneBy')->will($this->returnValue($product));
        $basketElement->setProductDefinition(new ProductDefinition($provider, $manager));
        $basketElement->setProductId(42);
        $basketElement->setProduct('product_code', $product);
        // Done by the provider hereby mocked, hence we do it manually
        $this->assertEquals($product->getId(), $basketElement->getProductId());
        // Options
        $options = array('option1' => 'value1', 'option2' => 'value2');
        $basketElement->setOptions($options);
        $this->assertNull($basketElement->getOption('unexisting_option'));
        $this->assertEquals(42, $basketElement->getOption('unexisting_option', 42));
        $this->assertEquals('value1', $basketElement->getOption('option1'));
        $this->assertEquals($options, $basketElement->getOptions());
        $basketElement->setOption('option3', 'value3');
        $this->assertEquals('value3', $basketElement->getOption('option3'));
        // Other getters & setters
        $this->assertEquals($provider, $basketElement->getProductProvider());
        $this->assertEquals($manager, $basketElement->getProductManager());
        $this->assertEquals('product_code', $basketElement->getProductCode());
        $basketElement->setDelete(false);
        $this->assertFalse($basketElement->getDelete());
    }