public void AddFromEntity_NoAdds_WhenNullEntity()
        {
            // Arrange
            var headers = new HeaderDictionary();

            // Act
            headers.AddFromEntity(null);

            // Assert
            Assert.False(headers.ContainsKey("ETag"));
            Assert.False(headers.ContainsKey("Last-Modified"));
        }
        public void AddFromEntity_NoETag_WhenEmptyVersion()
        {
            // Arrange
            var headers = new HeaderDictionary();
            var entity  = new InMemoryEntity {
                Version = Array.Empty <byte>(), UpdatedAt = default
            };

            // Act
            headers.AddFromEntity(entity);

            // Assert
            Assert.False(headers.ContainsKey("ETag"));
            Assert.False(headers.ContainsKey("Last-Modified"));
        }
        public void AddFromEntity_LastModified_WhenUpdatedAt()
        {
            // Arrange
            var headers = new HeaderDictionary();
            var entity  = new InMemoryEntity {
                Version = null, UpdatedAt = DateTimeOffset.Parse("2019-01-30T13:30:15Z")
            };

            // Act
            headers.AddFromEntity(entity);

            // Assert
            Assert.False(headers.ContainsKey("ETag"));
            Assert.Single(headers["Last-Modified"]);
            Assert.Equal("Wed, 30 Jan 2019 13:30:15 GMT", headers["Last-Modified"][0]);
        }
        public void AddFromEntity_ETag_WhenValidVersion()
        {
            // Arrange
            var headers = new HeaderDictionary();
            var entity  = new InMemoryEntity {
                Version = testVersion, UpdatedAt = default
            };

            // Act
            headers.AddFromEntity(entity);

            // Assert
            Assert.Single(headers["ETag"]);
            Assert.Equal(testETag, headers["ETag"][0]);
            Assert.False(headers.ContainsKey("Last-Modified"));
        }
        public void AddFromEntity_BothHeaders_WhenBothSet()
        {
            // Arrange
            var headers = new HeaderDictionary();
            var entity  = new InMemoryEntity {
                Version = testVersion, UpdatedAt = DateTimeOffset.Parse("2019-01-30T13:30:15Z")
            };

            // Act
            headers.AddFromEntity(entity);

            // Assert
            Assert.Single(headers["ETag"]);
            Assert.Equal(testETag, headers["ETag"][0]);
            Assert.Single(headers["Last-Modified"]);
            Assert.Equal("Wed, 30 Jan 2019 13:30:15 GMT", headers["Last-Modified"][0]);
        }