Sonata\CustomerBundle\Twig\Extension\AddressExtension::isAddressDeliverable PHP Method

isAddressDeliverable() public method

Returns if address can deliver the given basket.
public isAddressDeliverable ( Sonata\Component\Customer\AddressInterface $address, Sonata\Component\Basket\BasketInterface $basket ) : boolean
$address Sonata\Component\Customer\AddressInterface A Sonata e-commerce address instance
$basket Sonata\Component\Basket\BasketInterface A Sonata e-commerce basket instance
return boolean
    public function isAddressDeliverable(AddressInterface $address, BasketInterface $basket)
    {
        $methods = $this->deliverySelector->getAvailableMethods($basket, $address);
        return count($methods) > 0 ? true : false;
    }

Usage Example

Example #1
0
 public function testIsAddressDeliverable()
 {
     $address = $this->getMock('Sonata\\Component\\Customer\\AddressInterface');
     $basket = $this->getMock('Sonata\\Component\\Basket\\BasketInterface');
     // Test false
     $deliverySelector = $this->getMock('Sonata\\Component\\Delivery\\ServiceDeliverySelectorInterface');
     $deliverySelector->expects($this->once())->method('getAvailableMethods')->will($this->returnValue(array()));
     $extension = new AddressExtension($deliverySelector);
     $deliverable = $extension->isAddressDeliverable($address, $basket);
     $this->assertFalse($deliverable);
     // Test true
     $deliverySelector = $this->getMock('Sonata\\Component\\Delivery\\ServiceDeliverySelectorInterface');
     $deliverySelector->expects($this->once())->method('getAvailableMethods')->will($this->returnValue(array('paypal')));
     $extension = new AddressExtension($deliverySelector);
     $deliverable = $extension->isAddressDeliverable($address, $basket);
     $this->assertTrue($deliverable);
 }