public async Task SupportsModifyingEntriesInExistingArchives() { // Arrange EntityContext.ConnectionString = "Data Source=" + _databasePath; var id = "Knapcode.MiniZip"; var ver = "0.4.0"; using (var entityContext = new EntityContext()) { await entityContext.Database.EnsureCreatedAsync(); var packageRegistration = new PackageRegistrationEntity { Id = id }; entityContext.PackageRegistrations.Add(packageRegistration); var package = new PackageEntity { PackageRegistration = packageRegistration, Version = ver, }; package.Identity = $"{package.PackageRegistration.Id}/{package.Version}"; entityContext.Packages.Add(package); await entityContext.SaveChangesAsync(); } var packageEnumerator = new PackageCommitEnumerator(); var target = new PackageService(packageEnumerator, _output.GetLogger <PackageService>()); var a = await CreateArchiveAsync(id, ver, new ZipEntry("a.txt"), new ZipEntry("b.txt")); var b = await CreateArchiveAsync(id, ver, new ZipEntry("b.txt"), new ZipEntry("a.txt")); // Act await target.AddOrUpdatePackagesAsync(new[] { a }); await target.AddOrUpdatePackagesAsync(new[] { b }); // Assert using (var entityContext = new EntityContext()) { var archives = entityContext.PackageArchives.ToList(); Assert.Single(archives); Assert.Equal(2, archives[0].EntryCount); var entries = entityContext.PackageEntries.OrderBy(x => x.PackageEntryKey).ToList(); Assert.Equal(2, entries.Count); Assert.Equal(0ul, entries[0].Index); Assert.Equal(Encoding.ASCII.GetBytes("b.txt"), entries[0].Name); Assert.Equal(1ul, entries[1].Index); Assert.Equal(Encoding.ASCII.GetBytes("a.txt"), entries[1].Name); } }
public PackageQueryProcessor( PackageQueryContextBuilder contextBuilder, CursorService cursorService, PackageCommitEnumerator packageCommitEnumerator, PackageQueryService queryService, IPackageService packageService, ILogger <PackageQueryProcessor> logger) { _contextBuilder = contextBuilder; _cursorService = cursorService; _packageCommitEnumerator = packageCommitEnumerator; _queryService = queryService; _packageService = packageService; _logger = logger; }
public PackageService(PackageCommitEnumerator enumerator, ILogger <PackageService> logger) { _enumerator = enumerator; _logger = logger; }