Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.spice.profitmandi.dao.model;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class CarryBagQuoteTest {

    private static CarryBagQuote quote(int phones, int bags, boolean flatPriced) {
        return new CarryBagQuote(phones, bags, flatPriced, 1f, 12f);
    }

    @Test
    public void bagsBeyondThePhonesPayListingPrice() {
        CarryBagQuote q = quote(5, 8, true);
        assertEquals(5, q.getFlatQty());
        assertEquals(3, q.getListingQty());
        assertEquals(41d, q.getTotal(), 0.001);
        assertEquals(5.125f, q.getUnitPrice(), 0.0001f);
    }

    @Test
    public void fewerBagsThanPhonesAreAllFlat() {
        CarryBagQuote q = quote(5, 2, true);
        assertEquals(2, q.getFlatQty());
        assertEquals(0, q.getListingQty());
        assertEquals(2d, q.getTotal(), 0.001);
    }

    @Test
    public void bagsWithoutPhonesPayListingPrice() {
        CarryBagQuote q = quote(0, 400, true);
        assertEquals(0, q.getFlatQty());
        assertEquals(4800d, q.getTotal(), 0.001);
    }

    @Test
    public void partnerWithoutFlatPricePaysListingForEveryBag() {
        CarryBagQuote q = quote(5, 5, false);
        assertEquals(0, q.getFlatQty());
        assertEquals(60d, q.getTotal(), 0.001);
    }

    @Test
    public void withQuantityKeepsTheAllowance() {
        CarryBagQuote q = quote(5, 0, true).withQuantity(7);
        assertEquals(5, q.getFlatQty());
        assertEquals(29d, q.getTotal(), 0.001);
    }

    @Test
    public void blendedPriceTimesQuantityLandsOnTheTotal() {
        CarryBagQuote q = quote(7, 400, true);
        assertEquals(q.getTotal(), (double) q.getUnitPrice() * q.getQuantity(), 0.001);
    }
}