コード例 #1
0
 public function onSuccess(SubscriptionEvent $event)
 {
     $subscription = $event->getSubscription();
     if (!$subscription instanceof RecurringSubscriptionInterface) {
         throw new \InvalidArgumentException('Subscription must implement RecurringSubscriptionInterface');
     }
     $this->scheduler->schedule($subscription, $subscription);
 }
コード例 #2
0
 public function it_removes_subscription_when_max_cycles_hits_zero(RecurringSubscriptionInterface $subscription, SubscriptionEvent $event, ObjectManager $manager)
 {
     $subscription->getMaxCycles()->willReturn(0);
     $subscription->setMaxCycles(0)->shouldBeCalled();
     $event->getSubscription()->willReturn($subscription);
     $manager->remove($subscription)->shouldBeCalled();
     $this->onSuccess($event);
 }
コード例 #3
0
 public function onSuccess(SubscriptionEvent $event)
 {
     $subscription = $event->getSubscription();
     if (!$subscription instanceof RecurringSubscriptionInterface) {
         throw new \InvalidArgumentException('Subscription must implement RecurringSubscriptionInterface');
     }
     if (null === ($maxCycles = $subscription->getMaxCycles())) {
         return;
     }
     $subscription->setMaxCycles(max(0, $maxCycles - 1));
     if (0 === $subscription->getMaxCycles()) {
         $this->manager->remove($subscription);
     }
 }
 public function it_decrements_max_cycles(RecurringSubscriptionInterface $subscription, SubscriptionEvent $event, RecurringSchedulerInterface $scheduler)
 {
     $event->getSubscription()->willReturn($subscription);
     $scheduler->schedule($subscription, $subscription)->shouldBeCalled();
     $this->onSuccess($event);
 }