package com.trywildcard.pair.model.product;
import com.trywildcard.pair.exception.CardBuilderException;
import com.trywildcard.pair.util.DummyOffer;
import com.trywildcard.pair.util.TestUtil;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import java.text.ParseException;
/**
* Test building an offer, using an <code>OfferBuilder</code>, from values in code stubs.
*/
public class OfferBuilderTest {
private static DummyOffer dummyOffer;
@BeforeClass
public static void initialize() throws ParseException, CardBuilderException {
dummyOffer = new DummyOffer();
}
@Test
public void testMinimalOffer() throws CardBuilderException {
OfferBuilder builder = new OfferBuilder(dummyOffer.price);
Offer offer = builder.build();
Assert.assertEquals("Price should match", dummyOffer.price, offer.getPrice());
}
@Test
public void testMinimalOfferWithMinimalConstructor() throws CardBuilderException {
OfferBuilder builder = new OfferBuilder(dummyOffer.price.getPrice());
Offer offer = builder.build();
Assert.assertEquals("Price should match", dummyOffer.price.getPrice(), offer.getPrice().getPrice());
}
@Test
public void testExtensiveOffer() throws CardBuilderException {
OfferBuilder builder = new OfferBuilder(dummyOffer.price);
builder.originalPrice(dummyOffer.originalPrice);
builder.shippingCost(dummyOffer.shippingCost);
builder.description(dummyOffer.description);
builder.availability(dummyOffer.availability);
builder.quantity(dummyOffer.quantity);
builder.saleStartDate(dummyOffer.saleStartDate);
builder.saleEndDate(dummyOffer.saleEndDate);
builder.expirationDate(dummyOffer.expirationDate);
builder.geographicAvailability(dummyOffer.geographicAvailability);
builder.weight(dummyOffer.weight);
builder.weightUnits(dummyOffer.weightUnits);
Offer offer = builder.build();
Assert.assertEquals("Price should match", dummyOffer.price, offer.getPrice());
Assert.assertEquals("OriginalPrice should match", dummyOffer.originalPrice, offer.getOriginalPrice());
Assert.assertEquals("Shipping cost should match", dummyOffer.shippingCost, offer.getShippingCost());
Assert.assertEquals("Description should match", dummyOffer.description, offer.getDescription());
Assert.assertEquals("Availability should match", dummyOffer.availability, offer.getAvailability());
Assert.assertEquals("Quantity should match", dummyOffer.quantity, offer.getQuantity());
Assert.assertEquals("Sale start date should match", dummyOffer.saleStartDate, offer.getSaleStartDate());
Assert.assertEquals("Sale end date should match", dummyOffer.saleEndDate, offer.getSaleEndDate());
Assert.assertEquals("Expiration date should match", dummyOffer.expirationDate, offer.getExpirationDate());
Assert.assertEquals("Weight should match", dummyOffer.weight, offer.getWeight(), TestUtil.FLOAT_EXACT_COMPARISON_EPSILON);
Assert.assertEquals("WeightUnits should match", dummyOffer.weightUnits, offer.getWeightUnits());
}
}