public void DownloadPublic()
 {
     var defaultWorkingDirectory = @"D:\Temp\NewNuGet";
     var pm = new PackageRetriever(defaultWorkingDirectory);
     var package = pm.GetPackage(new PackageDescription { Id = "Newtonsoft.Json" });
     Assert.NotNull(package.PackageFileBytes);
 }
        public static void DownloadPublic()
        {
            var defaultWorkingDirectory = FormattableString.Invariant($@"D:\Temp\{nameof(Naos)}.{nameof(Naos.Packaging)}.{nameof(Naos.Packaging.NuGet.Test)}.{nameof(PackageRetrieverTest)}.{nameof(DownloadPublic)}");

            if (!Directory.Exists(defaultWorkingDirectory))
            {
                Directory.CreateDirectory(defaultWorkingDirectory);
            }

            var pm      = new PackageRetriever(defaultWorkingDirectory, PackageRepositoryConfiguration.AllNugetOrgConfigs);
            var package = pm.GetPackage(new PackageDescription {
                Id = "Newtonsoft.Json"
            });

            Assert.NotNull(package.PackageFileBytes);
        }
        public void DownloadPrivate()
        {
            var repoConfig = new PackageRepositoryConfiguration
            {
                Source = "https://ci.appveyor.com/nuget/XXX",
                ClearTextPassword = "******",
                Username = "******",
                SourceName = "ThisIsGalleryName",
                ProtocolVersion = 2,
            };

            var defaultWorkingDirectory = @"D:\Temp\NewNuGet";
            var pm = new PackageRetriever(defaultWorkingDirectory, repoConfig);
            var package = pm.GetPackage(new PackageDescription { Id = "ThisIsPackage" });
            Assert.NotNull(package.PackageFileBytes);
        }
        public static void DownloadPrivate()
        {
            var repoConfig = new PackageRepositoryConfiguration
            {
                Source            = "https://ci.appveyor.com/nuget/XXX",
                ClearTextPassword = "******",
                UserName          = "******",
                SourceName        = "ThisIsGalleryName",
                ProtocolVersion   = 2,
            };

            var defaultWorkingDirectory = @"D:\Temp\NewNuGet";
            var pm      = new PackageRetriever(defaultWorkingDirectory, new[] { PackageRepositoryConfiguration.NugetOrgV2, PackageRepositoryConfiguration.NugetOrgV3, repoConfig });
            var package = pm.GetPackage(new PackageDescription {
                Id = "ThisIsPackage"
            });

            Assert.NotNull(package.PackageFileBytes);
        }
        public static void GetVersionFromNuSpecFile_ValidContentsMissingVersion_Throws()
        {
            var nuSpecFileContents = @"<?xml version=""1.0""?>
<package xmlns=""http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"">
  <metadata>
    <id>Naos.Something</id>
    <authors>APPVYR-WIN20122\appveyor</authors>
    <owners>APPVYR-WIN20122\appveyor</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Created on 2015-08-18 22:10</description>
    <copyright>Copyright 2015</copyright>
    <dependencies>
      <dependency id=""AWSSDK"" version=""2.3.50.1"" />
    </dependencies>
  </metadata>
</package>";

            var packageManager = new PackageRetriever(Path.GetTempPath(), PackageRepositoryConfiguration.AllNugetOrgConfigs);
            var ex             = Assert.Throws <ArgumentException>(() => packageManager.GetVersionFromNuSpecFile(nuSpecFileContents));

            Assert.Equal("Could not find the version in the provided NuSpec.", ex.Message);
        }
        public static void GetVersionFromNuSpecFile_ValidContents_ValidResult()
        {
            var nuSpecFileContents = @"<?xml version=""1.0""?>
<package xmlns=""http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"">
  <metadata>
    <id>Naos.Something</id>
    <version>1.0.299</version>
    <authors>APPVYR-WIN20122\appveyor</authors>
    <owners>APPVYR-WIN20122\appveyor</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Created on 2015-08-18 22:10</description>
    <copyright>Copyright 2015</copyright>
    <dependencies>
      <dependency id=""AWSSDK"" version=""2.3.50.1"" />
    </dependencies>
  </metadata>
</package>";

            var packageManager = new PackageRetriever(Path.GetTempPath(), PackageRepositoryConfiguration.AllNugetOrgConfigs);
            var version        = packageManager.GetVersionFromNuSpecFile(nuSpecFileContents);

            Assert.Equal("1.0.299", version);
        }
 public static void GetVersionFromNuSpecFile_NullContents_ReturnsNull()
 {
     var packageManager = new PackageRetriever(Path.GetTempPath(), null);
     var version = packageManager.GetVersionFromNuSpecFile(null);
     Assert.Null(version);
 }
        public static void GetVersionFromNuSpecFile_ValidContents_ValidResult()
        {
            var nuSpecFileContents = @"<?xml version=""1.0""?>
<package xmlns=""http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"">
  <metadata>
    <id>Naos.Something</id>
    <version>1.0.299</version>
    <authors>APPVYR-WIN20122\appveyor</authors>
    <owners>APPVYR-WIN20122\appveyor</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Created on 2015-08-18 22:10</description>
    <copyright>Copyright 2015</copyright>
    <dependencies>
      <dependency id=""AWSSDK"" version=""2.3.50.1"" />
    </dependencies>
  </metadata>
</package>";

            var packageManager = new PackageRetriever(Path.GetTempPath(), null);
            var version = packageManager.GetVersionFromNuSpecFile(nuSpecFileContents);
            Assert.Equal("1.0.299", version);
        }
        public static void GetVersionFromNuSpecFile_ValidContentsMissingVersion_Throws()
        {
            var nuSpecFileContents = @"<?xml version=""1.0""?>
<package xmlns=""http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"">
  <metadata>
    <id>Naos.Something</id>
    <authors>APPVYR-WIN20122\appveyor</authors>
    <owners>APPVYR-WIN20122\appveyor</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Created on 2015-08-18 22:10</description>
    <copyright>Copyright 2015</copyright>
    <dependencies>
      <dependency id=""AWSSDK"" version=""2.3.50.1"" />
    </dependencies>
  </metadata>
</package>";

            var packageManager = new PackageRetriever(Path.GetTempPath(), null);
            var ex = Assert.Throws<ArgumentException>(() => packageManager.GetVersionFromNuSpecFile(nuSpecFileContents));
            Assert.Equal("Could not find the version in the provided NuSpec.", ex.Message);
        }
        public static void GetVersionFromNuSpecFile_ValidContentsMissingMetadata_Throws()
        {
            var nuSpecFileContents = @"<?xml version=""1.0""?>
<package xmlns=""http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"">
</package>";

            var packageManager = new PackageRetriever(Path.GetTempPath(), null);
            var ex = Assert.Throws<ArgumentException>(() => packageManager.GetVersionFromNuSpecFile(nuSpecFileContents));
            Assert.Equal("Could not find metadata in the provided NuSpec.", ex.Message);
        }
        public static void GetVersionFromNuSpecFile_SucceedsWithXmlHeaderWithEncoding()
        {
            // DO NOT MESS WITH THIS STRING!! - it's got a BOM hiding at the beginning to test
            var nuSpecFileContents = @"<?xml version=""1.0"" encoding=""utf-8""?>
<package xmlns=""http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"">
  <metadata>
    <id>Naos.MessageBus.Hangfire.Database</id>
    <version>1.0.165-addseparatejobtracki</version>
    <authors>Naos Project</authors>
    <owners>Naos Project</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <licenseUrl>https://opensource.org/licenses/MIT</licenseUrl>
    <projectUrl>http://naosproject.com/</projectUrl>
    <iconUrl>http://getthinktank.wpengine.com/wp-content/uploads/2016/05/NAOS-NuGet-Icon.png</iconUrl>
    <description>Created on 2016-05-26 00:39</description>
    <copyright>Copyright (c) 2016 Naos LLC</copyright>
    <dependencies>
      <dependency id=""FluentMigrator"" version=""1.6.1"" />
    </dependencies>
  </metadata>
</package>";

            var packageManager = new PackageRetriever(Path.GetTempPath(), null);
            var version = packageManager.GetVersionFromNuSpecFile(nuSpecFileContents);
            version.Should().Be("1.0.165-addseparatejobtracki");
        }
 public static void GetVersionFromNuSpecFile_InvalidContents_Throws()
 {
     var packageManager = new PackageRetriever(Path.GetTempPath(), null);
     var ex = Assert.Throws<ArgumentException>(() => packageManager.GetVersionFromNuSpecFile("NOT XML..."));
     Assert.Equal("NuSpec contents is not valid to be parsed.", ex.Message);
 }