Example #1
0
 /**
  * @param Processor $processor
  */
 public function checkout(Processor $processor)
 {
     foreach ($this->getItems() as $item) {
         $processor->add($item->getPrice());
     }
     $processor->pay($this->payment);
 }
Example #2
0
 public function it_checkouts_a_payment(Factory\Payment $paymentFactory, Item $item1, Item $item2, PaymentInterface $paymentInterface, Processor $processor)
 {
     $this->beConstructedWith($paymentFactory, [$item1, $item2], $paymentInterface);
     $item1->getPrice()->willReturn(100);
     $item2->getPrice()->willReturn(200);
     $processor->add(100)->shouldBeCalled();
     $processor->add(200)->shouldBeCalled();
     $processor->pay($paymentInterface)->shouldBeCalled();
     $this->checkout($processor);
 }
Example #3
0
 public function it_checkouts_a_credit_order(Payment $payment, Processor $processor, Item $item1, Item $item2, Credit $credit)
 {
     $this->beConstructedWith($payment, [$item1, $item2], true);
     $item1->getPrice()->willReturn(100);
     $item2->getPrice()->willReturn(200);
     $processor->add(100)->shouldBeCalled();
     $processor->add(200)->shouldBeCalled();
     $payment->getCredit()->willReturn($credit);
     $processor->pay($credit)->shouldBeCalled();
     $this->checkout($processor);
 }