public String moveItemToCart(HttpServletRequest request, HttpServletResponse response, Model model, String wishlistName, Long orderItemId) throws RemoveFromCartException, AddToCartException, PricingException { Order wishlist = orderService.findNamedOrderForCustomer(wishlistName, CustomerState.getCustomer()); List<OrderItem> orderItems = wishlist.getOrderItems(); OrderItem orderItem = null; for (OrderItem item : orderItems) { if (orderItemId.equals(item.getId())) { orderItem = item; break; } } if (orderItem != null) { Order cartOrder = orderService.addItemFromNamedOrder(wishlist, orderItem, false); cartOrder = orderService.save(cartOrder, true); } else { throw new IllegalArgumentException("The item id provided was not found in the wishlist"); } model.addAttribute("wishlist", wishlist); return getAccountWishlistRedirect(); }
@Test(groups = { "testCartAndNamedOrder" }) @Transactional public void testMoveItemToCartFromNamedOrderWithoutExistingCart() throws RemoveFromCartException, AddToCartException { Order namedOrder = setUpNamedOrder(); List<OrderItem> namedOrderItems = new ArrayList<>(); namedOrderItems.addAll(namedOrder.getOrderItems()); List<OrderItem> movedOrderItems = new ArrayList<>(); movedOrderItems.add(namedOrderItems.get(0)); Order cart = orderService.addItemFromNamedOrder(namedOrder, movedOrderItems.get(0), true); List<Order> customerNamedOrders = orderService.findOrdersForCustomer(namedOrder.getCustomer(), OrderStatus.NAMED); assert customerNamedOrders.size() == 0; assert cart.getOrderItems().size() == 1; assert namedOrder.getOrderItems().size() == 0; assert cartContainsOnlyTheseItems(cart, movedOrderItems); }
@Test(groups = { "testCartAndNamedOrder" }) @Transactional public void testAddItemToCartFromNamedOrder() throws RemoveFromCartException, AddToCartException { Order namedOrder = setUpNamedOrder(); List<OrderItem> namedOrderItems = new ArrayList<>(); namedOrderItems.addAll(namedOrder.getOrderItems()); List<OrderItem> movedOrderItems = new ArrayList<>(); movedOrderItems.add(namedOrderItems.get(0)); Order cart = orderService.createNewCartForCustomer(namedOrder.getCustomer()); orderService.setMoveNamedOrderItems(false); cart = orderService.addItemFromNamedOrder(namedOrder, movedOrderItems.get(0), true); orderService.setMoveNamedOrderItems(true); assert cartContainsOnlyTheseItems(cart, movedOrderItems); }
@Test(groups = { "testCartAndNamedOrder" }) @Transactional public void testMoveItemToCartFromNamedOrder() throws RemoveFromCartException, AddToCartException { Order namedOrder = setUpNamedOrder(); List<OrderItem> namedOrderItems = new ArrayList<>(); namedOrderItems.addAll(namedOrder.getOrderItems()); List<OrderItem> movedOrderItems = new ArrayList<>(); movedOrderItems.add(namedOrderItems.get(0)); Order cart = orderService.createNewCartForCustomer(namedOrder.getCustomer()); cart = orderService.addItemFromNamedOrder(namedOrder, movedOrderItems.get(0), true); List<Order> customerNamedOrders = orderService.findOrdersForCustomer(namedOrder.getCustomer(), OrderStatus.NAMED); assert customerNamedOrders.size() == 0; assert cart.getOrderItems().size() == 1; assert namedOrder.getOrderItems().size() == 0; assert cartContainsOnlyTheseItems(cart, movedOrderItems); }