예제 #1
0
 public void CanCheckForParams()
 {
     var basicRequest = new Request(@"GET ..\..\TestFiles\/ HTTP/1.1");
     var requestWithParams = new Request(@"GET ..\..\TestFiles\parameters?name=Stephen%20Walker%3C%2C&dob=12-29 HTTP/1.1");
     basicRequest.HasParams().ShouldBeFalse();
     requestWithParams.HasParams().ShouldBeTrue();
 }
예제 #2
0
 public void ItCanParseHeaders()
 {
     var expected = new Dictionary<string, string>()
     {
         {"Connection", "Keep-Alive"},
         {"Accept-Encoding", "gzip,deflate"}
     };
     var basicRequest = new Request(@"GET ..\..\TestFiles\/ HTTP/1.1");
     var requestWithHeaders = new Request("GET /path/to/file/index.html HTTP/1.1\r\nConnection: Keep-Alive\r\nAccept-Encoding: gzip,deflate");
     basicRequest.Headers.ShouldEqual(new Dictionary<string, string>());
     requestWithHeaders.Headers.ShouldEqual(expected);
 }
예제 #3
0
 public void ItCanParseParameters()
 {
     var expectedParams1 = new Dictionary<string, string>
     {
         {"name", "Stephen Walker<,"},
         {"dob", "12-29"}
     };
     var basicRequest = new Request(@"GET ..\..\TestFiles\/ HTTP/1.1");
     var requestWithParams = new Request(@"GET ..\..\TestFiles\/parameters?name=Stephen%20Walker%3C%2C&dob=12-29 HTTP/1.1");
     basicRequest.Resource.ShouldEqual(@"..\..\TestFiles\/");
     basicRequest.Params.ShouldEqual(new Dictionary<string, string>());
     requestWithParams.Resource.ShouldEqual(@"..\..\TestFiles\/");
     requestWithParams.Params.ShouldEqual(expectedParams1);
 }
예제 #4
0
 public void ItIsInvalidWithMissingInitialRequestLine()
 {
     var testRequest1 = new Request("INVALID");
     var testRequest2 = new Request("INVALID REQUEST");
     testRequest1.Valid.ShouldBeFalse();
     testRequest2.Valid.ShouldBeFalse();
 }
예제 #5
0
 public void ItIsInvalidWithEmptyRequest()
 {
     var testRequest = new Request(null);
     testRequest.Valid.ShouldBeFalse();
 }
예제 #6
0
 public void ItCanGetTheRequestedPath()
 {
     var request = new Request("GET /index.html HTTP/1.1");
     request.Resource.ShouldEqual("/index.html");
 }
예제 #7
0
 public void ItCanGetTheMethodName()
 {
     var request = new Request("GET / HTTP/1.1");
     request.Method.ShouldEqual("GET");
 }
예제 #8
0
 public void ItCanGetTheHttpVersion()
 {
     var request = new Request("GET / HTTP/1.1");
     request.HttpVersion.ShouldEqual("HTTP/1.1");
 }
예제 #9
0
 public void ItWillReturn400OnMalformedRequest()
 {
     var malformedRequest = new Request("INVALID REQUEST");
     var fourhundredResponse = new Response(malformedRequest);
     fourhundredResponse.StatusCode.ShouldEqual(400);
 }