public void AddShouldReturnUpdateWhenItemWasAlreadyAddedAndModified() { // Arrange var sut = new PipelineCache <string>(); var key = new CacheKey(1, 2); sut.AddOrReplace(key, "hello world"); // Act var actual = sut.AddOrReplace(key, "hello world 123"); // Assert Assert.Equal(CacheAction.Update, actual); }
public void ClearShouldClearCacheContent() { // Arrange var sut = new PipelineCache <string>(); sut.AddOrReplace("1", "1", "test"); sut.AddOrReplace("1", "2", "test"); sut.AddOrReplace("1", "3", "test"); // Act sut.Clear(); // Assert Assert.Empty(sut.ContentCopy()); }
public void ValuesShouldOnlyReturnMatchingValues() { // Arrange var sut = new PipelineCache <string>(); sut.AddOrReplace("1", "1", "test"); sut.AddOrReplace("2", "1", "wrong"); sut.AddOrReplace("1", "2", "test"); // Act var actual = sut.Values("1"); // Assert Assert.All(actual, x => Assert.Equal("test", x)); }
public void AddShouldReplaceExistingItem() { // Arrange var sut = new PipelineCache <string>(); var key = new CacheKey(1, 2); sut.AddOrReplace(key, "hello world"); // Act sut.AddOrReplace(key, "test"); // Assert var content = sut.ContentCopy().ToList(); Assert.Collection(content, str => Assert.Equal("test", str)); }
public void ContentCopyShouldReturnCopyOfStoredElements() { // Arrange var sut = new PipelineCache <string>(); sut.AddOrReplace("1", "1", "test1"); sut.AddOrReplace("1", "2", "test2"); sut.AddOrReplace("1", "3", "test3"); // Act var actual = sut.ContentCopy(); // Assert var expectedSubset = new HashSet <string> { "test1", "test2", "test3" }; var actualSet = actual.ToHashSet(); Assert.Subset(expectedSubset, actualSet); }
public void RemoveValueShouldOnlyRemoveMatchingEntries() { // Arrange var sut = new PipelineCache <string>(); sut.AddOrReplace("1", "1", "test1"); sut.AddOrReplace("1", "2", "test2"); sut.AddOrReplace("1", "3", "test3"); // Act sut.RemoveValue("test2"); // Assert var expectedSubset = new HashSet <string> { "test1", "test3" }; var actualSet = sut.ContentCopy().ToHashSet(); Assert.Subset(expectedSubset, actualSet); }
public void AddShouldReturnAddWhenNewItemWasAdded() { // Arrange var sut = new PipelineCache <string>(); var key = new CacheKey(1, 2); // Act var actual = sut.AddOrReplace(key, "hello world"); // Assert Assert.Equal(CacheAction.Add, actual); }
public void ContainsShouldReturnTrueWhenItemIsContained() { // Arrange var sut = new PipelineCache <string>(); var key = new CacheKey(1, 2); sut.AddOrReplace(key, "hello world"); // Act var actual = sut.Contains(key); // Assert Assert.True(actual); }
public void RemoveShouldRemoveItemFromCache() { // Arrange var sut = new PipelineCache <string>(); var key = new CacheKey(1, 2); sut.AddOrReplace(key, "hello world"); // Act var before = sut.Contains(key); sut.Remove(key); var after = sut.Contains(key); // Assert Assert.True(before); Assert.False(after); }