/**
  * @param UserInterface $user
  */
 private function blame(UserInterface $user)
 {
     $cart = $this->getCart();
     if (null === $cart) {
         return;
     }
     $cart->setCustomer($user->getCustomer());
     $this->cartManager->persist($cart);
     $this->cartManager->flush();
 }
 /**
  * @Given /^(I) have already placed an order (\d+) times$/
  */
 public function iHaveAlreadyPlacedOrderNthTimes(UserInterface $user, $numberOfOrders)
 {
     $customer = $user->getCustomer();
     for ($i = 0; $i < $numberOfOrders; $i++) {
         $order = $this->createOrder($customer, '#00000' . $i);
         $order->setPaymentState(PaymentInterface::STATE_COMPLETED);
         $order->setCompletedAt(new \DateTime());
         $this->orderRepository->add($order);
     }
 }
 /**
  * Check if a wishlist is publicly available, or the
  * user has special privileges to access it.
  *
  * @param $user
  * @param $wishlist
  * @return bool
  */
 protected function userCanAccessWishlist(UserInterface $user = null, WishlistInterface $wishlist)
 {
     if ($wishlist->isPublic()) {
         return true;
     }
     if ($user) {
         if ($user->hasRole('ROLE_ADMINISTRATION_ACCESS') || $user->getCustomer() && $user->getCustomer()->getId() == $wishlist->getCustomer()->getId()) {
             return true;
         }
     }
     return false;
 }
 /**
  * @Given /^(I) have already placed (\d+) orders choosing ("[^"]+" shipping method) (to "[^"]+") with ("[^"]+" payment)$/
  */
 public function iHaveAlreadyPlacedOrderNthTimes(UserInterface $user, $numberOfOrders, ShippingMethodInterface $shippingMethod, AddressInterface $address, PaymentMethodInterface $paymentMethod)
 {
     $customer = $user->getCustomer();
     for ($i = 0; $i < $numberOfOrders; $i++) {
         $order = $this->createOrder($customer, '#00000' . $i);
         $this->checkoutUsing($order, $shippingMethod, clone $address, $paymentMethod);
         $this->applyPaymentTransitionOnOrder($order, PaymentTransitions::TRANSITION_COMPLETE);
         $this->orderRepository->add($order);
         $this->sharedStorage->set('order', $order);
     }
 }