Files
MTSC/MTSC.UnitTests/HttpRequestTests.cs
T
amacocian 6aab10c6f2 Added HttpRequest unit tests
Modified HttpRequest parser to skip the first '/' from URI
2020-02-21 13:45:54 +01:00

39 lines
1.3 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using MTSC.Common.Http;
using System.Text;
namespace MTSC.UnitTests
{
[TestClass]
public class HttpRequestTests
{
private const string postWithHeader = "POST /test/demo_form.php HTTP/1.1\n\rHost: w3schools.com\n\r\n\r";
private const string emptyGet = "GET / HTTP/1.1\n\r\n\r";
[DataTestMethod]
[DataRow(postWithHeader)]
[DataRow(emptyGet)]
public void ParseShouldPass(string requestString)
{
HttpRequest request = HttpRequest.FromBytes(ASCIIEncoding.ASCII.GetBytes(requestString));
}
[DataTestMethod]
[DataRow(postWithHeader, "test/demo_form.php")]
[DataRow(emptyGet, "")]
public void UriShouldBeAsExpected(string requestString, string uri)
{
HttpRequest request = HttpRequest.FromBytes(ASCIIEncoding.ASCII.GetBytes(requestString));
Assert.AreEqual(request.RequestURI, uri);
}
[TestMethod]
public void HeaderShouldExist()
{
HttpRequest request = HttpRequest.FromBytes(ASCIIEncoding.ASCII.GetBytes(postWithHeader));
Assert.AreEqual(request.Headers[HttpMessage.RequestHeaders.Host], "w3schools.com");
}
}
}