@@ -203,9 +203,22 @@ public function testRemainingTrialDaysFromCancel()
203203 'status ' => 'cancelled ' ,
204204 'shop_id ' => $ shop ->id ,
205205 ]);
206+ $ charge_3 = factory (Charge::class)->states ('type_recurring ' )->create ([
207+ 'cancelled_on ' => Carbon::today ()->subDays (1 ),
208+ 'status ' => 'cancelled ' ,
209+ 'shop_id ' => $ shop ->id ,
210+ ]);
211+ $ charge_4 = factory (Charge::class)->states ('type_recurring ' )->create ([
212+ 'trial_days ' => 5 ,
213+ 'trial_ends_on ' => Carbon::today ()->subDays (1 ),
214+ 'status ' => 'active ' ,
215+ 'shop_id ' => $ shop ->id ,
216+ ]);
206217
207218 $ this ->assertEquals (2 , $ charge ->remainingTrialDaysFromCancel ());
208219 $ this ->assertEquals (0 , $ charge_2 ->remainingTrialDaysFromCancel ());
220+ $ this ->assertNull ($ charge_3 ->remainingTrialDaysFromCancel ());
221+ $ this ->assertEquals (0 , $ charge_4 ->remainingTrialDaysFromCancel ());
209222 }
210223
211224 public function testRetreieve ()
@@ -214,15 +227,52 @@ public function testRetreieve()
214227 Config::set ('shopify-app.api_class ' , new ApiStub ());
215228 ApiStub::stubResponses ([
216229 'get_application_charge ' ,
230+ 'get_recurring_application_charge_activate ' ,
231+ 'get_application_credit '
217232 ]);
218233
219234 $ shop = factory (Shop::class)->create ();
220235 $ charge = factory (Charge::class)->states ('type_onetime ' )->create ([
221236 'shop_id ' => $ shop ->id ,
222237 ]);
238+ $ charge_2 = factory (Charge::class)->states ('type_recurring ' )->create ([
239+ 'shop_id ' => $ shop ->id ,
240+ ]);
241+ $ charge_3 = factory (Charge::class)->states ('type_credit ' )->create ([
242+ 'shop_id ' => $ shop ->id ,
243+ ]);
244+
223245 $ result = $ charge ->retrieve ();
246+ $ result_2 = $ charge_2 ->retrieve ();
247+ $ result_3 = $ charge_3 ->retrieve ();
224248
225249 // Assert we get an object
226250 $ this ->assertTrue (is_object ($ result ));
251+ $ this ->assertTrue (is_object ($ result_2 ));
252+ $ this ->assertTrue (is_object ($ result_3 ));
253+ }
254+
255+ public function testCancel ()
256+ {
257+ $ shop = factory (Shop::class)->create ();
258+ $ charge = factory (Charge::class)->states ('type_recurring ' )->create ([
259+ 'status ' => Charge::STATUS_ACTIVE ,
260+ 'shop_id ' => $ shop ->id ,
261+ ]);
262+ $ charge ->cancel ();
263+
264+ $ this ->assertEquals (Charge::STATUS_CANCELLED , $ charge ->status );
265+ }
266+
267+ /**
268+ * @expectedException Exception
269+ */
270+ public function testCancelError ()
271+ {
272+ $ shop = factory (Shop::class)->create ();
273+ $ charge = factory (Charge::class)->states ('type_usage ' )->create ([
274+ 'shop_id ' => $ shop ->id ,
275+ ]);
276+ $ charge ->cancel ();
227277 }
228278}
0 commit comments