public void Parse_OnlyDataCache_InvalidValue() { // arrange var xml = new XmlDocument(); xml.LoadXml($"<database id='db123'><cacheSizes><data>4mb</data></cacheSizes></database>"); // act var db = LogicalDatabaseDefinition.Parse(xml.DocumentElement, new SitecoreVersion(8, 2, 0)); // assert Assert.Equal("db123", db.Name); Assert.Equal(6, db.Caches.Count); Assert.True(db.Caches["items"].Size == null); Assert.True(db.Caches["path"].Size == null); Assert.True(db.Caches["prefetch"].Size == null); Assert.True(db.Caches["standardValues"].Size == null); Assert.True(db.Caches["itempaths"].Size == null); var data = db.Caches["data"].Size; Assert.NotNull(data); Assert.Equal(-1, data.Value.Bytes); Assert.Equal("4mb", data.Text); }
public void Parse_NoID() { // arrange var xml = new XmlDocument(); xml.LoadXml($"<database/>"); // act and assert new Action(() => LogicalDatabaseDefinition.Parse(xml.DocumentElement, new SitecoreVersion(8, 2, 0))) .ShouldThrow <ArgumentException>() .WithMessage("The id attribute is missing or whitespace.\r\nXml: <database />\r\nParameter name: definition"); }
public void Parse_OnlyID() { // arrange var xml = new XmlDocument(); xml.LoadXml($"<database id='db123'/>"); // act var db = LogicalDatabaseDefinition.Parse(xml.DocumentElement, new SitecoreVersion(8, 2, 0)); // assert Assert.Equal("db123", db.Name); Assert.Equal(6, db.Caches.Count); Assert.True(db.Caches.All(x => x.Value.Size == null)); }
public static IReadOnlyDictionary <string, LogicalDatabaseDefinition> GetDatabases(XmlDocument configuration) { return(configuration.SelectElements("/configuration/sitecore/databases/database") .Select(x => LogicalDatabaseDefinition.Parse(x, new SitecoreVersion(8, 2, 0))) .ToDictionary(x => x.Name, x => x)); }
private void Process(ISitecoreInformationContext info, ITestOutputContext output, LogicalDatabaseDefinition database, LogicalDatabaseDefinition defaultDatabase, Map<Map<CacheSizeDetails>> defaultCachesPerDatabase, Map<Map<CacheSizeDetails>> belowDefaultCachesPerDatabase) { var databaseCaches = new Map<CacheSizeDetails>(); var belowDefaultCaches = new Map<CacheSizeDetails>(); var databaseName = database.Name; foreach (var cache in database.Caches.Values) { var cacheSize = cache.Size; var defaultSize = defaultDatabase.Caches[cache.Name].Size; if (defaultSize == null) { // custom cache, or filesystem database continue; } if (cacheSize == null) { var fallbackSettingCacheSize = CacheSize.Parse(info.GetSetting(cache.FallbackSettingName), info.SitecoreVersion); if (fallbackSettingCacheSize.Value.Bytes < defaultSize.Value.Bytes) { var cacheSizeDetails = new CacheSizeDetails { Value = fallbackSettingCacheSize, Comment = $"cache size is not specified, uses {cache.FallbackSettingName} setting value as fallback" }; belowDefaultCaches.Add(cache.Name, cacheSizeDetails); } } else { if (cacheSize.Value == defaultSize.Value) { var cacheSizeDetails = new CacheSizeDetails { Value = cacheSize, Comment = "cache size is default" }; databaseCaches.Add(cache.Name, cacheSizeDetails); } else if (cacheSize.Value < defaultSize.Value) { var cacheSizeDetails = new CacheSizeDetails { Value = cacheSize, Comment = $"cache size is below than default: {defaultSize.Value}" }; belowDefaultCaches.Add(cache.Name, cacheSizeDetails); } } } if (databaseCaches.Any()) { defaultCachesPerDatabase.Add(databaseName, databaseCaches); } if (belowDefaultCaches.Any()) { belowDefaultCachesPerDatabase.Add(databaseName, belowDefaultCaches); } }