Package org.broadleafcommerce.core.order.service.legacy

Source Code of org.broadleafcommerce.core.order.service.legacy.LegacyOrderBaseTest

/*
* #%L
* BroadleafCommerce Integration
* %%
* Copyright (C) 2009 - 2013 Broadleaf Commerce
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*       http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package org.broadleafcommerce.core.order.service.legacy;

import org.broadleafcommerce.core.catalog.domain.Category;
import org.broadleafcommerce.core.catalog.domain.Product;
import org.broadleafcommerce.core.catalog.domain.Sku;
import org.broadleafcommerce.core.order.domain.BundleOrderItem;
import org.broadleafcommerce.core.order.domain.DiscreteOrderItem;
import org.broadleafcommerce.core.order.domain.GiftWrapOrderItem;
import org.broadleafcommerce.core.order.domain.Order;
import org.broadleafcommerce.core.order.domain.OrderItem;
import org.broadleafcommerce.core.order.service.call.BundleOrderItemRequest;
import org.broadleafcommerce.core.order.service.call.DiscreteOrderItemRequest;
import org.broadleafcommerce.core.order.service.call.GiftWrapOrderItemRequest;
import org.broadleafcommerce.core.pricing.service.exception.PricingException;
import org.broadleafcommerce.profile.core.domain.Customer;
import org.broadleafcommerce.test.legacy.LegacyCommonSetupBaseTest;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@SuppressWarnings("deprecation")
public class LegacyOrderBaseTest extends LegacyCommonSetupBaseTest {

    @Resource(name = "blOrderService")
    protected LegacyCartService cartService;
   
    private int bundleCount = 0;
   
    protected Customer createNamedCustomer() {
        Customer customer = customerService.createCustomerFromId(null);
        customer.setUsername(String.valueOf(customer.getId()));
        return customer;
    }
   
    public Order setUpNamedOrder() throws PricingException {
        Customer customer = customerService.saveCustomer(createNamedCustomer());

        Order order = cartService.createNamedOrderForCustomer("Boxes Named Order", customer);
       
        Product newProduct = addTestProduct("Cube Box", "Boxes");       
        Category newCategory = newProduct.getDefaultCategory();

        cartService.addSkuToOrder(order.getId(), newProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2);
       
        return order;
    }
   
    public Order setUpAnonymousCartWithInactiveSku() throws PricingException {
        Customer customer = customerService.saveCustomer(createNamedCustomer());

        Order order = cartService.createNewCartForCustomer(customer);

        Product newProduct = addTestProduct("Plastic Crate", "Crates");
        Product newInactiveProduct = addTestProduct("Plastic Crate", "Crates", false);
       
        Category newCategory = newProduct.getDefaultCategory();

        cartService.addSkuToOrder(order.getId(), newProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2);
        cartService.addSkuToOrder(order.getId(), newInactiveProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2);
       
        cartService.addBundleItemToOrder(order, createBundleOrderItemRequest());
        cartService.addBundleItemToOrder(order, createBundleOrderItemRequestWithInactiveSku());
       
        return order;
    }

    public Order setUpAnonymousCartWithGiftWrap() throws PricingException {
        Customer customer = customerService.saveCustomer(createNamedCustomer());

        Order order = cartService.createNewCartForCustomer(customer);

        Product newProduct = addTestProduct("Plastic Crate", "Crates");
        Product newInactiveProduct = addTestProduct("Plastic Crate", "Crates");
        Product giftWrapProduct = addTestProduct("Gift Box", "Gift Wraps");

        Category newCategory = newProduct.getDefaultCategory();

        List<OrderItem> addedItems = new ArrayList<OrderItem>();
        addedItems.add(cartService.addSkuToOrder(order.getId(), newProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2));
        addedItems.add(cartService.addSkuToOrder(order.getId(), newInactiveProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2));

        cartService.addGiftWrapItemToOrder(order, createGiftWrapOrderItemRequest(giftWrapProduct, giftWrapProduct.getDefaultSku(), 1, addedItems));

        return order;
    }

    public Order setUpAnonymousCartWithInactiveGiftWrap() throws PricingException {
        Customer customer = customerService.saveCustomer(createNamedCustomer());

        Order order = cartService.createNewCartForCustomer(customer);

        Product newProduct = addTestProduct("Plastic Crate", "Crates");
        Product newInactiveProduct = addTestProduct("Plastic Crate", "Crates", false);
        Product giftWrapProduct = addTestProduct("Gift Box", "Gift Wraps");

        Category newCategory = newProduct.getDefaultCategory();

        List<OrderItem> addedItems = new ArrayList<OrderItem>();
        addedItems.add(cartService.addSkuToOrder(order.getId(), newProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2));
        addedItems.add(cartService.addSkuToOrder(order.getId(), newInactiveProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2));

        cartService.addGiftWrapItemToOrder(order, createGiftWrapOrderItemRequest(giftWrapProduct, giftWrapProduct.getDefaultSku(), 1, addedItems));

        return order;
    }
   
    public Order initializeExistingCartWithInactiveSkuAndInactiveBundle(Customer customer) throws PricingException {
        Product newProduct = addTestProduct("Plastic Crate", "Crates");
        Product newInactiveProduct = addTestProduct("Plastic Crate", "Crates", false);
       
        Category newCategory = newProduct.getDefaultCategory();

        Order order = cartService.createNewCartForCustomer(customer);

        cartService.addSkuToOrder(order.getId(), newProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2);
        cartService.addSkuToOrder(order.getId(), newInactiveProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2);
       
        cartService.addBundleItemToOrder(order, createBundleOrderItemRequest());
        cartService.addBundleItemToOrder(order, createBundleOrderItemRequestWithInactiveSku());

        return order;
    }

    public Order initializeExistingCart(Customer customer) throws PricingException {
        Product newProduct = addTestProduct("Plastic Crate", "Crates");
        Product newOtherProduct = addTestProduct("Plastic Crate", "Crates");
       
        Category newCategory = newProduct.getDefaultCategory();
       
        Order order = cartService.createNewCartForCustomer(customer);
       
        cartService.addSkuToOrder(order.getId(), newProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2);
        cartService.addSkuToOrder(order.getId(), newOtherProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2);
       
        return order;
    }
   
    public BundleOrderItemRequest createBundleOrderItemRequest() {
        Product screwProduct = addTestProduct("Bookshelf", "Components");
        Product shelfProduct = addTestProduct("Bookshelf", "Components");
        Product bracketsProduct = addTestProduct("Bookshelf", "Components");
        Category category = screwProduct.getDefaultCategory();
       
        List<DiscreteOrderItemRequest> discreteOrderItems = new ArrayList<DiscreteOrderItemRequest>();
        discreteOrderItems.add(createDiscreteOrderItemRequest(screwProduct, screwProduct.getDefaultSku(), 20));
        discreteOrderItems.add(createDiscreteOrderItemRequest(shelfProduct, shelfProduct.getDefaultSku(), 3));
        discreteOrderItems.add(createDiscreteOrderItemRequest(bracketsProduct, bracketsProduct.getDefaultSku(), 6));
       
        BundleOrderItemRequest itemRequest = new BundleOrderItemRequest();
        itemRequest.setCategory(category);
        itemRequest.setName("test bundle " + bundleCount++);
        itemRequest.setQuantity(1);
        itemRequest.setDiscreteOrderItems(discreteOrderItems);
        return itemRequest;
    }
   
    public BundleOrderItemRequest createBundleOrderItemRequestWithInactiveSku() {
        Product drawerProduct = addTestProduct("Drawer System", "Systems");
        Product nailsProduct = addTestProduct("Drawer System", "Systems");
        Product tracksProduct = addTestProduct("Drawer System", "Systems", false);
        Category category = drawerProduct.getDefaultCategory();
       
        List<DiscreteOrderItemRequest> discreteOrderItems = new ArrayList<DiscreteOrderItemRequest>();
        discreteOrderItems.add(createDiscreteOrderItemRequest(drawerProduct, drawerProduct.getDefaultSku(), 20));
        discreteOrderItems.add(createDiscreteOrderItemRequest(nailsProduct, nailsProduct.getDefaultSku(), 3));
        discreteOrderItems.add(createDiscreteOrderItemRequest(tracksProduct, tracksProduct.getDefaultSku(), 6));
       
        BundleOrderItemRequest itemRequest = new BundleOrderItemRequest();
        itemRequest.setCategory(category);
        itemRequest.setName("test bundle " + bundleCount++);
        itemRequest.setQuantity(1);
        itemRequest.setDiscreteOrderItems(discreteOrderItems);
        return itemRequest;
    }
   
    public DiscreteOrderItemRequest createDiscreteOrderItemRequest(Product product, Sku sku, int quantity) {
        DiscreteOrderItemRequest request = new DiscreteOrderItemRequest();
        request.setSku(sku);
        request.setQuantity(quantity);
        request.setProduct(product);
        request.setCategory(product.getDefaultCategory());
        return request;
    }

    public GiftWrapOrderItemRequest createGiftWrapOrderItemRequest(Product product, Sku sku, int quantity, List<OrderItem> wrappedItems) {
        GiftWrapOrderItemRequest request = new GiftWrapOrderItemRequest();
        request.setSku(sku);
        request.setQuantity(quantity);
        request.setProduct(product);
        request.setCategory(product.getDefaultCategory());
        request.setWrappedItems(wrappedItems);

        return request;
    }

    public Order setUpAnonymousCartWithInactiveBundleGiftWrap() throws PricingException {
        Customer customer = customerService.saveCustomer(createNamedCustomer());

        Order order = cartService.createNewCartForCustomer(customer);

        Product newProduct = addTestProduct("Plastic Crate", "Crates");
        Product newInactiveProduct = addTestProduct("Plastic Crate", "Crates", false);
        Product giftWrapProduct = addTestProduct("Gift Box", "Gift Wraps");
        Category category = newProduct.getDefaultCategory();

        List<DiscreteOrderItemRequest> discreteOrderItems = new ArrayList<DiscreteOrderItemRequest>();
        discreteOrderItems.add(createDiscreteOrderItemRequest(newProduct, newProduct.getDefaultSku(), 1));
        discreteOrderItems.add(createDiscreteOrderItemRequest(newInactiveProduct, newInactiveProduct.getDefaultSku(), 1));
        discreteOrderItems.add(createGiftWrapOrderItemRequest(giftWrapProduct, giftWrapProduct.getDefaultSku(), 1, new ArrayList<OrderItem>()));

        BundleOrderItemRequest itemRequest = new BundleOrderItemRequest();
        itemRequest.setCategory(category);
        itemRequest.setName("test bundle " + bundleCount++);
        itemRequest.setQuantity(1);
        itemRequest.setDiscreteOrderItems(discreteOrderItems);

        BundleOrderItem newBundle = (BundleOrderItem) cartService.addBundleItemToOrder(order, itemRequest);
        List<OrderItem> addedItems = new ArrayList<OrderItem>();
        GiftWrapOrderItem giftItem = null;
        for (DiscreteOrderItem addedItem : newBundle.getDiscreteOrderItems()) {
            if (addedItem instanceof GiftWrapOrderItem) {
                giftItem = (GiftWrapOrderItem) addedItem;
            } else {
                addedItems.add(addedItem);
            }
        }
        for (OrderItem addedItem : addedItems) {
            addedItem.setGiftWrapOrderItem(giftItem);
        }
        giftItem.getWrappedItems().addAll(addedItems);
        order = cartService.save(order, false);

        return order;
    }

    public Order setUpAnonymousCartWithBundleGiftWrap() throws PricingException {
        Customer customer = customerService.saveCustomer(createNamedCustomer());

        Order order = cartService.createNewCartForCustomer(customer);

        BundleOrderItemRequest itemRequest = createBundleOrderItemRequestWithGiftWrap();

        BundleOrderItem newBundle = (BundleOrderItem) cartService.addBundleItemToOrder(order, itemRequest);
        List<OrderItem> addedItems = new ArrayList<OrderItem>();
        GiftWrapOrderItem giftItem = null;
        for (DiscreteOrderItem addedItem : newBundle.getDiscreteOrderItems()) {
            if (addedItem instanceof GiftWrapOrderItem) {
                giftItem = (GiftWrapOrderItem) addedItem;
            } else {
                addedItems.add(addedItem);
            }
        }
        for (OrderItem addedItem : addedItems) {
            addedItem.setGiftWrapOrderItem(giftItem);
        }
        giftItem.getWrappedItems().addAll(addedItems);
        order = cartService.save(order, false);

        return order;
    }

    protected BundleOrderItemRequest createBundleOrderItemRequestWithGiftWrap() {
        Product newProduct = addTestProduct("Plastic Crate", "Crates");
        Product newActiveProduct = addTestProduct("Plastic Crate", "Crates");
        Product giftWrapProduct = addTestProduct("Gift Box", "Gift Wraps");
        Category category = newProduct.getDefaultCategory();

        List<DiscreteOrderItemRequest> discreteOrderItems = new ArrayList<DiscreteOrderItemRequest>();
        discreteOrderItems.add(createDiscreteOrderItemRequest(newProduct, newProduct.getDefaultSku(), 1));
        discreteOrderItems.add(createDiscreteOrderItemRequest(newActiveProduct, newActiveProduct.getDefaultSku(), 1));
        discreteOrderItems.add(createGiftWrapOrderItemRequest(giftWrapProduct, giftWrapProduct.getDefaultSku(), 1, new ArrayList<OrderItem>()));

        BundleOrderItemRequest itemRequest = new BundleOrderItemRequest();
        itemRequest.setCategory(category);
        itemRequest.setName("test bundle " + bundleCount++);
        itemRequest.setQuantity(1);
        itemRequest.setDiscreteOrderItems(discreteOrderItems);
        return itemRequest;
    }

    public Order setUpAnonymousCartWithBundleGiftWrapReferringToRootItems() throws PricingException {
        Customer customer = customerService.saveCustomer(createNamedCustomer());

        Order order = cartService.createNewCartForCustomer(customer);

        Product newProduct = addTestProduct("Plastic Bowl", "Bowls");
        Product newActiveProduct = addTestProduct("Plastic Bowl", "Bowls");

        Category newCategory = newProduct.getDefaultCategory();

        List<OrderItem> addedItems = new ArrayList<OrderItem>();
        addedItems.add(cartService.addSkuToOrder(order.getId(), newProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2));
        addedItems.add(cartService.addSkuToOrder(order.getId(), newActiveProduct.getDefaultSku().getId(),
                newProduct.getId(), newCategory.getId(), 2));

        BundleOrderItem newBundle = (BundleOrderItem) cartService.addBundleItemToOrder(order, createBundleOrderItemRequestWithGiftWrap());
        GiftWrapOrderItem giftItem = null;
        for (DiscreteOrderItem addedItem : newBundle.getDiscreteOrderItems()) {
            if (addedItem instanceof GiftWrapOrderItem) {
                giftItem = (GiftWrapOrderItem) addedItem;
            }
        }
        for (OrderItem addedItem : addedItems) {
            addedItem.setGiftWrapOrderItem(giftItem);
        }
        giftItem.getWrappedItems().addAll(addedItems);
        order = cartService.save(order, false);

        return order;
    }

    public Order setUpAnonymousCartWithBundleGiftWrapReferringItemsInAnotherBundle() throws PricingException {
        Customer customer = customerService.saveCustomer(createNamedCustomer());

        Order order = cartService.createNewCartForCustomer(customer);

        BundleOrderItem newBundle = (BundleOrderItem) cartService.addBundleItemToOrder(order, createBundleOrderItemRequest());
        BundleOrderItem newBundle2 = (BundleOrderItem) cartService.addBundleItemToOrder(order, createBundleOrderItemRequestWithGiftWrap());
        GiftWrapOrderItem giftItem = null;
        for (DiscreteOrderItem addedItem : newBundle2.getDiscreteOrderItems()) {
            if (addedItem instanceof GiftWrapOrderItem) {
                giftItem = (GiftWrapOrderItem) addedItem;
            }
        }
        for (DiscreteOrderItem addedItem : newBundle.getDiscreteOrderItems()) {
            addedItem.setGiftWrapOrderItem(giftItem);
        }
        giftItem.getWrappedItems().addAll(newBundle.getDiscreteOrderItems());
        order = cartService.save(order, false);

        return order;
    }

}
TOP

Related Classes of org.broadleafcommerce.core.order.service.legacy.LegacyOrderBaseTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.