Sonata\Test\ProductBundle\Model\BaseProductProviderTest::testValidateFormBasketElement PHP Метод

testValidateFormBasketElement() публичный Метод

    public function testValidateFormBasketElement()
    {
        $productProvider = $this->createNewProductProvider();
        $errorElement = $this->getMockBuilder('Sonata\\CoreBundle\\Validator\\ErrorElement')->disableOriginalConstructor()->getMock();
        $basket = $this->getMockBuilder('Sonata\\Component\\Basket\\BasketInterface')->getMock();
        // With a deleted element
        $basketElement = $this->getMockBuilder('Sonata\\Component\\Basket\\BasketElementInterface')->getMock();
        $basketElement->expects($this->any())->method('getDelete')->will($this->returnValue(true));
        $this->assertNull($productProvider->validateFormBasketElement($errorElement, $basketElement, $basket));
        // Without a product
        $basketElement = $this->getMockBuilder('Sonata\\Component\\Basket\\BasketElementInterface')->getMock();
        $basketElement->expects($this->any())->method('getProduct')->will($this->returnValue(false));
        $this->assertNull($productProvider->validateFormBasketElement($errorElement, $basketElement, $basket));
        // With a disabled product
        $basketElement = $this->getMockBuilder('Sonata\\Component\\Basket\\BasketElementInterface')->getMock();
        $product = $this->getMockBuilder('Sonata\\Component\\Product\\ProductInterface')->getMock();
        $product->expects($this->any())->method('getEnabled')->will($this->returnValue(false));
        $basketElement->expects($this->any())->method('getProduct')->will($this->returnValue($product));
        $this->assertNull($productProvider->validateFormBasketElement($errorElement, $basketElement, $basket));
        // With a non numeric quantity
        $basketElement = $this->getMockBuilder('Sonata\\Component\\Basket\\BasketElementInterface')->getMock();
        $product = $this->getMockBuilder('Sonata\\Component\\Product\\ProductInterface')->getMock();
        $basketElement->expects($this->any())->method('getProduct')->will($this->returnValue($product));
        $basketElement->expects($this->any())->method('getQuantity')->will($this->returnValue('invalid value'));
        $this->assertNull($productProvider->validateFormBasketElement($errorElement, $basketElement, $basket));
    }