public static void GetVersionFromNuSpecFile_InvalidContents_Throws()
        {
            var packageManager = new PackageRetriever(Path.GetTempPath(), PackageRepositoryConfiguration.AllNugetOrgConfigs);
            var ex             = Assert.Throws <ArgumentException>(() => packageManager.GetVersionFromNuSpecFile("NOT XML..."));

            Assert.Equal("NuSpec contents is not valid to be parsed.", 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(), PackageRepositoryConfiguration.AllNugetOrgConfigs);
            var version        = packageManager.GetVersionFromNuSpecFile(nuSpecFileContents);

            version.Should().Be("1.0.165-addseparatejobtracki");
        }
        public static void GetVersionFromNuSpecFile_EmptyContents_ReturnsNull()
        {
            var packageManager = new PackageRetriever(Path.GetTempPath(), PackageRepositoryConfiguration.AllNugetOrgConfigs);
            var version        = packageManager.GetVersionFromNuSpecFile(string.Empty);

            Assert.Null(version);
        }
        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(), PackageRepositoryConfiguration.AllNugetOrgConfigs);
            var ex             = Assert.Throws <ArgumentException>(() => packageManager.GetVersionFromNuSpecFile(nuSpecFileContents));

            Assert.Equal("Could not find metadata in the provided NuSpec.", ex.Message);
        }
        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);
 }