public function testOrderElement()
{
$product = $this->getMock('Sonata\\Component\\Product\\ProductInterface');
$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(9.99));
$product->expects($this->any())->method('getOptions')->will($this->returnValue(array('foo' => 'bar')));
$product->expects($this->any())->method('getDescription')->will($this->returnValue('product description'));
$productProvider = new ProductProviderTest($this->getMock('JMS\\Serializer\\SerializerInterface'));
$productProvider->setCurrencyPriceCalculator(new CurrencyPriceCalculator());
$productManager = $this->getMock('Sonata\\Component\\Product\\ProductManagerInterface');
$productDefinition = new ProductDefinition($productProvider, $productManager);
$basketElement = new BasketElement();
$basketElement->setProduct('product_code', $product);
$basketElement->setProductDefinition($productDefinition);
$provider = $this->getBaseProvider();
$orderElement = $provider->createOrderElement($basketElement);
$this->assertInstanceOf('Sonata\\Component\\Order\\OrderElementInterface', $orderElement);
$this->assertEquals(OrderInterface::STATUS_PENDING, $orderElement->getStatus());
$this->assertEquals('Product name', $orderElement->getDesignation());
$this->assertEquals(1, $orderElement->getQuantity());
}