コード例 #1
0
            public void WhenCannotDisplayPrivateMetadata_ReturnsNull()
            {
                var viewModel = new ListPackageItemViewModel(_package, _user1);

                Assert.False(viewModel.CanDisplayPrivateMetadata);
                Assert.Null(viewModel.SignatureInformation);
            }
コード例 #2
0
        public void AuthorsIsFlattenedAuthors()
        {
            var authors = new HashSet <PackageAuthor>();
            var author1 = new PackageAuthor
            {
                Name = "author1"
            };
            var author2 = new PackageAuthor
            {
                Name = "author2"
            };

            authors.Add(author1);
            authors.Add(author2);

            var flattenedAuthors = "something Completely different";

            var package = new Package()
            {
                Authors          = authors,
                FlattenedAuthors = flattenedAuthors
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package);

            Assert.Equal(flattenedAuthors, listPackageItemViewModel.Authors);
        }
コード例 #3
0
        public void AuthorsIsFlattenedAuthors()
        {
            var authors = new HashSet <PackageAuthor>();
            var author1 = new PackageAuthor
            {
                Name = "author1"
            };
            var author2 = new PackageAuthor
            {
                Name = "author2"
            };

            authors.Add(author1);
            authors.Add(author2);

            var flattenedAuthors = "something Completely different";

            var package = new Package()
            {
                Version = "1.0.0",
#pragma warning disable 0618
                Authors = authors,
#pragma warning restore 0618
                FlattenedAuthors = flattenedAuthors
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.Equal(flattenedAuthors, listPackageItemViewModel.Authors);
        }
コード例 #4
0
        public void UseVersionIfLatestSemVer2AndStableSemVer2NotSame()
        {
            var package = new Package()
            {
                Version               = "1.0.0",
                SemVerLevelKey        = SemVerLevelKey.SemVer2,
                IsLatestSemVer2       = true,
                IsLatestStableSemVer2 = false
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.True(listPackageItemViewModel.UseVersion);

            listPackageItemViewModel.LatestVersionSemVer2       = false;
            listPackageItemViewModel.LatestStableVersionSemVer2 = true;
            Assert.True(listPackageItemViewModel.UseVersion);

            listPackageItemViewModel.LatestVersionSemVer2       = false;
            listPackageItemViewModel.LatestStableVersionSemVer2 = false;
            Assert.True(listPackageItemViewModel.UseVersion);

            listPackageItemViewModel.LatestVersionSemVer2       = true;
            listPackageItemViewModel.LatestStableVersionSemVer2 = true;
            Assert.False(listPackageItemViewModel.UseVersion);
        }
コード例 #5
0
        public void UseVersionIfLatestAndStableNotSame()
        {
            var package = new Package()
            {
                Version        = "1.0.0",
                IsLatest       = true,
                IsLatestStable = false
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.True(listPackageItemViewModel.UseVersion);

            listPackageItemViewModel.LatestVersion       = false;
            listPackageItemViewModel.LatestStableVersion = true;
            Assert.True(listPackageItemViewModel.UseVersion);

            listPackageItemViewModel.LatestVersion       = false;
            listPackageItemViewModel.LatestStableVersion = false;
            Assert.True(listPackageItemViewModel.UseVersion);

            listPackageItemViewModel.LatestVersion       = true;
            listPackageItemViewModel.LatestStableVersion = true;
            Assert.False(listPackageItemViewModel.UseVersion);
        }
コード例 #6
0
        public void HasSingleOwner(Package package, bool expectedResult)
        {
            // Arrange
            var listPackageItemViewModel = new ListPackageItemViewModel(package, currentUser: null);

            // Act + Assert
            Assert.Equal(expectedResult, listPackageItemViewModel.HasSingleUserOwner);
        }
コード例 #7
0
            public void WhenPackageCertificateIsNull_ReturnsNull()
            {
                _packageRegistration.Owners.Add(_user1);

                var viewModel = new ListPackageItemViewModel(_package, _user1);

                Assert.True(viewModel.CanDisplayPrivateMetadata);
                Assert.Null(viewModel.SignatureInformation);
            }
コード例 #8
0
        public void EmptyTagsAreParsedEmpty()
        {
            var package = new Package()
            {
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package);

            Assert.Equal(null, listPackageItemViewModel.Tags);
        }
コード例 #9
0
            public void WhenPackageCertificateIsNotNullAndNoOwners_ReturnsString()
            {
                SignPackage();

                var viewModel = new ListPackageItemViewModel(_package, _user1);

                viewModel.CanDisplayPrivateMetadata = true;

                Assert.Equal("Signed with certificate (E)", viewModel.SignatureInformation);
            }
コード例 #10
0
        public void LicenseNamesAreParsedByCommas()
        {
            var package = new Package
            {
                LicenseNames = "l1,l2, l3 ,l4  ,  l5 ",
            };
            var packageViewModel = new ListPackageItemViewModel(package);

            Assert.Equal(new string[] { "l1", "l2", "l3", "l4", "l5" }, packageViewModel.LicenseNames);
        }
コード例 #11
0
        public void UsesNormalizedPackageVersionIfNormalizedVersionMissing()
        {
            var package = new Package()
            {
                Version = "01.02.00.00"
            };
            var packageViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.Equal("1.2.0", packageViewModel.Version);
        }
コード例 #12
0
        public void EmptyTagsAreParsedEmpty()
        {
            var package = new Package()
            {
                Version = "1.0.0"
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.Null(listPackageItemViewModel.Tags);
        }
コード例 #13
0
        public OwnerRequestsListItemViewModel(PackageOwnerRequest request, IPackageService packageService, User currentUser)
        {
            Request = request;

            var package = packageService.FindPackageByIdAndVersion(request.PackageRegistration.Id, version: null, semVerLevelKey: SemVerLevelKey.SemVer2, allowPrerelease: true);

            Package = new ListPackageItemViewModel(package, currentUser);

            CanAccept = ActionsRequiringPermissions.HandlePackageOwnershipRequest.CheckPermissions(currentUser, Request.NewOwner) == PermissionsCheckResult.Allowed;
            CanCancel = Package.CanManageOwners;
        }
コード例 #14
0
        public void LicenseNamesAreParsedByCommas()
        {
            var package = new Package
            {
                Version      = "1.0.0",
                LicenseNames = "l1,l2, l3 ,l4  ,  l5 ",
            };
            var packageViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.Equal(new string[] { "l1", "l2", "l3", "l4", "l5" }, packageViewModel.LicenseNames);
        }
コード例 #15
0
        public void UsesNormalizedVersionForDisplay()
        {
            var package = new Package()
            {
                Version           = "01.02.00.00",
                NormalizedVersion = "1.3.0" // Different just to prove the View Model is using the DB column.
            };
            var packageViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.Equal("1.3.0", packageViewModel.Version);
        }
コード例 #16
0
        public void LicenseUrlKeptWhenLicenseReportDisabled()
        {
            var package = new Package
            {
                HideLicenseReport = true,
                LicenseUrl        = "url"
            };
            var packageViewModel = new ListPackageItemViewModel(package);

            Assert.NotNull(packageViewModel.LicenseUrl);
        }
コード例 #17
0
        public void LicenseNamesKeptWhenLicenseReportEnabled()
        {
            var package = new Package
            {
                HideLicenseReport = false,
                LicenseNames      = "l1"
            };
            var packageViewModel = new ListPackageItemViewModel(package);

            Assert.NotNull(packageViewModel.LicenseNames);
        }
コード例 #18
0
        public void LicenseReportUrlKeptWhenLicenseReportEnabled()
        {
            var package = new Package
            {
                Version           = "1.0.0",
                HideLicenseReport = false,
                LicenseReportUrl  = "url"
            };
            var packageViewModel = new ListPackageItemViewModel(package);

            Assert.NotNull(packageViewModel.LicenseReportUrl);
        }
コード例 #19
0
        public void LicenseUrlKeptWhenLicenseReportDisabled()
        {
            var package = new Package
            {
                Version           = "1.0.0",
                HideLicenseReport = true,
                LicenseUrl        = "url"
            };
            var packageViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.NotNull(packageViewModel.LicenseUrl);
        }
コード例 #20
0
        public void LicenseNamesKeptWhenLicenseReportEnabled()
        {
            var package = new Package
            {
                Version           = "1.0.0",
                HideLicenseReport = false,
                LicenseNames      = "l1"
            };
            var packageViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.NotNull(packageViewModel.LicenseNames);
        }
コード例 #21
0
            public void WhenPackageCertificateIsNotNullAndOneSigner_ReturnsString()
            {
                _packageRegistration.Owners.Add(_user1);

                ActivateCertificate(_user1);
                SignPackage();

                var viewModel = new ListPackageItemViewModel(_package, _user1);

                Assert.True(viewModel.CanDisplayPrivateMetadata);
                Assert.Equal("Signed with A's certificate (E)", viewModel.SignatureInformation);
            }
コード例 #22
0
        public void ShortDescriptionsNotTruncated()
        {
            var description = "A Short Description";
            var package     = new Package()
            {
                Description = description
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package);

            Assert.Equal(description, listPackageItemViewModel.ShortDescription);
            Assert.Equal(false, listPackageItemViewModel.IsDescriptionTruncated);
        }
コード例 #23
0
        public void LicenseReportFieldsKeptWhenLicenseReportDisabled()
        {
            var package = new Package
            {
                Version           = "1.0.0",
                HideLicenseReport = true,
                LicenseNames      = "l1",
                LicenseReportUrl  = "url"
            };
            var packageViewModel = new ListPackageItemViewModel(package);

            Assert.NotNull(packageViewModel.LicenseNames);
            Assert.NotNull(packageViewModel.LicenseReportUrl);
        }
コード例 #24
0
        public void TagsAreParsed()
        {
            var package = new Package()
            {
                Tags = "tag1 tag2 tag3"
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package);

            Assert.Equal(3, listPackageItemViewModel.Tags.Count());
            Assert.True(listPackageItemViewModel.Tags.Contains("tag1"));
            Assert.True(listPackageItemViewModel.Tags.Contains("tag2"));
            Assert.True(listPackageItemViewModel.Tags.Contains("tag3"));
        }
コード例 #25
0
        public void ShortDescriptionsNotTruncated()
        {
            var description = "A Short Description";
            var package     = new Package()
            {
                Version     = "1.0.0",
                Description = description
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.Equal(description, listPackageItemViewModel.ShortDescription);
            Assert.False(listPackageItemViewModel.IsDescriptionTruncated);
        }
コード例 #26
0
        public void TagsAreParsed()
        {
            var package = new Package()
            {
                Version = "1.0.0",
                Tags    = "tag1 tag2 tag3"
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package, currentUser: null);

            Assert.Equal(3, listPackageItemViewModel.Tags.Count());
            Assert.Contains("tag1", listPackageItemViewModel.Tags);
            Assert.Contains("tag2", listPackageItemViewModel.Tags);
            Assert.Contains("tag3", listPackageItemViewModel.Tags);
        }
コード例 #27
0
        public void LongDescriptionsSingleWordTruncatedToLimit()
        {
            var charLimit   = 300;
            var omission    = "...";
            var description = @"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";

            var package = new Package()
            {
                Description = description
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package);

            Assert.Equal(charLimit + omission.Length, listPackageItemViewModel.ShortDescription.Length);
            Assert.Equal(true, listPackageItemViewModel.IsDescriptionTruncated);
            Assert.True(listPackageItemViewModel.ShortDescription.EndsWith(omission));
        }
コード例 #28
0
        public void LongDescriptionsTruncated()
        {
            var omission    = "...";
            var description = @"A Longer description full of nonsense that will get truncated. Lorem ipsum dolor sit amet, ad nemore gubergren eam. Ea quaeque labores deseruisse his, eos munere convenire at, in eos audire persius corpora. Te his volumus detracto offendit, has ne illud choro. No illum quaestio mel, novum democritum te sea, et nam nisl officiis salutandi. Vis ut harum docendi incorrupte, nam affert putent sententiae id, mei cibo omnium id. Ea est falli graeci voluptatibus, est mollis denique ne.
An nec tempor cetero vituperata.Ius cu dicunt regione interpretaris, posse veniam facilisis ad vim, sit ei sale integre. Mel cu aliquid impedit scribentur.Nostro recusabo sea ei, nec habeo instructior no, saepe altera adversarium vel cu.Nonumes molestiae sit at, per enim necessitatibus cu.
At mei iriure dignissim theophrastus.Meis nostrud te sit, equidem maiorum pri ex.Vim dolorem fuisset an. At sit veri illum oratio, et per dicat contentiones. In eam tale tation, mei dicta labitur corpora ei, homero equidem suscipit ut eam.";

            var package = new Package()
            {
                Description = description
            };

            var listPackageItemViewModel = new ListPackageItemViewModel(package);

            Assert.NotEqual(description, listPackageItemViewModel.ShortDescription);
            Assert.Equal(true, listPackageItemViewModel.IsDescriptionTruncated);
            Assert.True(listPackageItemViewModel.ShortDescription.EndsWith(omission));
            Assert.True(description.Contains(listPackageItemViewModel.ShortDescription.Substring(0, listPackageItemViewModel.ShortDescription.Length - 1 - omission.Length)));
        }