Пример #1
0
        public void WriteTopLevelUIntPropertyShouldWork()
        {
            var settings = new ODataMessageWriterSettings();

            settings.ODataUri.ServiceRoot = new Uri("http://host/service");
            settings.SetContentType(ODataFormat.Json);
            var model = new EdmModel();

            model.GetUInt32("MyNS", false);
            IODataRequestMessage request = new InMemoryMessage()
            {
                Stream = new MemoryStream()
            };
            var    writer = new ODataMessageWriter(request, settings, model);
            Action write  = () => writer.WriteProperty(new ODataProperty()
            {
                Name  = "Id",
                Value = (UInt32)123
            });

            write.ShouldNotThrow();
            request.GetStream().Position = 0;
            var    reader = new StreamReader(request.GetStream());
            string output = reader.ReadToEnd();

            output.Should().Be("{\"@odata.context\":\"http://host/service/$metadata#MyNS.UInt32\",\"value\":123}");
        }
Пример #2
0
        public void WriteTopLevelStringPropertyWithStringEscapeOnlyControlsOptionShouldWork()
        {
            var settings         = new ODataMessageWriterSettings();
            var containerBuilder = new Test.OData.DependencyInjection.TestContainerBuilder();

            containerBuilder.AddDefaultODataServices();
            containerBuilder.AddService <IJsonWriterFactory>(ServiceLifetime.Singleton, sp => new DefaultJsonWriterFactory(ODataStringEscapeOption.EscapeOnlyControls));

            settings.ODataUri.ServiceRoot = new Uri("http://host/service");
            settings.SetContentType(ODataFormat.Json);
            var model = new EdmModel();
            IODataRequestMessage request = new InMemoryMessage()
            {
                Stream    = new MemoryStream(),
                Container = containerBuilder.BuildContainer()
            };
            var    writer = new ODataMessageWriter(request, settings, model);
            Action write  = () => writer.WriteProperty(new ODataProperty()
            {
                Name  = "Name",
                Value = "ия"
            });

            write.ShouldNotThrow();
            request.GetStream().Position = 0;
            var    reader = new StreamReader(request.GetStream());
            string output = reader.ReadToEnd();

            output.Should().Be("{\"@odata.context\":\"http://host/service/$metadata#Edm.String\",\"value\":\"ия\"}");
        }