public void GivenBothGetAndSetArePassedVerifyFailure() { using (var packagesFolder = new TestFolder()) using (var target = new TestFolder()) using (var cache = new LocalCache()) using (var outputFolder = new TestFolder()) { var log = new TestLogger(); var fileSystem = new PhysicalFileSystem(cache, UriUtility.CreateUri(target.Root)); var settings = new LocalSettings(); var context = new SleetContext() { Token = CancellationToken.None, LocalSettings = settings, Log = log, Source = fileSystem, SourceSettings = new FeedSettings() }; Func <Task> action = async() => await FeedSettingsCommand.RunAsync( settings, fileSystem, unsetAll : true, getAll : true, getSettings : new string[] { }, unsetSettings : new string[] { }, setSettings : new string[] { }, log : log, token : context.Token); action.ShouldThrow <InvalidOperationException>("invalid combo"); } }
public async Task GivenInitVerifyBasicOutputs() { using (var target = new TestFolder()) using (var cache = new LocalCache()) { // Arrange var log = new TestLogger(); var fileSystem = new PhysicalFileSystem(cache, UriUtility.CreateUri(target.Root)); var settings = new LocalSettings(); var indexJsonOutput = new FileInfo(Path.Combine(target.Root, "index.json")); var settingsOutput = new FileInfo(Path.Combine(target.Root, "sleet.settings.json")); var autoCompleteOutput = new FileInfo(Path.Combine(target.Root, "autocomplete", "query")); var catalogOutput = new FileInfo(Path.Combine(target.Root, "catalog", "index.json")); var searchOutput = new FileInfo(Path.Combine(target.Root, "search", "query")); var packageIndexOutput = new FileInfo(Path.Combine(target.Root, "sleet.packageindex.json")); var symbolsIndexOutput = new FileInfo(Path.Combine(target.Root, "symbols", "packages", "index.json")); // Act var success = await InitCommand.RunAsync(settings, fileSystem, enableCatalog : true, enableSymbols : true, log : log, token : CancellationToken.None); var rootFile = fileSystem.Get("index.json"); var rootJson = await rootFile.GetJson(log, CancellationToken.None); success &= await FeedSettingsCommand.RunAsync( settings, fileSystem, unsetAll : false, getAll : true, getSettings : new string[] { }, unsetSettings : new string[] { }, setSettings : new string[] { }, log : log, token : CancellationToken.None); // Assert success.Should().BeTrue(); indexJsonOutput.Exists.Should().BeTrue(); settingsOutput.Exists.Should().BeTrue(); autoCompleteOutput.Exists.Should().BeTrue(); catalogOutput.Exists.Should().BeTrue(); searchOutput.Exists.Should().BeTrue(); packageIndexOutput.Exists.Should().BeTrue(); symbolsIndexOutput.Exists.Should().BeTrue(); log.GetMessages().Should().Contain("catalogpagesize : 1024"); log.GetMessages().Should().Contain("catalogenabled : true"); log.GetMessages().Should().Contain("symbolsfeedenabled : true"); rootJson.ToString().Should().Contain("catalog/index.json"); rootJson.ToString().Should().Contain("Catalog/3.0.0"); rootJson.ToString().Should().Contain("symbols/packages/index.json"); } }
public async Task VerifyUnSetUpdatesIndexJson() { using (var packagesFolder = new TestFolder()) using (var target = new TestFolder()) using (var cache = new LocalCache()) using (var outputFolder = new TestFolder()) { var log = new TestLogger(); var fileSystem = new PhysicalFileSystem(cache, UriUtility.CreateUri(target.Root)); var settings = new LocalSettings(); var context = new SleetContext() { Token = CancellationToken.None, LocalSettings = settings, Log = log, Source = fileSystem, SourceSettings = new FeedSettings() }; var success = await InitCommand.RunAsync(settings, fileSystem, log); success &= await FeedSettingsCommand.RunAsync( settings, fileSystem, unsetAll : false, getAll : false, getSettings : Array.Empty <string>(), unsetSettings : Array.Empty <string>(), setSettings : new string[] { "externalsearch:https://example.org/search/query" }, log : log, token : context.Token); success &= await FeedSettingsCommand.RunAsync( settings, fileSystem, unsetAll : false, getAll : false, getSettings : Array.Empty <string>(), unsetSettings : new string[] { "externalsearch" }, setSettings : Array.Empty <string>(), log : log, token : context.Token); success.Should().BeTrue(); var indexJsonPath = Path.Combine(target.RootDirectory.FullName, "index.json"); var entry = GetSearchEntry(indexJsonPath); var value = entry["@id"].ToObject <string>(); value.Should().NotBe("https://example.org/search/query"); } }
public async Task GivenSettingsAddedVerifySingleGetReturnsJustOne() { using (var packagesFolder = new TestFolder()) using (var target = new TestFolder()) using (var cache = new LocalCache()) using (var cache2 = new LocalCache()) using (var outputFolder = new TestFolder()) { var log = new TestLogger(); var fileSystem = new PhysicalFileSystem(cache, UriUtility.CreateUri(target.Root)); var fileSystem2 = new PhysicalFileSystem(cache2, UriUtility.CreateUri(target.Root)); var settings = new LocalSettings(); var context = new SleetContext() { Token = CancellationToken.None, LocalSettings = settings, Log = log, Source = fileSystem, SourceSettings = new FeedSettings() }; var success = await InitCommand.RunAsync(settings, fileSystem, log); success &= await FeedSettingsCommand.RunAsync( settings, fileSystem, unsetAll : false, getAll : false, getSettings : new string[] { }, unsetSettings : new string[] { }, setSettings : new string[] { "catalogenabled:false", "a:1" }, log : log, token : context.Token); success &= await FeedSettingsCommand.RunAsync( settings, fileSystem2, unsetAll : false, getAll : false, getSettings : new string[] { "a" }, unsetSettings : new string[] { }, setSettings : new string[] { }, log : log, token : context.Token); success.Should().BeTrue(); log.GetMessages().Should().NotContain("catalogenabled : false"); log.GetMessages().Should().Contain("a : 1"); } }
public async Task GivenDuplicateSetsVerifyFailure() { using (var packagesFolder = new TestFolder()) using (var target = new TestFolder()) using (var cache = new LocalCache()) using (var cache2 = new LocalCache()) using (var outputFolder = new TestFolder()) { var log = new TestLogger(); var fileSystem = new PhysicalFileSystem(cache, UriUtility.CreateUri(target.Root)); var fileSystem2 = new PhysicalFileSystem(cache2, UriUtility.CreateUri(target.Root)); var settings = new LocalSettings(); var context = new SleetContext() { Token = CancellationToken.None, LocalSettings = settings, Log = log, Source = fileSystem, SourceSettings = new FeedSettings() }; var success = await InitCommand.RunAsync(settings, fileSystem, log); Func <Task> action = async() => await FeedSettingsCommand.RunAsync( settings, fileSystem, unsetAll : true, getAll : true, getSettings : new string[] { }, unsetSettings : new string[] { }, setSettings : new string[] { "a:1", "a:2" }, log : log, token : context.Token); action.ShouldThrow <ArgumentException>("invalid combo"); } }
public async Task GivenAnEmptyFeedVerifyGetSettingsSucceeds() { using (var packagesFolder = new TestFolder()) using (var target = new TestFolder()) using (var cache = new LocalCache()) using (var outputFolder = new TestFolder()) { var log = new TestLogger(); var fileSystem = new PhysicalFileSystem(cache, UriUtility.CreateUri(target.Root)); var settings = new LocalSettings(); var context = new SleetContext() { Token = CancellationToken.None, LocalSettings = settings, Log = log, Source = fileSystem, SourceSettings = new FeedSettings() }; var success = await InitCommand.RunAsync(settings, fileSystem, log); success &= await FeedSettingsCommand.RunAsync( settings, fileSystem, unsetAll : false, getAll : true, getSettings : new string[] { }, unsetSettings : new string[] { }, setSettings : new string[] { }, log : log, token : context.Token); success.Should().BeTrue(); } }