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