package com.restbucks.ordering.domain;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;


public class OrderTest {
    @Test
    public void shouldStoreAndRetrieveItems() {
        int numberOfItems = 5;
        ArrayList<Item> items = new ArrayList<Item>();
        
        for(int i = 0; i < numberOfItems; i++) {
            items.add(new Item(Size.SMALL, Milk.WHOLE, Drink.LATTE));
        }
        
        Order order = new Order(Location.TAKEAWAY, OrderStatus.PREPARING, items);
        assertEquals(numberOfItems, order.getItems().size());
    }
    
    @Test
    public void shouldCalculateCost() {
        List<Item> items = new ArrayList<Item>();
        items.add(new Item(Size.SMALL, Milk.NONE, Drink.ESPRESSO));
        items.add(new Item(Size.LARGE, Milk.WHOLE, Drink.LATTE));
        items.add(new Item(Size.LARGE, Milk.SEMI, Drink.CAPPUCCINO));
        
        Order order = new Order(Location.TAKEAWAY, items);
        order.calculateCost();
        assertTrue(new BigDecimal(5.5).equals( order.calculateCost()));
    }
}
