getMockBuilder(\Magento\Payment\Model\MethodInterface::class) ->disableOriginalConstructor() ->setMethods([]) ->getMock(); if (!$total) { $paymentMethod->expects($this->once()) ->method('getCode') ->will($this->returnValue($code)); } $quote = $this->getMockBuilder(\Magento\Quote\Model\Quote::class) ->disableOriginalConstructor() ->setMethods(['getBaseGrandTotal', '__wakeup']) ->getMock(); $quote->expects($this->once()) ->method('getBaseGrandTotal') ->will($this->returnValue($total)); $model = new ZeroTotal(); $this->assertEquals($expectation, $model->isApplicable($paymentMethod, $quote)); } /** * @return array */ public function paymentMethodDataProvider() { return [['not_free', 0, false], ['free', 1, true]]; } }