public FileBasedAtomDocument(string fileName, IChunkingStrategy chunkingStrategy)
        {
            fileInfo = new FileInfo(fileName);

            if (!fileInfo.Exists)
            {
                throw new NotFoundException(string.Format("File does not exist. File: [{0}].", fileInfo.FullName));
            }

            eTag = new ETag(string.Format(@"""{0}#{1}""", fileInfo.Name, fileInfo.LastWriteTimeUtc.Ticks));
            chunking = chunkingStrategy.CreateHeader(fileInfo.Length);
            lastModified = new LastModified(fileInfo.LastWriteTimeUtc);
        }
        public void ShouldExhibitValueTypeEquality()
        {
            ETag eTag1 = new ETag("A");
            ETag eTag2 = new ETag("A");
            ETag eTag3 = new ETag("B");

            Assert.True(eTag1.Equals(eTag2));
            Assert.False(eTag1.Equals(eTag3));
            Assert.True(eTag1.Equals(eTag1));
            Assert.False(eTag1.Equals(new object()));
            Assert.False(eTag1.Equals(null));
            Assert.False(eTag1.Equals(null as object));

            Assert.True(eTag1.GetHashCode().Equals(eTag2.GetHashCode()));
            Assert.False(eTag1.GetHashCode().Equals(eTag3.GetHashCode()));
            Assert.True(eTag1.GetHashCode().Equals(eTag1.GetHashCode()));
            Assert.False(eTag1.GetHashCode().Equals(new object().GetHashCode()));
        }
 public IfNoneMatch(ETag eTag)
 {
     this.eTag = eTag;
 }
 public static IResponse NotModified(ETag eTag)
 {
     return new Response(StatusCode.NotModified, new HeadersOnlyRepresentation(eTag));
 }
 public bool IsMatch(ETag eTag)
 {
     throw new NotImplementedException();
 }
 public bool IsMatch(ETag eTag)
 {
     return false;
 }