(IRepositoryUpdater repositoryUpdater, IPackageUpdater packageUpdater) MakeRepositoryUpdater( IPackageUpdateSelection updateSelection, List <PackageUpdateSet> updates, IPackageUpdater packageUpdater = null) { var sources = Substitute.For <INuGetSourcesReader>(); var updateFinder = Substitute.For <IUpdateFinder>(); var fileRestore = Substitute.For <IFileRestoreCommand>(); var reporter = Substitute.For <IReporter>(); updateFinder.FindPackageUpdateSets( Arg.Any <IFolder>(), Arg.Any <NuGetSources>(), Arg.Any <VersionChange>()) .Returns(updates); if (packageUpdater == null) { packageUpdater = Substitute.For <IPackageUpdater>(); packageUpdater.MakeUpdatePullRequests( Arg.Any <IGitDriver>(), Arg.Any <RepositoryData>(), Arg.Any <IReadOnlyCollection <PackageUpdateSet> >(), Arg.Any <NuGetSources>(), Arg.Any <SettingsContainer>()) .Returns(1); } var repoUpdater = new RepositoryUpdater( sources, updateFinder, updateSelection, packageUpdater, Substitute.For <INuKeeperLogger>(), new SolutionsRestore(fileRestore), reporter); return(repoUpdater, packageUpdater); }
private IRepositoryUpdater MakeRepositoryUpdater( IPackageUpdater packageUpdater, IPackageUpdateSelection updateSelection, List <PackageUpdateSet> updates) { var sources = Substitute.For <INuGetSourcesReader>(); var updateFinder = Substitute.For <IUpdateFinder>(); var fileRestore = Substitute.For <IFileRestoreCommand>(); var reporter = Substitute.For <IAvailableUpdatesReporter>(); updateFinder.FindPackageUpdateSets( Arg.Any <IFolder>(), Arg.Any <NuGetSources>(), Arg.Any <VersionChange>()) .Returns(updates); packageUpdater.MakeUpdatePullRequest( Arg.Any <IGitDriver>(), Arg.Any <RepositoryData>(), Arg.Any <PackageUpdateSet>(), Arg.Any <NuGetSources>(), Arg.Any <SourceControlServerSettings>()) .Returns(true); var repoUpdater = new RepositoryUpdater( sources, updateFinder, updateSelection, packageUpdater, Substitute.For <INuKeeperLogger>(), new SolutionsRestore(fileRestore), reporter); return(repoUpdater); }
public static void Main(string[] args) { GCSettings.LatencyMode = GCLatencyMode.SustainedLowLatency; //GCSettings.LatencyMode = GCLatencyMode.LowLatency; Console.WriteLine("Is server GC: " + GCSettings.IsServerGC); Console.WriteLine("Latency Mode: " + GCSettings.LatencyMode); var dataFilePath = "/tmp/data/data.zip"; var optionsPath = "/tmp/data/options.txt"; var extractPath = "zip"; var retriever = new FileReader(); var dataLoader = new DataLoader(); var accountsFileCount = retriever.ReadAccountFilesCount(dataFilePath); var accountsCount = (int)(accountsFileCount * 10000) + 22000; var inMemory = new InMemoryRepository(accountsCount); Holder.Instance.InMemory = inMemory; var updater = new RepositoryUpdater(inMemory); Holder.Instance.Updater = updater; dataLoader.Load(dataFilePath, extractPath, optionsPath, inMemory, updater, retriever); Holder.Instance.Filter = new Filter(inMemory); Holder.Instance.Group = new Group(inMemory, new GroupFactory(inMemory)); Holder.Instance.GroupQueryParser = new GroupQueryParser(); Holder.Instance.Recommend = new Recommend(inMemory); Holder.Instance.Suggest = new Suggest(inMemory); var sw = new Stopwatch(); sw.Start(); inMemory.CreateMainIndexes(false, sw); sw.Stop(); TotalMemoryHelper.Show(); GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; GC.Collect(); GC.WaitForFullGCComplete(); TotalMemoryHelper.Show(); CreateWebHostBuilder(args).Build().Run(); }