public void ProcessItemUpdate_WithStandardValuesItem_RemovesAllEntriesForMatchingDatabase() { // Arrange var cache = new BaseLayoutValueCache(TestUtil.CreateFakeSettings(new[] {"master"})) {Enabled = true}; cache.Clear(); for (var i = 0; i < 3; i++) { var masterField = MasterFakesFactory.CreateFakeLayoutField(); cache.AddLayoutValue(masterField.Item, masterField.Value); } using (var webDb = new Db("web")) { var webFakesFactory = new FakesFactory(webDb); for (var i = 0; i < 3; i++) { var webField = webFakesFactory.CreateFakeLayoutField(); cache.AddLayoutValue(webField.Item, webField.Value); } } var tid = new ID(); MasterDb.Add(new DbTemplate("Test", tid) { Fields = {{"Title", "$name"}}, Children = {new DbItem("__Standard Values", new ID(), tid)} }); var standardValues = MasterDb.GetItem("/sitecore/templates/Test/__Standard Values"); // Act cache.ProcessItemUpdate(standardValues); // Assert Assert.Equal(3, cache.InnerCache.Count); Assert.Equal(0, cache.InnerCache.GetCacheKeys("master:").Count); }
public void ProcessItemUpdate_WithEntriesForBaseLayoutChain_OnlyRemovesEntriesForDependentItems() { // Arrange var cache = new BaseLayoutValueCache(TestUtil.CreateFakeSettings(new[] {"master"})) {Enabled = true}; cache.Clear(); // create 2 base layout chains of 5 items each // save the 3rd item in the first chain as the item to pass to ProcessItemUpdate ID id = null; Item updatedItem = null; for (var i = 0; i < 10; i++) { var field = MasterFakesFactory.CreateFakeLayoutField(null, null, null, null, id); cache.AddLayoutValue(field.Item, field.Value); id = (i == 4) ? null : field.Item.ID; if (i == 2) updatedItem = field.Item; } // Act cache.ProcessItemUpdate(updatedItem); // Assert Assert.Equal(7, cache.InnerCache.Count); }
public void ProcessItemUpdate_WithEntriesInDifferentDatabases_OnlyRemovesEntryForMatchingDatabase() { // Arrange var cache = new BaseLayoutValueCache(TestUtil.CreateFakeSettings(new[] {"master"})) {Enabled = true}; cache.Clear(); var id = new ID(); var masterField = MasterFakesFactory.CreateFakeLayoutField(id); Field webField; using (var webDb = new Db("web")) { var webFakesFactory = new FakesFactory(webDb); webField = webFakesFactory.CreateFakeLayoutField(id); } cache.AddLayoutValue(masterField.Item, masterField.Value); cache.AddLayoutValue(webField.Item, webField.Value); // Act cache.ProcessItemUpdate(masterField.Item); // Assert Assert.Null(cache.GetLayoutValue(masterField.Item)); Assert.Equal(1, cache.InnerCache.Count); }
public void ProcessItemUpdate_WithBaseLayoutOfItemWithEntry_RemovesEntry() { // Arrange var cache = new BaseLayoutValueCache(TestUtil.CreateFakeSettings(new[] {"master"})) {Enabled = true}; cache.Clear(); var baseLayoutItem = MasterFakesFactory.CreateFakeItem(); var field = MasterFakesFactory.CreateFakeLayoutField(null, null, null, null, baseLayoutItem.ID); cache.AddLayoutValue(field.Item, field.Value); // Act cache.ProcessItemUpdate(baseLayoutItem); // Assert Assert.Equal(0, cache.InnerCache.Count); }
public void ProcessItemUpdate_WithItemMatchingEntryItem_RemovesEntries() { // Arrange var cache = new BaseLayoutValueCache(TestUtil.CreateFakeSettings(new[] {"master"})) {Enabled = true}; cache.Clear(); Field field = null; var count = 3; for (var i = 0; i < count; i++) { field = MasterFakesFactory.CreateFakeLayoutField(); cache.AddLayoutValue(field.Item, field.Value); } // Act cache.ProcessItemUpdate(field.Item); // Assert Assert.True(count > cache.InnerCache.Count); }
public void ProcessItemUpdate_WithUnrelatedItem_DoesNotRemoveEntries() { // Arrange var cache = new BaseLayoutValueCache(TestUtil.CreateFakeSettings(new[] {"master"})) {Enabled = true}; cache.Clear(); var count = 3; for (var i = 0; i < count; i++) { var field = MasterFakesFactory.CreateFakeLayoutField(); cache.AddLayoutValue(field.Item, field.Value); } // Act cache.ProcessItemUpdate(MasterFakesFactory.CreateFakeItem()); // Assert Assert.Equal(count, cache.InnerCache.Count); }