public void DynamicFileResponseWriter_Write_WebServerContext_WritesContent() { //------------Setup for test-------------------------- string content; NameValueCollection boundVars; NameValueCollection queryStr; NameValueCollection headers; var request = WebServerRequestTests.CreateHttpRequest(out content, out boundVars, out queryStr, out headers); var context = new WebServerContext(request, boundVars); const string Token = "%%Token%%"; const string LayoutContentFormat = "<html><body>{0}</body></html>"; const string NewContent = "Hello world"; var responseWriter = new TestDynamicFileResponseWriter(string.Format(LayoutContentFormat, Token), Token, NewContent); //------------Execute Test--------------------------- responseWriter.Write(context); //------------Assert Results------------------------- Assert.AreEqual(ContentTypes.Html, context.ResponseMessage.Content.Headers.ContentType); Assert.IsInstanceOfType(context.ResponseMessage.Content, typeof(StringContent)); var task = context.ResponseMessage.Content.ReadAsStringAsync(); task.Wait(); Assert.AreEqual(string.Format(LayoutContentFormat, NewContent), task.Result); }
public void StringResponseWriter_Write_WebServerContext_WritesContent() { //------------Setup for test-------------------------- string content; NameValueCollection boundVars; NameValueCollection queryStr; NameValueCollection headers; var request = WebServerRequestTests.CreateHttpRequest(out content, out boundVars, out queryStr, out headers); var context = new WebServerContext(request, boundVars); const string NewContent = "Hello world"; var responseWriter = new StringResponseWriter(NewContent, ContentTypes.Plain); //------------Execute Test--------------------------- responseWriter.Write(context); //------------Assert Results------------------------- Assert.AreEqual(ContentTypes.Plain, context.ResponseMessage.Content.Headers.ContentType); Assert.IsInstanceOfType(context.ResponseMessage.Content, typeof(StringContent)); var task = context.ResponseMessage.Content.ReadAsStringAsync(); task.Wait(); Assert.AreEqual(NewContent, task.Result); }
public void WebServerContext_Constructor_NullRequestPaths_ThrowsArgumentNullException() { //------------Setup for test-------------------------- //------------Execute Test--------------------------- var context = new WebServerContext(new HttpRequestMessage(), null); //------------Assert Results------------------------- }
public void WebServerContext_Constructor_PropertiesInitialized() { //------------Setup for test-------------------------- string content; NameValueCollection boundVars; NameValueCollection queryStr; NameValueCollection headers; var request = WebServerRequestTests.CreateHttpRequest(out content, out boundVars, out queryStr, out headers); //------------Execute Test--------------------------- var context = new WebServerContext(request, boundVars); //------------Assert Results------------------------- Assert.IsNotNull(context.ResponseMessage); Assert.IsNotNull(context.Request); Assert.IsNotNull(context.Response); CollectionAssert.AreEqual(headers, context.FetchHeaders()); WebServerRequestTests.VerifyProperties(request, (WebServerRequest)context.Request, content, queryStr, boundVars); }
public void StatusResponseWriter_Write_WebServerContext_WritesTheStatus() { //------------Setup for test-------------------------- const HttpStatusCode Expected = HttpStatusCode.PaymentRequired; string content; NameValueCollection boundVars; NameValueCollection queryStr; NameValueCollection headers; var request = WebServerRequestTests.CreateHttpRequest(out content, out boundVars, out queryStr, out headers); var context = new WebServerContext(request, boundVars); var responseWriter = new StatusResponseWriter(Expected); //------------Execute Test--------------------------- responseWriter.Write(context); //------------Assert Results------------------------- Assert.AreEqual(Expected, context.ResponseMessage.StatusCode); }
public void StringResponseWriter_Write_LargeContentWebServerContext_WritesContentAndUpdateContentDisposition() { //------------Setup for test-------------------------- string content; NameValueCollection boundVars; NameValueCollection queryStr; NameValueCollection headers; var request = WebServerRequestTests.CreateHttpRequest(out content, out boundVars, out queryStr, out headers); var context = new WebServerContext(request, boundVars); var contentType = ContentTypes.Xml; var largeContent = CreateLargeContent(contentType); var responseWriter = new StringResponseWriter(largeContent, contentType); //------------Execute Test--------------------------- responseWriter.Write(context); //------------Assert Results------------------------- Assert.AreEqual(ContentTypes.ForceDownload, context.ResponseMessage.Content.Headers.ContentType); Assert.AreEqual("attachment", context.ResponseMessage.Content.Headers.ContentDisposition.DispositionType); Assert.AreEqual("attachment; filename=Output.xml", context.ResponseMessage.Content.Headers.ContentDisposition.ToString()); Assert.IsInstanceOfType(context.ResponseMessage.Content, typeof(StringContent)); var task = context.ResponseMessage.Content.ReadAsStringAsync(); task.Wait(); Assert.AreEqual(largeContent, task.Result); }
public void WebServerContext_Send_ResponseIsNotNull_InvokesWriteOnResponse() { //------------Setup for test-------------------------- var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/services") { Content = new StringContent("", Encoding.UTF8) }; var context = new WebServerContext(request, new NameValueCollection()); var response = new Mock<IResponseWriter>(); response.Setup(r => r.Write(It.IsAny<WebServerContext>())).Verifiable(); //------------Execute Test--------------------------- context.Send(response.Object); //------------Assert Results------------------------- response.Verify(r => r.Write(It.IsAny<WebServerContext>())); }
public void WebServerContext_Send_ResponseIsNull_ThrowsArgumentNullException() { //------------Setup for test-------------------------- var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/services") { Content = new StringContent("", Encoding.UTF8) }; var context = new WebServerContext(request, new NameValueCollection()); //------------Execute Test--------------------------- context.Send(null); //------------Assert Results------------------------- }