/** * Handle coupons added by the user in his cart. * TODO: maybe replace this with a unified FlashSubscriber. * * @param GenericEvent $event */ public function handleCouponPromotion(GenericEvent $event) { if (SyliusPromotionEvents::COUPON_ELIGIBLE === $event->getName()) { $type = 'success'; $message = 'sylius.promotion_coupon.eligible'; } elseif (SyliusPromotionEvents::COUPON_NOT_ELIGIBLE === $event->getName()) { $type = 'error'; $message = 'sylius.promotion_coupon.not_eligible'; } else { $type = 'error'; $message = 'sylius.promotion_coupon.invalid'; } $this->session->getBag('flashes')->add($type, $this->translator->trans($message, array(), 'flashes')); }
/** * Update community ticker * * @param GenericEvent $event * @return void */ public function update(GenericEvent $event) { $params = $event->getArguments(); $user = array_key_exists('user', $params) ? $params['user'] : null; unset($params['user']); $this->getRepository()->save(new CommunityTickerEvent(), array('event' => $event->getName(), 'user' => $user, 'params' => $params)); }
function it_adds_error_message_to_flashbag_when_coupon_is_not_eligible(GenericEvent $event, FlashBagInterface $flashBag, $session, $translator) { $event->getName()->willReturn(SyliusPromotionEvents::COUPON_NOT_ELIGIBLE); $translator->trans(Argument::any(), Argument::any(), 'flashes')->shouldBeCalled(); $flashBag->add('error', Argument::any())->shouldBeCalled(); $session->getBag('flashes')->shouldBeCalled()->willReturn($flashBag); $this->handleCouponPromotion($event); }