public void WithRemovedDependency_RemovesDependency_UsingGameBanana() { // Arrange var config = new GameBananaUpdateResolverFactory.GameBananaConfig() { ItemId = 6969 }; var clonedDependency = _testEnvironmoent.TestModConfigBTuple.DeepClone(); Singleton <GameBananaUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, config); var clonedDependency2 = _testEnvironmoent.TestModConfigCTuple.DeepClone(); Singleton <GameBananaUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency2, config); var clonedOriginal = _testEnvironmoent.TestModConfigATuple.DeepClone(); // Act & Assert: 2 Insertions var gameBanana = new GameBananaDependencyMetadataWriter(); gameBanana.Update(clonedOriginal.Config, new[] { clonedDependency.Config, clonedDependency2.Config }); Assert.True(clonedOriginal.Config.PluginData.TryGetValue(GameBananaDependencyMetadataWriter.PluginId, out DependencyResolverMetadata <GameBananaUpdateResolverFactory.GameBananaConfig> metadata)); Assert.Equal(2, metadata.IdToConfigMap.Count); // Act & Assert: Item Removal Singleton <GameBananaUpdateResolverFactory> .Instance.RemoveConfiguration(clonedDependency2); gameBanana.Update(clonedOriginal.Config, new[] { clonedDependency.Config, clonedDependency2.Config }); Assert.True(clonedOriginal.Config.PluginData.TryGetValue(GameBananaDependencyMetadataWriter.PluginId, out metadata)); Assert.Single(metadata.IdToConfigMap); }
public async Task ResolveAsync_WithExistingPackage_CanDownloadPackage() { // Arrange var config = new GameBananaUpdateResolverFactory.GameBananaConfig() { ItemId = 333681 }; var clonedDependency = _testEnvironmoent.TestModConfigBTuple.DeepClone(); clonedDependency.Config.ReleaseMetadataFileName = "IntegrationTest.ReleaseMetadata.json"; Singleton <GameBananaUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, config); var clonedOriginal = _testEnvironmoent.TestModConfigATuple.DeepClone(); var gameBanana = new GameBananaDependencyMetadataWriter(); gameBanana.Update(clonedOriginal.Config, new[] { clonedDependency.Config }); // Act using var outputDirectory = new TemporaryFolderAllocation(); var resolver = new GameBananaDependencyResolver(); 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 GameBananaUpdateResolverFactory.GameBananaConfig() { ItemId = 6969 }; var clonedDependency = _testEnvironmoent.TestModConfigBTuple.DeepClone(); Singleton <GameBananaUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, config); var clonedOriginal = _testEnvironmoent.TestModConfigATuple.DeepClone(); var gameBanana = new GameBananaDependencyMetadataWriter(); gameBanana.Update(clonedOriginal.Config, new[] { clonedDependency.Config }); // Act var resolver = new GameBananaDependencyResolver(); var result = await resolver.ResolveAsync(clonedDependency.Config.ModId, clonedOriginal.Config.PluginData); // Assert Assert.NotEmpty(result.FoundDependencies); Assert.Empty(result.NotFoundDependencies); }
public void WithNoDependencies_RemovesPluginData_UsingGameBanana() { // Arrange var config = new GameBananaUpdateResolverFactory.GameBananaConfig() { ItemId = 6969 }; var gameBanana = new GameBananaDependencyMetadataWriter(); WithNoDependencies_RemovesPluginData_Base <GameBananaUpdateResolverFactory.GameBananaConfig, GameBananaUpdateResolverFactory>(gameBanana, config, GameBananaDependencyMetadataWriter.PluginId); }
public void WithValidDependency_ImportsDependencyFromAnotherMod_UsingGameBanana() { // Arrange var config = new GameBananaUpdateResolverFactory.GameBananaConfig() { ItemId = 6969 }; var clonedDependency = _testEnvironmoent.TestModConfigBTuple.DeepClone(); Singleton <GameBananaUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, config); var clonedOriginal = _testEnvironmoent.TestModConfigATuple.DeepClone(); // Act var gameBanana = new GameBananaDependencyMetadataWriter(); gameBanana.Update(clonedOriginal.Config, new [] { clonedDependency.Config }); // Assert Assert.True(clonedOriginal.Config.PluginData.ContainsKey(GameBananaDependencyMetadataWriter.PluginId)); }