public void Should_read_serialized_object_from_stream() { var formatter = new PlainTextFormatter(); var value = "Hello World"; var memoryStream = new MemoryStream(); var sr = new StreamWriter(memoryStream); sr.Write(value); sr.Flush(); memoryStream.Position = 0; var contentHeader = new StringContent(string.Empty).Headers; contentHeader.Clear(); var resultTask = formatter.ReadFromStreamAsync(typeof(string), memoryStream, contentHeader, null); resultTask.Wait(); resultTask.Result.ShouldBeType <String>(); var result = (String)resultTask.Result; result.ShouldEqual(value); }
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); }
public void Should_write_string_to_stream() { var formatter = new PlainTextFormatter(); var contentHeader = new StringContent(string.Empty).Headers; contentHeader.Clear(); var memoryStream = new MemoryStream(); var value = "Hello World"; var resultTask = formatter.WriteToStreamAsync(typeof(string), value, memoryStream, contentHeader, transportContext: null); resultTask.Wait(); memoryStream.Position = 0; string serializedString = new StreamReader(memoryStream).ReadToEnd(); serializedString.ShouldEqual(value); }
public void SetDefaultContentHeaders_SetsRightContentType(string acceptHeader, string acceptCharset, string contentType) { // Arrange MediaTypeHeaderValue expectedResult = MediaTypeHeaderValue.Parse(contentType); // If no accept header is present the content negotiator will pick application/json; odata.metadata=minimal // based on CanWriteType MediaTypeHeaderValue mediaType = acceptHeader == null? MediaTypeHeaderValue.Parse("application/json; odata.metadata=minimal") : MediaTypeHeaderValue.Parse(acceptHeader); HttpRequestMessage request = new HttpRequestMessage(); request.EnableODataDependencyInjectionSupport(); if (acceptHeader != null) { request.Headers.TryAddWithoutValidation("Accept", acceptHeader); } if (acceptCharset != null) { request.Headers.TryAddWithoutValidation("Accept-Charset", acceptCharset); mediaType.CharSet = acceptCharset; } HttpContentHeaders contentHeaders = new StringContent(String.Empty).Headers; contentHeaders.Clear(); MediaTypeFormatter formatter = ODataMediaTypeFormatters .Create() .First(f => f.SupportedMediaTypes.Contains(MediaTypeHeaderValue.Parse("application/json"))); formatter = formatter.GetPerRequestFormatterInstance(typeof(int), request, mediaType); // Act formatter.SetDefaultContentHeaders(typeof(int), contentHeaders, mediaType); // Assert Assert.Equal(expectedResult, contentHeaders.ContentType); }
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); }