@@ -61,7 +61,7 @@ public function testSalesOrderBeforeSaveCantUnhold()
6161 $ paymentMock = $ this ->getMockBuilder (
6262 \Magento \Sales \Model \Order \Payment::class
6363 )->disableOriginalConstructor ()->setMethods ([])->getMock ();
64- $ order ->expects ( $ this -> once ())-> method ('getPayment ' )->will ($ this ->returnValue ($ paymentMock ));
64+ $ order ->method ('getPayment ' )->will ($ this ->returnValue ($ paymentMock ));
6565 $ methodInstance = $ this ->getMockBuilder (
6666 \Magento \Payment \Model \MethodInterface::class
6767 )->getMockForAbstractClass ();
@@ -86,7 +86,7 @@ public function testSalesOrderBeforeSaveIsCanceled()
8686 $ paymentMock = $ this ->getMockBuilder (
8787 \Magento \Sales \Model \Order \Payment::class
8888 )->disableOriginalConstructor ()->setMethods ([])->getMock ();
89- $ order ->expects ( $ this -> once ())-> method ('getPayment ' )->will ($ this ->returnValue ($ paymentMock ));
89+ $ order ->method ('getPayment ' )->will ($ this ->returnValue ($ paymentMock ));
9090 $ methodInstance = $ this ->getMockBuilder (
9191 \Magento \Payment \Model \MethodInterface::class
9292 )->getMockForAbstractClass ();
@@ -114,7 +114,7 @@ public function testSalesOrderBeforeSaveIsClosed()
114114 $ paymentMock = $ this ->getMockBuilder (
115115 \Magento \Sales \Model \Order \Payment::class
116116 )->disableOriginalConstructor ()->setMethods ([])->getMock ();
117- $ order ->expects ( $ this -> once ())-> method ('getPayment ' )->will ($ this ->returnValue ($ paymentMock ));
117+ $ order ->method ('getPayment ' )->will ($ this ->returnValue ($ paymentMock ));
118118 $ methodInstance = $ this ->getMockBuilder (
119119 \Magento \Payment \Model \MethodInterface::class
120120 )->getMockForAbstractClass ();
@@ -156,6 +156,26 @@ public function testSalesOrderBeforeSaveSetForced()
156156 $ this ->salesOrderBeforeSaveObserver ->execute ($ this ->observerMock );
157157 }
158158
159+ /**
160+ * The method should check that the payment is available, as this is not always the case.
161+ */
162+ public function testDoesNothingWhenNoPaymentIsAvailable ()
163+ {
164+ $ this ->_prepareEventMockWithMethods (['getOrder ' ]);
165+
166+ $ order = $ this ->getMockBuilder (\Magento \Sales \Model \Order::class)->disableOriginalConstructor ()->setMethods (
167+ array_merge (['__wakeup ' , 'getPayment ' ])
168+ )->getMock ();
169+
170+ $ this ->eventMock ->expects ($ this ->once ())->method ('getOrder ' )->will (
171+ $ this ->returnValue ($ order )
172+ );
173+
174+ $ order ->expects ($ this ->exactly (1 ))->method ('getPayment ' )->willReturn (null );
175+
176+ $ this ->salesOrderBeforeSaveObserver ->execute ($ this ->observerMock );
177+ }
178+
159179 /**
160180 * Prepares EventMock with set of methods
161181 *
@@ -184,7 +204,7 @@ private function _getPreparedOrderMethod($methodCode, $orderMethods = [])
184204 $ paymentMock = $ this ->getMockBuilder (
185205 \Magento \Sales \Model \Order \Payment::class
186206 )->disableOriginalConstructor ()->setMethods ([])->getMock ();
187- $ order ->expects ( $ this -> once ())-> method ('getPayment ' )->will ($ this ->returnValue ($ paymentMock ));
207+ $ order ->method ('getPayment ' )->will ($ this ->returnValue ($ paymentMock ));
188208 $ methodInstance = $ this ->getMockBuilder (
189209 \Magento \Payment \Model \MethodInterface::class
190210 )->getMockForAbstractClass ();
0 commit comments