protected void ThenTheRawResultShouldContain(params Action <MultipartHttpEntity>[] builders) { var result = then_decoding_result <IEnumerable <IMultipartHttpEntity> >(); var entities = new List <IMultipartHttpEntity>(); foreach (var builder in builders) { var expected = new MultipartHttpEntity { Stream = new MemoryStream() }; builder(expected); entities.Add(expected); } foreach (var entity in result) { var entityData = entity.Stream.ReadToEnd(); entities.ForEach(e => e.Stream.Position = 0); var foundEntity = entities.Find(fake => { bool headersMatch = (fake.ContentType != null ? fake.ContentType.Equals(entity.ContentType) : entity.ContentType == null) && fake.Headers.ContentDisposition.Equals(entity.Headers.ContentDisposition); bool contentMatches = fake.Stream.ReadToEnd().SequenceEqual(entityData); return(headersMatch && contentMatches); }); foundEntity.ShouldNotBeNull(); } }
public static MultipartHttpEntity WithEntity(this MultipartHttpEntity entity, string content) { entity.Stream.Position = 0; entity.Stream.Write(Encoding.Default.GetBytes(content)); entity.Stream.Position = 0; return(entity); }
void GivenAFormEntity(string key, string value) { var entity = new MultipartHttpEntity(); entity.Headers["Content-Disposition"] = "form-data; name=\"" + key + "\""; entity.Stream = new MemoryStream(); var swriter = new StreamWriter(entity.Stream, Encoding.ASCII); swriter.Write(value); swriter.Flush(); entity.Stream.Position = 0; Entities.Add(entity); }