/** * {@inheritdoc} */ public function sendOrderConfirmation(OrderInterface $order) { if (!($user = $order->getUser())) { throw new \InvalidArgumentException('Order has to belong to a User'); } $this->sendEmail(array('order' => $order), $user->getEmail()); }
function it_should_recognize_subject_as_not_eligible_if_nth_order_is_equal_with_configured(OrderInterface $subject, UserInterface $user, \Countable $orders) { $subject->getUser()->shouldBeCalled()->willReturn($user); $user->getOrders()->shouldBeCalled()->willReturn($orders); $orders->count()->shouldBeCalled()->willReturn(10); $this->isEligible($subject, array('nth' => 10))->shouldReturn(true); }
/** * {@inheritdoc} */ public function sendOrderComment(OrderInterface $order, CommentInterface $comment = null) { if (!($user = $order->getUser())) { throw new \InvalidArgumentException('Order has to belong to a User.'); } $this->sendEmail(array('order' => $order, 'comment' => $comment), $user->getEmail()); }
function it_sends_order_confirmation_email(OrderInterface $order, UserInterface $user, TwigMailerInterface $mailer) { $parameters = array('template' => 'test-template.html.twig', 'from_email' => '*****@*****.**'); $this->beConstructedWith($mailer, $parameters); $user->getEmail()->willReturn('*****@*****.**'); $order->getUser()->willReturn($user); $mailer->sendEmail('test-template.html.twig', array('order' => $order), '*****@*****.**', '*****@*****.**')->shouldBeCalled(); $this->sendOrderConfirmation($order); }
public function it_recognizes_subject_as_not_eligible_if_user_not_linked_to_order(OrderInterface $subject, PromotionInterface $promotion, CouponInterface $coupon) { $subject->getUser()->willReturn(null); $coupon->getCode()->willReturn('D0003'); $coupon->getPerUserUsageLimit()->willReturn(1); $coupon->getPromotion()->willReturn($promotion); $subject->getPromotionCoupon()->willReturn($coupon); $promotion->getRules()->willReturn(array()); $promotion->getStartsAt()->willReturn(null); $promotion->getEndsAt()->willReturn(null); $promotion->isCouponBased()->willReturn(true); $promotion->hasCoupons()->willReturn(true); $promotion->hasCoupon($coupon)->willReturn(true); $promotion->getUsageLimit()->willReturn(null); $promotion->getCoupons()->willReturn(array($coupon)); $this->isEligible($subject, $promotion)->shouldReturn(false); }
function it_should_recognize_subject_as_not_eligible_if_user_is_created_before_configured(OrderInterface $subject, TimestampableInterface $user) { $subject->getUser()->willReturn($user); $user->getCreatedAt()->willReturn(new \DateTime()); $this->isEligible($subject, array('time' => 30, 'unit' => 'days', 'after' => true))->shouldReturn(true); }
function it_should_recognize_subject_as_not_eligible_if_nth_order_is_equal_with_configured(OrderInterface $subject, UserInterface $user, $ordersRepository) { $subject->getUser()->willReturn($user); $ordersRepository->countByUserAndPaymentState($user, PaymentInterface::STATE_COMPLETED)->willReturn(9); $this->isEligible($subject, array('nth' => 10))->shouldReturn(true); }