Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        public static void VerifyResponse(HttpContent actualContent, string expected)
        {
            string actual = actualContent.ReadAsStringAsync().Result;

            JsonAssert.Equal(expected, actual);
        }