5
5
*/
6
6
namespace Magento \OfflinePayments \Test \Unit \Observer ;
7
7
8
+ use Magento \Framework \Event ;
9
+ use Magento \Framework \Event \Observer ;
8
10
use Magento \Framework \TestFramework \Unit \Helper \ObjectManager ;
9
11
use Magento \OfflinePayments \Model \Banktransfer ;
10
12
use Magento \OfflinePayments \Model \Cashondelivery ;
13
+ use Magento \OfflinePayments \Observer \BeforeOrderPaymentSaveObserver ;
14
+ use Magento \Sales \Model \Order \Payment ;
15
+ use PHPUnit_Framework_MockObject_MockObject as MockObject ;
16
+ use Magento \OfflinePayments \Model \Checkmo ;
11
17
12
18
class BeforeOrderPaymentSaveObserverTest extends \PHPUnit_Framework_TestCase
13
19
{
14
20
/**
15
- * @var \Magento\OfflinePayments\Observer\ BeforeOrderPaymentSaveObserver
21
+ * @var BeforeOrderPaymentSaveObserver
16
22
*/
17
23
protected $ _model ;
18
24
25
+ /**
26
+ * @var Payment|MockObject
27
+ */
28
+ private $ payment ;
29
+
30
+ /**
31
+ * @var Event|MockObject
32
+ */
33
+ private $ event ;
34
+
35
+ /**
36
+ * @var Observer|MockObject
37
+ */
38
+ private $ observer ;
39
+
40
+ /**
41
+ * @inheritdoc
42
+ */
19
43
protected function setUp ()
20
44
{
21
45
$ objectManagerHelper = new ObjectManager ($ this );
22
- $ this ->_model = $ objectManagerHelper
23
- ->getObject (\Magento \OfflinePayments \Observer \BeforeOrderPaymentSaveObserver::class);
46
+ $ this ->payment = $ this ->getMockBuilder (Payment::class)
47
+ ->disableOriginalConstructor ()
48
+ ->getMock ();
49
+
50
+ $ this ->event = $ this ->getMockBuilder (Event::class)
51
+ ->disableOriginalConstructor ()
52
+ ->setMethods (['getPayment ' ])
53
+ ->getMock ();
54
+
55
+ $ this ->event ->expects (self ::once ())
56
+ ->method ('getPayment ' )
57
+ ->willReturn ($ this ->payment );
58
+
59
+ $ this ->observer = $ this ->getMockBuilder (Observer::class)
60
+ ->disableOriginalConstructor ()
61
+ ->getMock ();
62
+
63
+ $ this ->observer ->expects (self ::once ())
64
+ ->method ('getEvent ' )
65
+ ->willReturn ($ this ->event );
66
+
67
+ $ this ->_model = $ objectManagerHelper ->getObject (BeforeOrderPaymentSaveObserver::class);
24
68
}
25
69
26
70
/**
@@ -29,40 +73,31 @@ protected function setUp()
29
73
*/
30
74
public function testBeforeOrderPaymentSaveWithInstructions ($ methodCode )
31
75
{
32
- $ observer = $ this ->getMock (\Magento \Framework \Event \Observer::class, ['getEvent ' ], [], '' , false );
33
- $ event = $ this ->getMock (\Magento \Framework \Event::class, ['getPayment ' ], [], '' , false );
34
- $ payment = $ this ->getMock (
35
- \Magento \Sales \Model \Order \Payment::class,
36
- ['getMethod ' , 'setAdditionalInformation ' , 'getMethodInstance ' ],
37
- [],
38
- '' ,
39
- false
40
- );
41
- $ payment ->expects ($ this ->once ())
76
+ $ this ->payment ->expects (self ::once ())
42
77
->method ('getMethod ' )
43
78
->willReturn ($ methodCode );
44
- $ payment ->expects ($ this -> once ())
79
+ $ this -> payment ->expects (self :: once ())
45
80
->method ('setAdditionalInformation ' )
46
81
->with ('instructions ' , 'payment configuration ' );
47
- $ method = $ this ->getMockBuilder (\ Magento \ OfflinePayments \ Model \ Banktransfer::class)
82
+ $ method = $ this ->getMockBuilder (Banktransfer::class)
48
83
->disableOriginalConstructor ()
49
84
->getMock ();
50
85
51
- $ method ->expects ($ this -> once ())
86
+ $ method ->expects (self :: once ())
52
87
->method ('getInstructions ' )
53
88
->willReturn ('payment configuration ' );
54
- $ payment ->expects ($ this -> once ())
89
+ $ this -> payment ->expects (self :: once ())
55
90
->method ('getMethodInstance ' )
56
91
->willReturn ($ method );
57
- $ event ->expects ($ this ->once ())
58
- ->method ('getPayment ' )
59
- ->willReturn ($ payment );
60
- $ observer ->expects ($ this ->once ())
61
- ->method ('getEvent ' )
62
- ->willReturn ($ event );
63
- $ this ->_model ->execute ($ observer );
92
+
93
+ $ this ->_model ->execute ($ this ->observer );
64
94
}
65
95
96
+ /**
97
+ * Returns list of payment method codes.
98
+ *
99
+ * @return array
100
+ */
66
101
public function dataProviderBeforeOrderPaymentSaveWithInstructions ()
67
102
{
68
103
return [
@@ -73,70 +108,68 @@ public function dataProviderBeforeOrderPaymentSaveWithInstructions()
73
108
74
109
public function testBeforeOrderPaymentSaveWithCheckmo ()
75
110
{
76
- $ observer = $ this ->getMock (\Magento \Framework \Event \Observer::class, ['getEvent ' ], [], '' , false );
77
- $ event = $ this ->getMock (\Magento \Framework \Event::class, ['getPayment ' ], [], '' , false );
78
- $ payment = $ this ->getMock (
79
- \Magento \Sales \Model \Order \Payment::class,
80
- ['getMethod ' , 'setAdditionalInformation ' , 'getMethodInstance ' ],
81
- [],
82
- '' ,
83
- false
84
- );
85
- $ payment ->expects ($ this ->exactly (2 ))
111
+ $ this ->payment ->expects (self ::exactly (2 ))
86
112
->method ('getMethod ' )
87
- ->willReturn (\ Magento \ OfflinePayments \ Model \ Checkmo::PAYMENT_METHOD_CHECKMO_CODE );
88
- $ payment ->expects ($ this -> exactly (2 ))
113
+ ->willReturn (Checkmo::PAYMENT_METHOD_CHECKMO_CODE );
114
+ $ this -> payment ->expects (self :: exactly (2 ))
89
115
->method ('setAdditionalInformation ' )
90
116
->willReturnMap (
91
117
[
92
- ['payable_to ' , 'payable to ' , $ payment ],
93
- ['mailing_address ' , 'mailing address ' , $ payment ],
118
+ ['payable_to ' , 'payable to ' , $ this -> payment ],
119
+ ['mailing_address ' , 'mailing address ' , $ this -> payment ],
94
120
]
95
121
);
96
122
97
- $ method = $ this ->getMockBuilder (\ Magento \ OfflinePayments \ Model \ Checkmo::class)
123
+ $ method = $ this ->getMockBuilder (Checkmo::class)
98
124
->disableOriginalConstructor ()
99
125
->getMock ();
100
- $ method ->expects ($ this -> once ( ))
126
+ $ method ->expects (self :: exactly ( 2 ))
101
127
->method ('getPayableTo ' )
102
128
->willReturn ('payable to ' );
103
- $ method ->expects ($ this -> once ( ))
129
+ $ method ->expects (self :: exactly ( 2 ))
104
130
->method ('getMailingAddress ' )
105
131
->willReturn ('mailing address ' );
106
- $ payment ->expects ($ this -> exactly ( 2 ))
132
+ $ this -> payment ->expects (self :: once ( ))
107
133
->method ('getMethodInstance ' )
108
134
->willReturn ($ method );
109
- $ event ->expects ($ this ->once ())
110
- ->method ('getPayment ' )
111
- ->willReturn ($ payment );
112
- $ observer ->expects ($ this ->once ())
113
- ->method ('getEvent ' )
114
- ->willReturn ($ event );
115
- $ this ->_model ->execute ($ observer );
135
+ $ this ->_model ->execute ($ this ->observer );
136
+ }
137
+
138
+ /**
139
+ * Checks a case when payment method is Check Money order and
140
+ * payable person and mailing address do not specified.
141
+ */
142
+ public function testBeforeOrderPaymentSaveWithCheckmoWithoutConfig ()
143
+ {
144
+ $ this ->payment ->expects (self ::exactly (2 ))
145
+ ->method ('getMethod ' )
146
+ ->willReturn (Checkmo::PAYMENT_METHOD_CHECKMO_CODE );
147
+ $ this ->payment ->expects (self ::never ())
148
+ ->method ('setAdditionalInformation ' );
149
+
150
+ $ method = $ this ->getMockBuilder (Checkmo::class)
151
+ ->disableOriginalConstructor ()
152
+ ->getMock ();
153
+ $ method ->expects (self ::once ())
154
+ ->method ('getPayableTo ' )
155
+ ->willReturn (null );
156
+ $ method ->expects (self ::once ())
157
+ ->method ('getMailingAddress ' )
158
+ ->willReturn (null );
159
+ $ this ->payment ->expects (self ::once ())
160
+ ->method ('getMethodInstance ' )
161
+ ->willReturn ($ method );
162
+ $ this ->_model ->execute ($ this ->observer );
116
163
}
117
164
118
165
public function testBeforeOrderPaymentSaveWithOthers ()
119
166
{
120
- $ observer = $ this ->getMock (\Magento \Framework \Event \Observer::class, ['getEvent ' ], [], '' , false );
121
- $ event = $ this ->getMock (\Magento \Framework \Event::class, ['getPayment ' ], [], '' , false );
122
- $ payment = $ this ->getMock (
123
- \Magento \Sales \Model \Order \Payment::class,
124
- ['getMethod ' , 'setAdditionalInformation ' , 'getMethodInstance ' ],
125
- [],
126
- '' ,
127
- false
128
- );
129
- $ payment ->expects ($ this ->exactly (2 ))
167
+ $ this ->payment ->expects (self ::exactly (2 ))
130
168
->method ('getMethod ' )
131
169
->willReturn ('somepaymentmethod ' );
132
- $ payment ->expects ($ this -> never ())
170
+ $ this -> payment ->expects (self :: never ())
133
171
->method ('setAdditionalInformation ' );
134
- $ event ->expects ($ this ->once ())
135
- ->method ('getPayment ' )
136
- ->willReturn ($ payment );
137
- $ observer ->expects ($ this ->once ())
138
- ->method ('getEvent ' )
139
- ->willReturn ($ event );
140
- $ this ->_model ->execute ($ observer );
172
+
173
+ $ this ->_model ->execute ($ this ->observer );
141
174
}
142
175
}
0 commit comments