package com.yummynoodlebar.rest.domain; import com.yummynoodlebar.core.events.orders.OrderDetails; import com.yummynoodlebar.rest.controller.fixture.RestDataFixture; import org.junit.Before; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import static junit.framework.Assert.assertEquals; import static junit.framework.TestCase.assertTrue; public class OrderTests { // {!begin supportHateoas} @Before public void setup() { MockHttpServletRequest request = new MockHttpServletRequest(); RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request)); } // {!end supportHateoas} @Test public void thatOrderCanConvertToOrderDetails() { Order order = RestDataFixture.standardOrder(); OrderDetails details = order.toOrderDetails(); assertEquals(order.getKey(), details.getKey()); assertEquals(order.getDateTimeOfSubmission(), details.getDateTimeOfSubmission()); assertEquals(details.getOrderItems().size(), details.getOrderItems().size()); assertTrue(details.getOrderItems().containsKey(RestDataFixture.YUMMY_ITEM)); assertEquals(details.getOrderItems().get(RestDataFixture.YUMMY_ITEM), order.getItems().get(RestDataFixture.YUMMY_ITEM)); } @Test public void thatOrderCanConvertFromOrderDetails() { OrderDetails details = RestDataFixture.standardOrderDetails(); Order order = Order.fromOrderDetails(details); assertEquals(order.getKey(), details.getKey()); assertEquals(order.getDateTimeOfSubmission(), details.getDateTimeOfSubmission()); assertEquals(order.getItems().size(), details.getOrderItems().size()); assertTrue(order.getItems().containsKey(RestDataFixture.YUMMY_ITEM)); assertEquals(details.getOrderItems().get(RestDataFixture.YUMMY_ITEM), order.getItems().get(RestDataFixture.YUMMY_ITEM)); } }