public void ValidRequestText()
{
bool isInvoked = false;
string header = "GET / HTTP/1.1\r\nHost: www.yahoo.com\r\n\r\n";
byte[] headerData = Encoding.UTF8.GetBytes(header);
Mock<IHttpStreamParserContext> mockContext = new Mock<IHttpStreamParserContext>();
mockContext.Setup(m => m.OnReadRequestHeaderComplete("1.1", It.IsAny<IHttpHeaders>(), "GET", "/"))
.Callback<string, IHttpHeaders, string, string>(
(s, h, si, st) =>
{
isInvoked = true;
Assert.That(h.Count, Is.EqualTo(1));
Assert.That(h["host"], Is.EqualTo("www.yahoo.com"));
});
ReadHeaderState headerState = new ReadHeaderState(mockContext.Object);
headerState.AcceptData(headerData);
mockContext.VerifySet(m => m.State = It.IsAny<ReadHeaderState>());
Assert.IsTrue(isInvoked);
}