public async Task ResolveAsync_WithExistingPackage_CanDownloadPackage() { // Arrange var config = new GitHubReleasesUpdateResolverFactory.GitHubConfig() { RepositoryName = "reloaded.universal.redirector", UserName = "******", AssetFileName = "reloaded.universal.monitor.zip", UseReleaseTag = false }; var clonedDependency = _testEnvironmoent.TestModConfigBTuple.DeepClone(); clonedDependency.Config.ReleaseMetadataFileName = "Reloaded.Universal.Redirector.ReleaseMetadata.json"; Singleton <GitHubReleasesUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, config); var clonedOriginal = _testEnvironmoent.TestModConfigATuple.DeepClone(); var gameBanana = new GitHubReleasesDependencyMetadataWriter(); gameBanana.Update(clonedOriginal.Config, new[] { clonedDependency.Config }); // Act using var outputDirectory = new TemporaryFolderAllocation(); var resolver = new GitHubDependencyResolver(); var result = await resolver.ResolveAsync(clonedDependency.Config.ModId, clonedOriginal.Config.PluginData); var downloadedPackagePath = await result.FoundDependencies[0].DownloadAsync(outputDirectory.FolderPath, null); // Assert Assert.True(Directory.Exists(downloadedPackagePath)); Assert.True(File.Exists(Path.Combine(downloadedPackagePath, ModConfig.ConfigFileName))); }
public async Task ResolveAsync_WithExistingPackage_ReturnsPackages() { // Arrange var config = new GitHubReleasesUpdateResolverFactory.GitHubConfig() { RepositoryName = "Update.Test.Repo", UserName = "******" }; var clonedDependency = _testEnvironmoent.TestModConfigBTuple.DeepClone(); Singleton <GitHubReleasesUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, config); var clonedOriginal = _testEnvironmoent.TestModConfigATuple.DeepClone(); var gitHub = new GitHubReleasesDependencyMetadataWriter(); gitHub.Update(clonedOriginal.Config, new[] { clonedDependency.Config }); // Act var resolver = new GitHubDependencyResolver(); var result = await resolver.ResolveAsync(clonedDependency.Config.ModId, clonedOriginal.Config.PluginData); // Assert Assert.NotEmpty(result.FoundDependencies); Assert.Empty(result.NotFoundDependencies); }
public async Task ResolveAsync_WithNoPackage_ReturnsMissing() { // Arrange var resolver = new GitHubDependencyResolver(); // Act var result = await resolver.ResolveAsync("this.package.does.not.exist"); // Assert Assert.NotEmpty(result.NotFoundDependencies); Assert.Empty(result.FoundDependencies); }