コード例 #1
0
        public void Should_read_serialized_object_from_stream()
        {
            var formatter    = new ServiceStackTextFormatter();
            var value        = GetTestObject();
            var utf8Encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true);

            //Media Type Formatter uses ISO8601 date formatting by default;
            JsConfig.DateHandler = JsonDateHandler.ISO8601;
            byte[] data = utf8Encoding.GetBytes(value.ToJson());
            JsConfig.Reset();
            var memoryStream = new MemoryStream(data);

            var contentHeader = new StringContent(string.Empty).Headers;

            contentHeader.Clear();

            var resultTask = formatter.ReadFromStreamAsync(typeof(RootClass), memoryStream, contentHeader, null);

            resultTask.Wait();

            resultTask.Result.ShouldBeType <RootClass>();

            var result = (RootClass)resultTask.Result;

            result.StringProperty.ShouldEqual(value.StringProperty);
            result.DateProperty.ShouldEqual(value.DateProperty);
            result.Child.BooleanProperty.ShouldEqual(value.Child.BooleanProperty);
            result.Child.DecimalProperty.ShouldEqual(value.Child.DecimalProperty);
            result.Child.DoubleProperty.ShouldEqual(value.Child.DoubleProperty);
            result.Child.IntegerProperty.ShouldEqual(value.Child.IntegerProperty);
            result.Child.StringProperty.ShouldEqual(value.Child.StringProperty);
        }
コード例 #2
0
        public void Should_support_only_json_media_type()
        {
            var formatter = new ServiceStackTextFormatter();

            formatter.SupportedMediaTypes.Count.ShouldEqual(1);
            formatter.SupportedMediaTypes.ShouldContain(new MediaTypeHeaderValue("application/json"));
        }
コード例 #3
0
        public void Should_write_serialized_object_to_stream_using_date_handler()
        {
            var formatter = new ServiceStackTextFormatter(JsonDateHandler.TimestampOffset);
            var value     = GetTestObject();

            var contentHeader = new StringContent(string.Empty).Headers;

            contentHeader.Clear();
            var memoryStream = new MemoryStream();

            var resultTask = formatter.WriteToStreamAsync(typeof(RootClass), value, memoryStream, contentHeader, transportContext: null);

            resultTask.Wait();

            memoryStream.Position = 0;
            string serializedString = new StreamReader(memoryStream).ReadToEnd();

            JsConfig.DateHandler = JsonDateHandler.TimestampOffset;
            var expected = value.ToJson();

            JsConfig.Reset();
            serializedString.ShouldEqual(expected);
        }