public void Read_EmailFieldWithTagWithValue_CorrectXmlReturned() { //arrange var buffer = new char[100]; var reader = new StringReader("To: Antoine Lloyd <*****@*****.**>\r\nasd<test>text</test>asd"); var lexer = new EmailXmlLexer(reader); var textReader = new EmailXmlTextReader(lexer, typeof(SaveReservationDto)); //act var count = textReader.Read(buffer, 0, buffer.Length); var str = new string(buffer, 0, count); //assert Assert.Equal("<SaveReservationDto><test>text</test></SaveReservationDto>", str); }
public void Read_TextBeforeAndAfterWithNestedTagWithValue_CorrectXmlReturned() { //arrange var buffer = new char[100]; var reader = new StringReader("asd<test><inner>text</inner></test>asd"); var lexer = new EmailXmlLexer(reader); var textReader = new EmailXmlTextReader(lexer, typeof(SaveReservationDto)); //act var count = textReader.Read(buffer, 0, buffer.Length); var str = new string(buffer, 0, count); //assert Assert.Equal("<SaveReservationDto><test><inner>text</inner></test></SaveReservationDto>", str); }
public override Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context, Encoding encoding) { var request = context.HttpContext.Request; request.EnableBuffering(); using (var stream = new StreamReader(new NonDisposableStream(request.Body))) using (var text = new EmailXmlTextReader(new EmailXmlLexer(stream), context.ModelType)) using (var reader = XmlReader.Create(text)) { var serializer = new XmlSerializer(context.ModelType); var model = serializer.Deserialize(reader); return InputFormatterResult.SuccessAsync(model); } }
public void Serialization_EmailContentWithEmailAddress_ValuesDeserializedCorrectly() { var email = Assembly .GetExecutingAssembly() .GetManifestResourceStream("Serko.Expense.Tests.Resources.EmailTo"); using (email) using (var stream = new EmailXmlTextReader(new EmailXmlLexer(new StreamReader(email)), typeof(SaveReservationDto))) using (var reader = XmlReader.Create(stream)) { var serializer = new XmlSerializer(typeof(SaveReservationDto)); var model = (SaveReservationDto)serializer.Deserialize(reader); Assert.Equal("Thursday 27 April 2017", model.Date); Assert.Equal(new DateTime(2017, 4, 27), model.DateTime); Assert.Equal("Viaduct Steakhouse", model.Vendor); Assert.Equal("DEV002", model.Expense.CostCentre); Assert.Equal(1024.01m, model.Expense.Total); } }
public void Read_BufferIsCorrectlyRolled_CorrectXmlReturned() { //arrange var buffer = new char[5]; var output = new StringBuilder(); var reader = new StringReader("asd<test><inner>text</inner></test>asd"); var lexer = new EmailXmlLexer(reader); var textReader = new EmailXmlTextReader(lexer, typeof(SaveReservationDto)); //act var count = textReader.Read(buffer, 0, buffer.Length); while (count != 0) { output.Append(buffer, 0, count); buffer = new char[5]; count = textReader.Read(buffer, 0, buffer.Length); } //assert Assert.Equal("<SaveReservationDto><test><inner>text</inner></test></SaveReservationDto>", output.ToString()); }