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.assertNull;
//import static org.mockito.Mockito.mock;
//import static org.mockito.Mockito.when;

import java.net.URI;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;

import org.junit.Test;

import com.restbucks.ordering.domain.Identifier;
import com.restbucks.ordering.domain.Order;
import com.restbucks.ordering.domain.OrderBuilder;
import com.restbucks.ordering.repositories.OrderRepository;
import com.restbucks.ordering.representations.OrderRepresentation;


public class UpdateOrderTest {
    private String baseUri = "http://restbucks.com/";
    
    @Test
    public void shouldNotFindOrderWithPreviouslyUnseenId() throws Exception {
//    	String id = "1234567890";
//        UriInfo mockUriInfo = mock(UriInfo.class);
//        when(mockUriInfo.getRequestUri()).thenReturn(new URI(baseUri + "order/" + id));
//        
//        OrderResource orderResource = new OrderResource(mockUriInfo);
//
//        OrderRepresentation representation = new OrderRepresentation(order().build(), null);
//        
//        Response response = orderResource.updateOrder(representation, id);
//       
//        assertEquals(404, response.getStatus());
//        assertNull("Location should be null", response.getMetadata().getFirst("Location"));
    }
    
    
    @Test
    public void shouldAcceptValidOrderUpdate() throws Exception {
//        Order order = OrderBuilder.order().build();
//        
//        Identifier identifier = OrderRepository.current().store(order);
//        String id = identifier.toString();
//        
//        UriInfo mockUriInfo = mock(UriInfo.class);
//        when(mockUriInfo.getRequestUri()).thenReturn(new URI(baseUri + "order/" + id));
//        
//        OrderResource orderResource = new OrderResource(mockUriInfo);
//        Response response = orderResource.updateOrder(new OrderRepresentation(order, id), id);
//        
//        assertEquals(200, response.getStatus());   
    }
    
  
}
