Пример #1
0
        public void ShouldSetPackageLogActionToGivenAction()
        {
            const PackageLogAction expectedAction = PackageLogAction.Update;

            _packageLogEntryCreator.Create("id", "version", expectedAction);

            _mockedPackageLogEntryRepository.Verify(pler => pler.Create(It.Is <PackageLogEntry>(ple => ple.Action == expectedAction)), Times.Once(),
                                                    "Action was not set to the given PackageLogAction.");
        }
Пример #2
0
        public void ShouldUpdatePackagePartAndExtendedInfoForUpdateOrRePublishLogAction(PackageLogAction packageLogAction)
        {
            PackageLogEntry entryToProcess = new PackageLogEntry { Action = packageLogAction };
            _mockedPackageLogEntryService.Setup(ples => ples.GetUnprocessedLogEntries()).Returns(new[] { entryToProcess });

            _packageSynchronizer.Synchronize();

            _mockedPackagePartUpdater.Verify(ppu => ppu.ModifyExistingPackagePart(entryToProcess, true), Times.Once(),
                "PackagePart and extended info should have been updated.");
        }
Пример #3
0
 public void Create(string packageId, string packageVersion, PackageLogAction action)
 {
     if (string.IsNullOrWhiteSpace(packageId))
     {
         throw new ArgumentNullException("packageId");
     }
     if (string.IsNullOrWhiteSpace(packageVersion))
     {
         throw new ArgumentNullException("packageVersion");
     }
     var packageLogEntry = new PackageLogEntry
     {
         PackageId = packageId,
         PackageVersion = packageVersion,
         DateLogged = _dateTime.UtcNow,
         Action = action
     };
     _packageLogEntryRepository.Create(packageLogEntry);
 }
Пример #4
0
        public void Create(string packageId, string packageVersion, PackageLogAction action)
        {
            if (string.IsNullOrWhiteSpace(packageId))
            {
                throw new ArgumentNullException("packageId");
            }
            if (string.IsNullOrWhiteSpace(packageVersion))
            {
                throw new ArgumentNullException("packageVersion");
            }
            var packageLogEntry = new PackageLogEntry
            {
                PackageId      = packageId,
                PackageVersion = packageVersion,
                DateLogged     = _dateTime.UtcNow,
                Action         = action
            };

            _packageLogEntryRepository.Create(packageLogEntry);
        }
Пример #5
0
        public void PublishPackage(string key, string packageId, string packageVersion, PackageLogAction logActionForExistingPackage)
        {
            var packageLogAction = PackageLogAction.Create;

            _packageAuthenticator.EnsureKeyCanAccessPackage(key, packageId, packageVersion);
            Package package = _packageRepository.Collection
                              .Include(p => p.Dependencies)
                              .Include(p => p.Screenshots)
                              .SingleOrDefault(p => p.Id == packageId && p.Version == packageVersion);

            if (package == null)
            {
                throw new PackageDoesNotExistException(packageId, packageVersion);
            }
            package.Published = _dateTime.UtcNow;
            _packageRepository.Update(package);

            var publishedPackage = _mapper.Map <Package, PublishedPackage>(package);
            var existingPublishedPackageCount =
                _publishedPackageRepository.Collection.Count(pp => pp.Id == packageId && pp.Version == packageVersion);

            if (existingPublishedPackageCount > 0)
            {
                _publishedScreenshotRespository.DeleteMany(ps => ps.PublishedPackageId == packageId && ps.PublishedPackageVersion == packageVersion);
                _publishedPackageRepository.DeleteMany(pp => pp.Id == packageId && pp.Version == packageVersion);
                packageLogAction = logActionForExistingPackage;
            }
            if (!_publishedPackageRepository.Collection.Any(pp => pp.Id == publishedPackage.Id && pp.IsLatestVersion))
            {
                publishedPackage.IsLatestVersion = true;
            }
            else if (publishedPackage.IsLatestVersion)
            {
                _latestVersionUpdater.SetLatestVersionFlagsOfOtherVersionablesWithSameId(publishedPackage);
            }
            _publishedPackageRepository.Create(publishedPackage);

            _packageLogEntryCreator.Create(packageId, packageVersion, packageLogAction);
        }
Пример #6
0
        public void PublishPackage(string key, string packageId, string packageVersion, PackageLogAction logActionForExistingPackage)
        {
            var packageLogAction = PackageLogAction.Create;

            _packageAuthenticator.EnsureKeyCanAccessPackage(key, packageId, packageVersion);
            Package package = _packageRepository.Collection
                .Include(p => p.Dependencies)
                .Include(p => p.Screenshots)
                .SingleOrDefault(p => p.Id == packageId && p.Version == packageVersion);
            if (package == null)
            {
                throw new PackageDoesNotExistException(packageId, packageVersion);
            }
            package.Published = _dateTime.UtcNow;
            _packageRepository.Update(package);

            var publishedPackage = _mapper.Map<Package, PublishedPackage>(package);
            var existingPublishedPackageCount =
                _publishedPackageRepository.Collection.Count(pp => pp.Id == packageId && pp.Version == packageVersion);
            if (existingPublishedPackageCount > 0) {
                _publishedScreenshotRespository.DeleteMany(ps => ps.PublishedPackageId == packageId && ps.PublishedPackageVersion == packageVersion);
                _publishedPackageRepository.DeleteMany(pp => pp.Id == packageId && pp.Version == packageVersion);
                packageLogAction = logActionForExistingPackage;
            }
            if (!_publishedPackageRepository.Collection.Any(pp => pp.Id == publishedPackage.Id && pp.IsLatestVersion))
            {
                publishedPackage.IsLatestVersion = true;
            }
            else if (publishedPackage.IsLatestVersion)
            {
                _latestVersionUpdater.SetLatestVersionFlagsOfOtherVersionablesWithSameId(publishedPackage);
            }
            _publishedPackageRepository.Create(publishedPackage);

            _packageLogEntryCreator.Create(packageId, packageVersion, packageLogAction);
        }