@@ -93,11 +93,81 @@ public function testPaymentMethodNonce()
93
93
$ this ->assertArrayNotHasKey ('paymentMethodToken ' , $ data );
94
94
}
95
95
96
+ public function testSubMerchantSale ()
97
+ {
98
+ $ this ->request ->initialize (
99
+ array (
100
+ 'amount ' => '100.00 ' ,
101
+ 'holdInEscrow ' => true ,
102
+ 'merchantAccountId ' => 'blue_ladders_store ' ,
103
+ 'paymentMethodToken ' => 'fake-token-123 ' ,
104
+ 'serviceFeeAmount ' => '10.00 ' ,
105
+ )
106
+ );
107
+
108
+ $ data = $ this ->request ->getData ();
109
+ $ this ->assertTrue ($ data ['options ' ]['holdInEscrow ' ]);
110
+ $ this ->assertSame ('blue_ladders_store ' , $ data ['merchantAccountId ' ]);
111
+ $ this ->assertSame ('10.00 ' , $ data ['serviceFeeAmount ' ]);
112
+ }
113
+
96
114
public function testSandboxEnvironment ()
97
115
{
98
116
$ this ->request ->setTestMode (true );
99
117
100
118
$ this ->request ->configure ();
101
119
$ this ->assertSame ('sandbox ' , \Braintree_Configuration::environment ());
102
120
}
121
+
122
+ public function testServiceFeeAmount ()
123
+ {
124
+ $ this ->assertSame ($ this ->request , $ this ->request ->setServiceFeeAmount ('2.00 ' ));
125
+ $ this ->assertSame ('2.00 ' , $ this ->request ->getServiceFeeAmount ());
126
+ }
127
+
128
+ public function testServiceFeeAmountWithFloat ()
129
+ {
130
+ $ this ->assertSame ($ this ->request , $ this ->request ->setServiceFeeAmount (2.0 ));
131
+ $ this ->assertSame ('2.00 ' , $ this ->request ->getServiceFeeAmount ());
132
+ }
133
+
134
+ public function testServiceFeeAmountWithEmpty ()
135
+ {
136
+ $ this ->assertSame ($ this ->request , $ this ->request ->setServiceFeeAmount (null ));
137
+ $ this ->assertSame (null , $ this ->request ->getServiceFeeAmount ());
138
+ }
139
+
140
+ public function testGetServiceFeeAmountNoDecimals ()
141
+ {
142
+ $ this ->assertSame ($ this ->request , $ this ->request ->setCurrency ('JPY ' ));
143
+ $ this ->assertSame ($ this ->request , $ this ->request ->setServiceFeeAmount ('1366 ' ));
144
+ $ this ->assertSame ('1366 ' , $ this ->request ->getServiceFeeAmount ());
145
+ }
146
+
147
+ public function testGetServiceFeeAmountNoDecimalsRounding ()
148
+ {
149
+ $ this ->assertSame ($ this ->request , $ this ->request ->setServiceFeeAmount ('136.5 ' ));
150
+ $ this ->assertSame ($ this ->request , $ this ->request ->setCurrency ('JPY ' ));
151
+ $ this ->assertSame ('137 ' , $ this ->request ->getServiceFeeAmount ());
152
+ }
153
+
154
+ /**
155
+ * @expectedException \Omnipay\Common\Exception\InvalidRequestException
156
+ */
157
+ public function testServiceFeeAmountWithIntThrowsException ()
158
+ {
159
+ // ambiguous value, avoid errors upgrading from v0.9
160
+ $ this ->assertSame ($ this ->request , $ this ->request ->setServiceFeeAmount (10 ));
161
+ $ this ->request ->getServiceFeeAmount ();
162
+ }
163
+
164
+ /**
165
+ * @expectedException \Omnipay\Common\Exception\InvalidRequestException
166
+ */
167
+ public function testServiceFeeAmountWithIntStringThrowsException ()
168
+ {
169
+ // ambiguous value, avoid errors upgrading from v0.9
170
+ $ this ->assertSame ($ this ->request , $ this ->request ->setServiceFeeAmount ('10 ' ));
171
+ $ this ->request ->getServiceFeeAmount ();
172
+ }
103
173
}
0 commit comments