public void WriteToStreamAsyncReturnsODataRepresentation() { // Arrange ODataConventionModelBuilder modelBuilder = new ODataConventionModelBuilder(); modelBuilder.EntitySet <WorkItem>("WorkItems"); IEdmModel model = modelBuilder.GetEdmModel(); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/WorkItems(10)"); HttpConfiguration configuration = new HttpConfiguration(); string routeName = "Route"; configuration.MapODataServiceRoute(routeName, null, model); request.SetConfiguration(configuration); IEdmEntitySet entitySet = model.EntityContainer.EntitySets().Single(); request.ODataProperties().Path = new ODataPath(new EntitySetSegment(entitySet), new KeySegment(new[] { new KeyValuePair <string, object>("ID", 10) }, entitySet.EntityType(), entitySet)); request.EnableODataDependencyInjectionSupport(routeName); ODataMediaTypeFormatter formatter = CreateFormatterWithJson(model, request, ODataPayloadKind.Resource); // Act ObjectContent <WorkItem> content = new ObjectContent <WorkItem>( (WorkItem)TypeInitializer.GetInstance(SupportedTypes.WorkItem), formatter); // Assert JsonAssert.Equal(Resources.WorkItemEntry, content.ReadAsStringAsync().Result); }
public void PrimitiveTypesSerializeAsOData(Type valueType, object value, MediaTypeHeaderValue mediaType, string resourceName) { string expectedEntity = Resources.GetString(resourceName); Assert.NotNull(expectedEntity); ODataConventionModelBuilder modelBuilder = new ODataConventionModelBuilder(); modelBuilder.EntitySet <WorkItem>("WorkItems"); IEdmModel model = modelBuilder.GetEdmModel(); string actualEntity; using (HttpConfiguration configuration = CreateConfiguration()) using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/WorkItems(10)/ID")) { request.SetConfiguration(configuration); IEdmProperty property = model.EntityContainer.EntitySets().Single().EntityType().Properties().First(); request.ODataProperties().Model = model; request.ODataProperties().Path = new ODataPath(new PropertyAccessPathSegment(property)); request.SetFakeODataRouteName(); ODataMediaTypeFormatter formatter = CreateFormatter(request); formatter.SupportedMediaTypes.Add(mediaType); Type type = (value != null) ? value.GetType() : typeof(Nullable <int>); using (ObjectContent content = new ObjectContent(type, value, formatter)) { actualEntity = content.ReadAsStringAsync().Result; } } bool isJson = resourceName.EndsWith(".json"); if (isJson) { JsonAssert.Equal(expectedEntity, actualEntity); } else { Assert.Xml.Equal(expectedEntity, actualEntity); } }
public static void VerifyResponse(HttpContent actualContent, string expected) { string actual = actualContent.ReadAsStringAsync().Result; JsonAssert.Equal(expected, actual); }