package com.restbucks.ordering.resources;
//eoneil note: kept in sources but commented out
//because dependence on mockito causes build problems

import static com.restbucks.ordering.domain.OrderBuilder.order;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
//import static org.mockito.Mockito.mock;
//import static org.mockito.Mockito.when;

import java.net.URI;
import java.net.URISyntaxException;

import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;

import org.junit.Test;

import com.restbucks.ordering.representations.OrderRepresentation;


public class ReadOrderTest {
    
    private static final String baseUri = "http://restbucks.com/";
    
    @Test
    public void shouldFindExistingOrder() throws Exception {
//        OrderRepresentation representation = placeOrder();
//        
//        // set up mock UriInfo that can respond to getRequestUri call--
//        UriInfo mockUriInfo = mock(UriInfo.class);
//        when(mockUriInfo.getRequestUri()).thenReturn(new URI(baseUri + "order/" + representation.getId()));
//        
//        OrderResource readResource = new OrderResource(mockUriInfo);
//        assertNotNull(readResource.getOrder(representation.getId()));
        
    }

//    private OrderRepresentation placeOrder() throws URISyntaxException {
//        UriInfo mockUriInfo = mock(UriInfo.class);
//        when(mockUriInfo.getRequestUri()).thenReturn(new URI(baseUri + "order"));
//        OrderResource placeOrderResource = new OrderResource(mockUriInfo); 
//        
//        Response representation = placeOrderResource.createOrder(new OrderRepresentation(order().build(), null));
//        return (OrderRepresentation) representation.getEntity();
//    }
    
    @Test
    public void shouldFailToFindNonExistentOrder() throws Exception {
//        UriInfo mockUriInfo = mock(UriInfo.class);
//        when(mockUriInfo.getRequestUri()).thenReturn(new URI(baseUri + "order/1234567890"));
//        
//        OrderResource resource = new OrderResource(mockUriInfo);
//        assertEquals(404, resource.getOrder("1234567890").getStatus());
    }
}
