/** * Generate adapter stub * * @param int $cartTotalPrice Cart total price * @param string $checkoutCurrency Checkout currency * @param string $i18nOutput Output from each translation * * @return \PHPUnit_Framework_MockObject_MockObject */ public function generateFacadeStub($cartTotalPrice = 400, $checkoutCurrency = 'EUR', $i18nOutput = '') { $stubFacade = $this->getMockBuilder('\\Thelia\\Coupon\\BaseFacade')->disableOriginalConstructor()->getMock(); $currencies = CurrencyQuery::create(); $currencies = $currencies->find(); $stubFacade->expects($this->any())->method('getAvailableCurrencies')->will($this->returnValue($currencies)); $stubFacade->expects($this->any())->method('getCartTotalPrice')->will($this->returnValue($cartTotalPrice)); $stubFacade->expects($this->any())->method('getCheckoutCurrency')->will($this->returnValue($checkoutCurrency)); $stubFacade->expects($this->any())->method('getConditionEvaluator')->will($this->returnValue(new ConditionEvaluator())); $stubTranslator = $this->getMockBuilder('\\Thelia\\Core\\Translation\\Translator')->disableOriginalConstructor()->getMock(); $stubTranslator->expects($this->any())->method('trans')->will($this->returnValue($i18nOutput)); $stubFacade->expects($this->any())->method('getTranslator')->will($this->returnValue($stubTranslator)); $stubDispatcher = $this->getMockBuilder('\\Symfony\\Component\\EventDispatcher\\EventDispatcher')->disableOriginalConstructor()->getMock(); $stubDispatcher->expects($this->any())->method('dispatch')->will($this->returnCallback(function ($dummy, $cartEvent) { $ci = new CartItem(); $ci->setId(3)->setPrice(123)->setPromo(0); $cartEvent->setCartItem($ci); })); $stubFacade->expects($this->any())->method('getDispatcher')->will($this->returnValue($stubDispatcher)); $stubSession = $this->getMockBuilder('\\Thelia\\Core\\HttpFoundation\\Session\\Session')->disableOriginalConstructor()->getMock(); $stubSession->expects($this->any())->method('get')->will($this->onConsecutiveCalls(-1, 3)); $stubRequest = $this->getMockBuilder('\\Thelia\\Core\\HttpFoundation\\Request')->disableOriginalConstructor()->getMock(); $stubRequest->expects($this->any())->method('getSession')->will($this->returnValue($stubSession)); $stubFacade->expects($this->any())->method('getRequest')->will($this->returnValue($stubRequest)); return $stubFacade; }