/*
* #%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.offer;
import org.broadleafcommerce.common.time.SystemTime;
import org.broadleafcommerce.core.offer.domain.Offer;
import org.broadleafcommerce.core.offer.domain.OfferImpl;
import org.broadleafcommerce.core.offer.service.type.OfferDiscountType;
import org.broadleafcommerce.core.offer.service.type.OfferType;
import org.testng.annotations.DataProvider;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("deprecation")
public class OfferDataProvider {
@DataProvider(name = "offerDataProvider")
public static Object[][] provideBasicOffer(){
List<Offer> allOffers = new ArrayList<Offer>();
OfferImpl o = new OfferImpl();
o.setDiscountType(OfferDiscountType.AMOUNT_OFF);
o.setValue(new BigDecimal("5.00"));
o.setName("Some test offer");
o.setPriority(100);
o.setStackable(true);
o.setStartDate(SystemTime.asDate());
o.setEndDate(new Date(SystemTime.asMillis()+100000000));
o.setApplyDiscountToMarkedItems(false);
o.setTargetSystem("WEB");
o.setType(OfferType.ORDER_ITEM);
o.setAppliesToOrderRules(
"package org.broadleafcommerce.core.offer.service;"+
"import org.broadleafcommerce.core.offer.domain.Offer;"+
"import org.broadleafcommerce.core.order.domain.Order;"+
"import org.broadleafcommerce.core.order.domain.OrderItem;"+
"import org.broadleafcommerce.type.OfferType;"+
"import java.util.List;"+
"global List orderItems;"+
"global List offerPackages;"+
"rule \"Offer 1 Rule\" "+
"salience 100"+
"when "+
" orderItem : OrderItem(sku == 1) "+
" "+
" then"+
" System.err.println(\"applying offer 1\");"+
" orderItem.addRulesCandidateOffer"+
"end");
allOffers.add(o);
o = new OfferImpl();
o.setDiscountType(OfferDiscountType.AMOUNT_OFF);
o.setValue(new BigDecimal("5.00"));
o.setName("Second test offer");
o.setPriority(100);
o.setStackable(false);
o.setStartDate(SystemTime.asDate());
o.setEndDate(new Date(SystemTime.asMillis()+100000000));
o.setApplyDiscountToMarkedItems(false);
o.setTargetSystem("WEB");
o.setType(OfferType.FULFILLMENT_GROUP);
o.setAppliesToOrderRules(
"package org.broadleafcommerce.core.offer.service;"+
"import org.broadleafcommerce.core.offer.domain.Offer;"+
"import org.broadleafcommerce.core.order.domain.Order;"+
"import org.broadleafcommerce.core.order.domain.OrderItem;"+
"import org.broadleafcommerce.type.OfferType;"+
"import java.util.List;"+
"global List orderItems;"+
"global List offerPackages;"+
"rule \"Offer 1 Rule\" "+
"salience 100"+
"when "+
" orderItem : OrderItem(retailPrice >= 100)"+
" then"+
" System.err.println(\"applying offer 2\");"+
" insert(offer);"+
"end");
allOffers.add(o);
return new Object[][] {{allOffers}};
}
}