public void Etag_Should_Be_Added_To_Response_If_It_Equals_With_IfRange_In_Request()
 {
     var etag = ResumeFileResult.Util.Etag(_file);
     Request.Headers[HttpHeaders.IfRange] = etag;
     var mock = new MockResumeFileResult(_file.FullName, ContentType, Request);
     mock.WriteFileTest(Response);
     Assert.AreEqual(Response.Headers[HttpHeaders.Etag], etag);
     Assert.AreEqual(200, Response.StatusCode);
 }
            public void IfRangeHeader_Should_Be_Ignored_If_ItNotEquals_Etag()
            {
                Request.Headers[HttpHeaders.IfRange] = "ifRange fake header";
                var mock = new MockResumeFileResult(_file.FullName, ContentType, Request);
                mock.WriteFileTest(Response);

                Assert.AreNotEqual(ResumeFileResult.Util.Etag(_file), Request.Headers[HttpHeaders.IfRange]);
                Assert.AreEqual(200, Response.StatusCode);
            }
 public void HeadersTest_Should_Send_File_If_All_Headers_Are_Null()
 {
     var result = new MockResumeFileResult(_file.FullName, ContentType, Request);
     result.WriteFileTest(Response);
     Assert.AreEqual((int)HttpStatusCode.OK, Response.StatusCode);
     Assert.IsNotNull(Response.Headers[HttpHeaders.Etag]);
     Assert.IsNotNull(Response.Headers[HttpHeaders.Expires]);
     Assert.IsNotNull(Response.Headers[HttpHeaders.LastModified]);
     Assert.IsNotNull(Response.Headers[HttpHeaders.ContentRange]);
     Assert.IsNotNull(Response.Headers[HttpHeaders.ContentLength]);
     Assert.AreEqual(_file.Length, Response.OutputStream.Length);
 }
 public void HeadersTest_Should_Not_Send_File_Is_RangeNotSatisfiable()
 {
     Request.Headers[HttpHeaders.Range] = "invalid";
     var result = new MockResumeFileResult(_file.FullName, ContentType, Request);
     Assert.IsTrue(result.IsRangeNotSatisfiable());
     result.WriteFileTest(Response);
     Assert.AreEqual((int)HttpStatusCode.RequestedRangeNotSatisfiable, Response.StatusCode);
     Assert.IsNotNull(Response.Headers[HttpHeaders.Etag]);
     Assert.IsNotNull(Response.Headers[HttpHeaders.Expires]);
     Assert.IsNotNull(Response.Headers[HttpHeaders.LastModified]);
     Assert.AreEqual("bytes */" + _file.Length, Response.Headers[HttpHeaders.ContentRange]);
     Assert.AreEqual(0, Response.OutputStream.Length);
 }
            public void HeadersTest_Should_Not_Send_File_IfPreconditionFailed()
            {
                Request.Headers[HttpHeaders.IfMatch] = "invalid";
                var result = new MockResumeFileResult(_file.FullName, ContentType, Request);
                Assert.IsTrue(result.IsPreconditionFailed());

                result.WriteFileTest(Response);
                Assert.AreEqual((int)HttpStatusCode.PreconditionFailed, Response.StatusCode);
                Assert.IsNotNull(Response.Headers[HttpHeaders.Etag]);
                Assert.IsNotNull(Response.Headers[HttpHeaders.Expires]);
                Assert.IsNotNull(Response.Headers[HttpHeaders.LastModified]);
                Assert.IsNull(Response.Headers[HttpHeaders.ContentRange]);
                Assert.AreEqual(0, Response.OutputStream.Length);
            }
 public void HeadersTest_Should_Not_Send_File_If_File_Has_Not_Been_Changed()
 {
     Request.Headers[HttpHeaders.IfNoneMatch] = ResumeFileResult.Util.Etag(_file);
     var result = new MockResumeFileResult(_file.FullName, ContentType, Request);
     Assert.IsTrue(result.IsNotModified());
     result.WriteFileTest(Response);
     Assert.AreEqual((int)HttpStatusCode.NotModified, Response.StatusCode);
     Assert.IsNotNull(Response.Headers[HttpHeaders.Etag]);
     Assert.IsNotNull(Response.Headers[HttpHeaders.Expires]);
     Assert.IsNotNull(Response.Headers[HttpHeaders.LastModified]);
     Assert.IsNull(Response.Headers[HttpHeaders.ContentRange]);
     Assert.AreEqual(0, Response.OutputStream.Length);
 }