@Test
public void uri() throws Exception {
final ODataContext context = mockContext(ODataHttpMethod.GET);
final ODataResponse wrappedResponse = mockResponse(HttpStatusCodes.OK, null, null);
UriInfo uriInfo = mock(UriInfo.class);
final FilterExpression filter = UriParser.parseFilter(null, null, "true");
when(uriInfo.getFilter()).thenReturn(filter);
final OrderByExpression orderBy = UriParser.parseOrderBy(null, null, "true");
when(uriInfo.getOrderBy()).thenReturn(orderBy);
List<ArrayList<NavigationPropertySegment>> expand = new ArrayList<ArrayList<NavigationPropertySegment>>();
NavigationPropertySegment segment = mock(NavigationPropertySegment.class);
EdmNavigationProperty navigationProperty = mock(EdmNavigationProperty.class);
when(navigationProperty.getName()).thenReturn("nav");
when(segment.getNavigationProperty()).thenReturn(navigationProperty);
ArrayList<NavigationPropertySegment> segments = new ArrayList<NavigationPropertySegment>();
segments.add(segment);
expand.add(segments);
when(uriInfo.getExpand()).thenReturn(expand);
SelectItem select1 = mock(SelectItem.class);
SelectItem select2 = mock(SelectItem.class);
EdmProperty property = mock(EdmProperty.class);
when(property.getName()).thenReturn("property");
when(select1.getProperty()).thenReturn(property);
when(select2.getProperty()).thenReturn(property);
when(select2.getNavigationPropertySegments()).thenReturn(segments);
when(uriInfo.getSelect()).thenReturn(Arrays.asList(select1, select2));
ODataResponse response = new ODataDebugResponseWrapper(context, wrappedResponse, uriInfo, null,
ODataDebugResponseWrapper.ODATA_DEBUG_JSON).wrapResponse();
String entity = StringHelper.inputStreamToString((InputStream) response.getEntity());
assertEquals(EXPECTED.replace("}}}", "}},\"server\":{"