public function testGetAvailableMethodsWithRequiredAddressDelivery()
{
$deliveryPool = $this->getMock('Sonata\\Component\\Delivery\\Pool');
$productPool = new ProductPool();
$basket = $this->getMock('Sonata\\Component\\Basket\\Basket');
$basketElement = $this->getMock('Sonata\\Component\\Basket\\BasketElement');
$product = $this->getMock('Sonata\\Tests\\Component\\Delivery\\Product');
$delivery = $this->getMock('Sonata\\Component\\Product\\DeliveryInterface');
$delivery->expects($this->any())->method('getCode')->will($this->returnValue('deliveryTest'));
$serviceDelivery = $this->getMock('Sonata\\Component\\Delivery\\BaseServiceDelivery');
$serviceDelivery->expects($this->any())->method('getCode')->will($this->returnValue('deliveryTest'));
$serviceDelivery->expects($this->any())->method('getEnabled')->will($this->returnValue(true));
$serviceDelivery->expects($this->any())->method('isAddressRequired')->will($this->returnValue(true));
$deliveryPool->expects($this->any())->method('getMethod')->will($this->returnValue($serviceDelivery));
$basket->expects($this->once())->method('getBasketElements')->will($this->returnValue(array($basketElement)));
$basketElement->expects($this->once())->method('getProduct')->will($this->returnValue($product));
$product->expects($this->once())->method('getDeliveries')->will($this->returnValue(array($delivery)));
$selector = new Selector($deliveryPool, $productPool);
$this->assertEquals(array(), $selector->getAvailableMethods($basket));
}