Exemple #1
0
        public void ShouldNotInvokeRepositoryWhenGivenPackageIsNotLatestVersion()
        {
            Package package = new Package {
                IsLatestVersion = false
            };

            _latestVersionUpdater.SetLatestVersionFlagsOfOtherVersionablesWithSameId(package);

            _mockedPackageRepository.VerifyGet(pr => pr.Collection, Times.Never(), "PackageRepository should not have been invoked.");
            _mockedPackageRepository.Verify(pr => pr.Update(It.IsAny <IEnumerable <Package> >()), Times.Never(), "No Update calls should have been made.");
        }
Exemple #2
0
 private void CreateNewPackage(string tempPath, Package package, string externalPackageUri, string fileExtension)
 {
     VerifyPackageDoesNotAlreadyExist(package.Id, package.Version);
     MovePackageFile(externalPackageUri, tempPath, package, fileExtension);
     package.IsLatestVersion = _latestVersionChecker.IsLatestVersion(package.Id, package.Version);
     _latestVersionUpdater.SetLatestVersionFlagsOfOtherVersionablesWithSameId(package);
     _packageRepository.Create(package);
 }
Exemple #3
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);
        }
Exemple #4
0
 public void UpdateExistingPackage(Package packageToUpdate)
 {
     _packageUriValidator.ValidatePackageUris(packageToUpdate);
     _latestVersionUpdater.SetLatestVersionFlagsOfOtherVersionablesWithSameId(packageToUpdate);
     _packageRepository.Update(packageToUpdate);
 }