package com.restbucks.ordering.activities;

import org.junit.Test;

import com.restbucks.ordering.domain.Order;
import com.restbucks.ordering.domain.OrderStatus;
import com.restbucks.ordering.representations.OrderRepresentation;

import static com.restbucks.ordering.domain.OrderBuilder.order;
import static org.junit.Assert.*;

public class CreateOrderActivityTest {
    @Test
    public void shouldCreatePREPARINGOrder() {
        CreateOrderActivity activity = new CreateOrderActivity();
        Order order = order().build();
        OrderRepresentation o = new OrderRepresentation(order, null); // no internal order #
        OrderRepresentation responseRepresentation = activity.create(o);
        assertEquals(OrderStatus.PREPARING, responseRepresentation.getOrder().getStatus());
        // System.out.println("CreateOrderActivityTest: id = " + responseRepresentation.getId());
    }
    @Test(expected = InvalidOrderException.class)
    public void shouldNotAllowOrderCreationWithSpecificId() {
        CreateOrderActivity activity = new CreateOrderActivity();
        Order order = order().build();
        OrderRepresentation o = new OrderRepresentation(order, "123"); 
        activity.create(o);  // should throw
    }
}
