コード例 #1
0
        public static void RewritingTheNuspecCreatesValidNewElements()
        {
            var packageStream = CreateTestPackageStream();

            // ensure
            using (var nupkg = new PackageArchiveReader(packageStream, leaveStreamOpen: true))
            {
                var nuspec = nupkg.GetNuspecReader();
                Assert.Equal(nuspec.GetMetadata().Any(kvp => kvp.Key == PackageMetadataStrings.LicenseUrl), false);
            }

            // Act
            NupkgRewriter.RewriteNupkgManifest(packageStream,
                                               new List <Action <ManifestEdit> >
            {
                metadata => { metadata.Authors = "Me and You"; },
                metadata => { metadata.Tags = "Peas In A Pod"; },
                metadata => { metadata.LicenseUrl = "http://myget.org"; },
                metadata => { metadata.RequireLicenseAcceptance = true; }
            });

            // Assert
            using (var nupkg = new PackageArchiveReader(packageStream, leaveStreamOpen: false))
            {
                var nuspec = nupkg.GetNuspecReader();
                Assert.Equal("TestPackage", nuspec.GetId());
                Assert.Equal(NuGetVersion.Parse("0.0.0.1"), nuspec.GetVersion());
                Assert.Equal(nuspec.GetMetadata().Any(kvp => kvp.Key == PackageMetadataStrings.LicenseUrl), true);
                Assert.Equal(nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.LicenseUrl).Value, "http://myget.org");
                Assert.Equal(nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.RequireLicenseAcceptance).Value, "true");
            }
        }
コード例 #2
0
        public static void CanRewriteTheNuspecInANupkg()
        {
            var packageStream = CreateTestPackageStream();

            // Act
            NupkgRewriter.RewriteNupkgManifest(packageStream,
                                               new List <Action <ManifestEdit> >
            {
                metadata => { metadata.Authors = "Me and You"; },
                metadata => { metadata.Tags = "Peas In A Pod"; },
                metadata => { metadata.ReleaseNotes = "In perfect harmony"; }
            });

            // Assert
            using (var nupkg = new PackageArchiveReader(packageStream, leaveStreamOpen: false))
            {
                var nuspec = nupkg.GetNuspecReader();

                Assert.Equal("TestPackage", nuspec.GetId());
                Assert.Equal(NuGetVersion.Parse("0.0.0.1"), nuspec.GetVersion());
                Assert.Equal("Me and You", nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.Authors).Value);
                Assert.Equal("Peas In A Pod", nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.Tags).Value);
                Assert.Equal("In perfect harmony", nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.ReleaseNotes).Value);
            }
        }
コード例 #3
0
        public static void RewritingTheNuspecRemovesInvalidElements()
        {
            var packageStream = CreateTestPackageStream();

            // ensure
            using (var nupkg = new PackageArchiveReader(packageStream, leaveStreamOpen: true))
            {
                var nuspec = nupkg.GetNuspecReader();
                Assert.Equal(nuspec.GetMetadata().Any(kvp => kvp.Key == PackageMetadataStrings.Title), true);
            }

            // Act
            NupkgRewriter.RewriteNupkgManifest(packageStream,
                                               new List <Action <ManifestEdit> >
            {
                metadata => { metadata.Title = ""; }
            });

            // Assert
            using (var nupkg = new PackageArchiveReader(packageStream, leaveStreamOpen: false))
            {
                var nuspec = nupkg.GetNuspecReader();
                Assert.Equal(nuspec.GetMetadata().Any(kvp => kvp.Key == PackageMetadataStrings.Title), false);
            }
        }
コード例 #4
0
        public static void RewritingTheNuSpecDoesNotMessUpTheNuspecStream()
        {
            var packageStream = CreateTestPackageStream();
            var manifestStreamLengthOriginal = GetManifestStreamLength(packageStream);

            var longValue  = new String('x', 200);
            var shortValue = "y";

            // Act 1 - Make the stream bigger
            NupkgRewriter.RewriteNupkgManifest(packageStream,
                                               new List <Action <ManifestEdit> >
            {
                metadata => { metadata.Description = longValue; },
                metadata => { metadata.Summary = longValue; }
            });

            // Assert 1
            var manifestStreamLength1 = GetManifestStreamLength(packageStream);

            Assert.True(manifestStreamLength1 > manifestStreamLengthOriginal);

            using (var nupkg = new PackageArchiveReader(packageStream, leaveStreamOpen: true))
            {
                var nuspec = nupkg.GetNuspecReader();

                Assert.Equal("TestPackage", nuspec.GetId());
                Assert.Equal(NuGetVersion.Parse("0.0.0.1"), nuspec.GetVersion());
                Assert.Equal(longValue, nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.Description).Value);
                Assert.Equal(longValue, nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.Summary).Value);
            }

            // Act 2 - Make the stream smaller
            NupkgRewriter.RewriteNupkgManifest(packageStream,
                                               new List <Action <ManifestEdit> >
            {
                metadata => { metadata.Description = shortValue; },
                metadata => { metadata.Summary = shortValue; }
            });

            // Assert 2
            var manifestStreamLength2 = GetManifestStreamLength(packageStream);

            Assert.True(manifestStreamLength2 < manifestStreamLength1);

            using (var nupkg = new PackageArchiveReader(packageStream, leaveStreamOpen: true))
            {
                var nuspec = nupkg.GetNuspecReader();

                Assert.Equal("TestPackage", nuspec.GetId());
                Assert.Equal(NuGetVersion.Parse("0.0.0.1"), nuspec.GetVersion());
                Assert.Equal(shortValue, nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.Description).Value);
                Assert.Equal(shortValue, nuspec.GetMetadata().First(kvp => kvp.Key == PackageMetadataStrings.Summary).Value);
            }
        }
        public static void CanRewriteTheNuspecInANupkg()
        {
            var packageStream = CreateTestPackageStream();

            // Act
            NupkgRewriter.RewriteNupkgManifest(packageStream,
                                               new List <Action <ManifestMetadata> >
            {
                (metadata) => { metadata.Authors = "Me and You"; },
                (metadata) => { metadata.Tags = "Peas In A Pod"; },
            });

            // Assert
            using (var nupkg = new Nupkg(packageStream, leaveOpen: false))
            {
                Assert.Equal("TestPackage", nupkg.Metadata.Id);
                Assert.Equal(SemanticVersion.Parse("0.0.0.1"), nupkg.Metadata.Version);
                Assert.Equal("Me and You", string.Join(" ", nupkg.Metadata.Authors));
                Assert.Equal("Peas In A Pod", nupkg.Metadata.Tags);
            }
        }
コード例 #6
0
        public static void RewritingTheNuspecDoesNotAddEmptyMetadataElements()
        {
            var packageStream = CreateTestPackageStream();

            // Act
            NupkgRewriter.RewriteNupkgManifest(packageStream,
                                               new List <Action <ManifestEdit> >
            {
                metadata => { metadata.Authors = "Me and You"; },
                metadata => { metadata.Tags = "Peas In A Pod"; },
                metadata => { metadata.ReleaseNotes = "In perfect harmony"; }
            });

            // Assert
            using (var nupkg = new PackageArchiveReader(packageStream, leaveStreamOpen: false))
            {
                var nuspec = nupkg.GetNuspecReader();
                var metadataDescendants = nuspec.Xml.Document.Descendants().Where(d => d.Name.LocalName == PackageMetadataStrings.Metadata).Descendants();
                foreach (var element in metadataDescendants)
                {
                    Assert.False(string.IsNullOrEmpty(element.Value), $"Nuspec contains a null or empty tag <{element.Name.LocalName}>");
                }
            }
        }