public function getBasketElement($product = null) { $product = $this->getMock('Sonata\\Component\\Product\\ProductInterface', array(), array(), 'BasketTest_Product'); $product->expects($this->any())->method('getId')->will($this->returnValue(42)); $product->expects($this->any())->method('getName')->will($this->returnValue('Product name')); $product->expects($this->any())->method('getPrice')->will($this->returnValue(15)); $product->expects($this->any())->method('isPriceIncludingVat')->will($this->returnValue(false)); $product->expects($this->any())->method('getVatRate')->will($this->returnValue(19.6)); $product->expects($this->any())->method('getOptions')->will($this->returnValue(array('option1' => 'toto'))); $product->expects($this->any())->method('getDescription')->will($this->returnValue('product description')); $productProvider = new ProductProviderTest($this->getMock('JMS\\Serializer\\SerializerInterface')); $productProvider->setCurrencyPriceCalculator(new CurrencyPriceCalculator()); $productProvider->setEventDispatcher($this->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface')); $productManager = $this->getMock('Sonata\\Component\\Product\\ProductManagerInterface'); $productDefinition = new ProductDefinition($productProvider, $productManager); $basketElement = new BasketElement(); $basketElement->setProduct('product_code', $product); $basketElement->setProductDefinition($productDefinition); $currency = new Currency(); $currency->setLabel('EUR'); $basket = $this->getMockBuilder('Sonata\\Component\\Basket\\BasketInterface')->getMock(); $basket->expects($this->any())->method('getCurrency')->will($this->returnValue($currency)); $productProvider->updateComputationPricesFields($basket, $basketElement, $product); return $basketElement; }