public void CanReadPreamble(int pageSize)
		{
			var b = new StringBuilder();
			var s = GetStream("HTTP/1.1 200 OK\r\n\r\n");
			var reader = new HttpResponseReader{BufferSize = pageSize};
			var resp = reader.Read(s);
			Assert.AreEqual(200,resp.State);
			Assert.AreEqual("OK",resp.StateName);
			Assert.True(resp.Success);
		}
		public void CanReadEncodedData(int pageSize)
		{
			var s = GetStream("HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=Windows-1251\r\nAaa: Bbb\r\nCcc: Ddd\r\nContent-Length: 10\r\n\r\nабвгдежзик",Encoding.GetEncoding("Windows-1251"));
			var reader = new HttpResponseReader{BufferSize = pageSize};
			var resp = reader.Read(s);
			Assert.AreEqual(200, resp.State);
			Assert.AreEqual("OK", resp.StateName);
			Assert.AreEqual("Bbb", resp.Headers["Aaa"]);
			Assert.AreEqual("Ddd", resp.Headers["Ccc"]);
			Assert.AreEqual(10, resp.ContentLength);
			Assert.AreEqual(10, resp.Data.Length);
			Assert.AreEqual("Windows-1251", resp.Charset);
			Assert.AreEqual("абвгдежзик", resp.StringData);
			Assert.True(resp.Success);
		}
		public void CanReadData(int pageSize)
		{
			var b = new StringBuilder();
			var s = GetStream("HTTP/1.1 200 OK\r\nAaa: Bbb\r\nCcc: Ddd\r\nContent-Length: 10\r\n\r\nABCDEFGHIJ");
			var reader = new HttpResponseReader{BufferSize = pageSize};
			var resp = reader.Read(s);
			Assert.AreEqual(200, resp.State);
			Assert.AreEqual("OK", resp.StateName);
			Assert.AreEqual("Bbb", resp.Headers["Aaa"]);
			Assert.AreEqual("Ddd", resp.Headers["Ccc"]);
			Assert.AreEqual(10,resp.ContentLength);
			Assert.AreEqual(10,resp.Data.Length);
			Assert.AreEqual("ABCDEFGHIJ", resp.StringData);
			Assert.True(resp.Success);
		}
		public void CanReadChunkedData(int pageSize)
		{
			var b = new StringBuilder();
			var s = GetStream("HTTP/1.1 200 OK\r\nAaa: Bbb\r\nCcc: Ddd\r\nTransfer-Encoding: chunked\r\n\r\n2\r\nAB\r\n3\r\nCDE\r\n5\r\nFGHIJ\r\n0\r\n");
			var reader = new HttpResponseReader{BufferSize = pageSize};
			var resp = reader.Read(s);
			Assert.AreEqual(200, resp.State);
			Assert.AreEqual("OK", resp.StateName);
			Assert.AreEqual("Bbb", resp.Headers["Aaa"]);
			Assert.AreEqual("Ddd", resp.Headers["Ccc"]);
			Assert.True( resp.Chunked);
			Assert.AreEqual("ABCDEFGHIJ", resp.StringData);
			Assert.AreEqual(10, resp.Data.Length);
			
			Assert.True(resp.Success);
		}
		public void CanReadHeaders(int pageSize)
		{
			var b = new StringBuilder();
			var s = GetStream("HTTP/1.1 200 OK\r\nAaa: Bbb\r\nCcc: Ddd\r\n\r\n");
			var reader = new HttpResponseReader { BufferSize = pageSize };
			var resp = reader.Read(s);
			Assert.AreEqual(200, resp.State);
			Assert.AreEqual("OK", resp.StateName);
			Assert.AreEqual("Bbb",resp.Headers["Aaa"]);
			Assert.AreEqual("Ddd",resp.Headers["Ccc"]);
			Assert.True(resp.Success);
		}