public void Can_load_1_layers_of_settings() { _externalLinksLoader.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 = _externalLinksLoader.Load(_cachedSettings); 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 == null) { throw new ArgumentNullException(nameof(settings)); } var cachedSettings = new RepoDistSettings(null, settings.SettingsCache); IEnumerable <ExternalLinkDefinition> effective = _externalLinksLoader.Load(cachedSettings); if (settings.LowerPriority != null) { var lowerPriorityLoader = new ConfiguredLinkDefinitionsProvider(_externalLinksLoader); effective = effective.Union(lowerPriorityLoader.Get(settings.LowerPriority)); } return(effective.ToList()); }