public void Can_load_1_layers_of_settings() { _externalLinksStorage.Load(Arg.Any <RepoDistSettings>()).Returns(new List <ExternalLinkDefinition> { new ExternalLinkDefinition { Name = "user definition 1" }, }); var effectiveSettings = _provider.Get(_userRoaming); effectiveSettings.Count.Should().Be(1); }
public ExternalLinksManager(RepoDistSettings settings) { _cachedSettings = new RepoDistSettings(null, settings.SettingsCache); _definitions = _externalLinksStorage.Load(_cachedSettings).ToList(); if (settings.LowerPriority != null) { _lowerPriority = new ExternalLinksManager(settings.LowerPriority); } }
/// <summary> /// Loads all persisted external link definitions across all setting layers. /// </summary> public IReadOnlyList <ExternalLinkDefinition> Get(RepoDistSettings settings) { if (settings is null) { throw new ArgumentNullException(nameof(settings)); } var cachedSettings = new RepoDistSettings(null, settings.SettingsCache, SettingLevel.Unknown); IEnumerable <ExternalLinkDefinition> effective = _externalLinksStorage.Load(cachedSettings); if (settings.LowerPriority is not null) { var lowerPriorityLoader = new ConfiguredLinkDefinitionsProvider(_externalLinksStorage); effective = effective.Union(lowerPriorityLoader.Get(settings.LowerPriority)); } return(effective.ToList()); }