Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
CheckoutValidatorTest.php
Go to the documentation of this file.
1 <?php
8 
10 
11 class CheckoutValidatorTest extends \PHPUnit\Framework\TestCase
12 {
14  protected $checkoutValidator;
15 
18 
20  protected $sessionMock;
21 
24 
26  protected $paymentHelperMock;
27 
28  protected function setUp()
29  {
30  $this->sessionMock = $this->createMock(\Magento\Checkout\Model\Session::class);
31  $this->paypalShortcutHelperMock = $this->createMock(\Magento\Paypal\Helper\Shortcut\Validator::class);
32  $this->paymentHelperMock = $this->createMock(\Magento\Payment\Helper\Data::class);
33 
34  $this->objectManagerHelper = new ObjectManagerHelper($this);
35  $this->checkoutValidator = $this->objectManagerHelper->getObject(
36  \Magento\Paypal\Helper\Shortcut\CheckoutValidator::class,
37  [
38  'checkoutSession' => $this->sessionMock,
39  'shortcutValidator' => $this->paypalShortcutHelperMock,
40  'paymentData' => $this->paymentHelperMock
41  ]
42  );
43  }
44 
45  public function testValidate()
46  {
47  $code = 'code';
48  $isInCatalog = true;
49  $methodInstanceMock = $this->getMockBuilder(\Magento\Payment\Model\Method\AbstractMethod::class)
50  ->disableOriginalConstructor()->setMethods([])->getMock();
51 
52  $this->paypalShortcutHelperMock->expects($this->once())->method('isContextAvailable')
53  ->with($code, $isInCatalog)->will($this->returnValue(true));
54  $this->paypalShortcutHelperMock->expects($this->once())->method('isPriceOrSetAvailable')
55  ->with($isInCatalog)->will($this->returnValue(true));
56  $this->paymentHelperMock->expects($this->once())->method('getMethodInstance')->with($code)
57  ->will($this->returnValue($methodInstanceMock));
58  $methodInstanceMock->expects($this->once())->method('isAvailable')->with(null)
59  ->will($this->returnValue(true));
60 
61  $this->assertTrue($this->checkoutValidator->validate($code, $isInCatalog));
62  }
63 
65  {
66  $quote = null;
67  $isInCatalog = true;
68  $paymentCode = 'code';
69  $methodInstanceMock = $this->getMockBuilder(\Magento\Payment\Model\Method\AbstractMethod::class)
70  ->disableOriginalConstructor()->setMethods([])->getMock();
71 
72  $this->paymentHelperMock->expects($this->once())->method('getMethodInstance')->with($paymentCode)
73  ->will($this->returnValue($methodInstanceMock));
74  $methodInstanceMock->expects($this->once())->method('isAvailable')->with($quote)
75  ->will($this->returnValue(false));
76 
77  $this->assertFalse($this->checkoutValidator->isMethodQuoteAvailable($paymentCode, $isInCatalog));
78  }
79 
85  {
86  $quote = $this->getMockBuilder(\Magento\Quote\Model\Quote::class)->disableOriginalConstructor()->setMethods([])
87  ->getMock();
88  $isInCatalog = false;
89  $paymentCode = 'code';
90  $methodInstanceMock = $this->getMockBuilder(\Magento\Payment\Model\Method\AbstractMethod::class)
91  ->disableOriginalConstructor()->setMethods([])->getMock();
92 
93  $this->sessionMock->expects($this->once())->method('getQuote')->will($this->returnValue($quote));
94  $this->paymentHelperMock->expects($this->once())->method('getMethodInstance')->with($paymentCode)
95  ->will($this->returnValue($methodInstanceMock));
96  $methodInstanceMock->expects($this->once())->method('isAvailable')->with($quote)
97  ->will($this->returnValue($availability));
98 
99  $this->assertEquals(
100  $availability,
101  $this->checkoutValidator->isMethodQuoteAvailable($paymentCode, $isInCatalog)
102  );
103  }
104 
109  {
110  return [[true], [false]];
111  }
112 
114  {
115  $isInCatalog = true;
116  $this->assertTrue($this->checkoutValidator->isQuoteSummaryValid($isInCatalog));
117  }
118 
120  {
121  $isInCatalog = false;
122  $quote = $this->getMockBuilder(\Magento\Quote\Model\Quote::class)->disableOriginalConstructor()->setMethods([])
123  ->getMock();
124 
125  $this->sessionMock->expects($this->once())->method('getQuote')->will($this->returnValue($quote));
126  $quote->expects($this->once())->method('validateMinimumAmount')->will($this->returnValue(false));
127 
128  $this->assertFalse($this->checkoutValidator->isQuoteSummaryValid($isInCatalog));
129  }
130 
132  {
133  $isInCatalog = false;
134  $quote = $this->getMockBuilder(\Magento\Quote\Model\Quote::class)->disableOriginalConstructor()
135  ->setMethods(['getGrandTotal', 'validateMinimumAmount', '__wakeup'])
136  ->getMock();
137 
138  $this->sessionMock->expects($this->once())->method('getQuote')->will($this->returnValue($quote));
139  $quote->expects($this->once())->method('validateMinimumAmount')->will($this->returnValue(true));
140  $quote->expects($this->once())->method('getGrandTotal')->will($this->returnValue(0));
141 
142  $this->assertFalse($this->checkoutValidator->isQuoteSummaryValid($isInCatalog));
143  }
144 
145  public function testIsQuoteSummaryValidTrue()
146  {
147  $isInCatalog = false;
148  $quote = $this->getMockBuilder(\Magento\Quote\Model\Quote::class)->disableOriginalConstructor()
149  ->setMethods(['getGrandTotal', 'validateMinimumAmount', '__wakeup'])
150  ->getMock();
151 
152  $this->sessionMock->expects($this->once())->method('getQuote')->will($this->returnValue($quote));
153  $quote->expects($this->once())->method('validateMinimumAmount')->will($this->returnValue(true));
154  $quote->expects($this->once())->method('getGrandTotal')->will($this->returnValue(1));
155 
156  $this->assertTrue($this->checkoutValidator->isQuoteSummaryValid($isInCatalog));
157  }
158 }
$quote
$code
Definition: info.phtml:12