Example #1
0
        public void PackageReader_LegacyFolders()
        {
            // Verify legacy folder names such as 40 and 35 parse to frameworks
            var zip = TestPackages.GetZip(TestPackages.GetLegacyFolderPackage());

            using (PackageReader reader = new PackageReader(zip))
            {
                var groups = reader.GetReferenceItems().ToArray();

                Assert.Equal(4, groups.Count());

                Assert.Equal(NuGetFramework.AnyFramework, groups[0].TargetFramework);
                Assert.Equal("lib/a.dll", groups[0].Items.ToArray()[0]);

                Assert.Equal(NuGetFramework.Parse("net35"), groups[1].TargetFramework);
                Assert.Equal("lib/35/b.dll", groups[1].Items.ToArray()[0]);

                Assert.Equal(NuGetFramework.Parse("net4"), groups[2].TargetFramework);
                Assert.Equal("lib/40/test40.dll", groups[2].Items.ToArray()[0]);
                Assert.Equal("lib/40/x86/testx86.dll", groups[2].Items.ToArray()[1]);

                Assert.Equal(NuGetFramework.Parse("net45"), groups[3].TargetFramework);
                Assert.Equal("lib/45/a.dll", groups[3].Items.ToArray()[0]);
            }
        }
Example #2
0
        public void PackageReader_ReferencesWithoutGroups()
        {
            using (var packageFile = TestPackages.GetLegacyTestPackageWithPre25References())
            {
                var zip = TestPackages.GetZip(packageFile);

                using (PackageArchiveReader reader = new PackageArchiveReader(zip))
                {
                    var groups = reader.GetReferenceItems().ToArray();

                    Assert.Equal(3, groups.Count());

                    Assert.Equal(NuGetFramework.AnyFramework, groups[0].TargetFramework);
                    Assert.Equal(1, groups[0].Items.Count());
                    Assert.Equal("lib/test.dll", groups[0].Items.Single());

                    Assert.Equal(NuGetFramework.Parse("net40"), groups[1].TargetFramework);
                    Assert.Equal(1, groups[1].Items.Count());
                    Assert.Equal("lib/net40/test.dll", groups[1].Items.Single());

                    Assert.Equal(NuGetFramework.Parse("net451"), groups[2].TargetFramework);
                    Assert.Equal(1, groups[1].Items.Count());
                    Assert.Equal("lib/net451/test.dll", groups[2].Items.Single());
                }
            }
        }
Example #3
0
        public void PackageReader_SupportedFrameworksForInvalidPortableFrameworkThrows()
        {
            using (var packageFile = TestPackages.GetLegacyTestPackageWithInvalidPortableFrameworkFolderName())
            {
                var zip = TestPackages.GetZip(packageFile);

                using (PackageArchiveReader reader = new PackageArchiveReader(zip))
                {
                    var ex = Assert.Throws <PackagingException>(
                        () => reader.GetSupportedFrameworks());
                    Assert.Equal(
                        "The framework in the folder name of '" +
                        "lib/portable-net+win+wpa+wp+sl+net-cf+netmf+MonoAndroid+MonoTouch+Xamarin.iOS/test.dll" +
                        "' in package 'packageA.2.0.3' could not be parsed.",
                        ex.Message);
                    Assert.NotNull(ex.InnerException);
                    Assert.IsType <ArgumentException>(ex.InnerException);
                    Assert.Equal(
                        "Invalid portable frameworks '" +
                        "net+win+wpa+wp+sl+net-cf+netmf+MonoAndroid+MonoTouch+Xamarin.iOS" +
                        "'. A hyphen may not be in any of the portable framework names.",
                        ex.InnerException.Message);
                }
            }
        }
Example #4
0
        public void PackageReader_NestedReferenceItemsMixed()
        {
            using (var packageFile = TestPackages.GetLibEmptyFolderPackage())
            {
                var zip = TestPackages.GetZip(packageFile);

                using (PackageArchiveReader reader = new PackageArchiveReader(zip))
                {
                    var groups = reader.GetReferenceItems().ToArray();

                    Assert.Equal(3, groups.Count());

                    Assert.Equal(NuGetFramework.AnyFramework, groups[0].TargetFramework);
                    Assert.Equal(2, groups[0].Items.Count());
                    Assert.Equal("lib/a.dll", groups[0].Items.ToArray()[0]);
                    Assert.Equal("lib/x86/b.dll", groups[0].Items.ToArray()[1]);

                    Assert.Equal(NuGetFramework.Parse("net40"), groups[1].TargetFramework);
                    Assert.Equal(2, groups[1].Items.Count());
                    Assert.Equal("lib/net40/test40.dll", groups[1].Items.ToArray()[0]);
                    Assert.Equal("lib/net40/x86/testx86.dll", groups[1].Items.ToArray()[1]);

                    Assert.Equal(NuGetFramework.Parse("net45"), groups[2].TargetFramework);
                    Assert.Equal(0, groups[2].Items.Count());
                }
            }
        }
        public void PackageReader_MinClientVersion(string minClientVersion, string expected)
        {
            var zip = TestPackages.GetZip(TestPackages.GetLegacyTestPackageMinClient(minClientVersion));

            using (PackageReader reader = new PackageReader(zip))
            {
                var version = reader.GetMinClientVersion();

                Assert.Equal(expected, version.ToNormalizedString());
            }
        }
        public void PackageReader_ContentWithFrameworks()
        {
            var zip = TestPackages.GetZip(TestPackages.GetLegacyContentPackageWithFrameworks());

            using (PackageReader reader = new PackageReader(zip))
            {
                var groups = reader.GetContentItems().ToArray();

                Assert.Equal(3, groups.Count());
            }
        }
        public void PackageReader_AgnosticFramework()
        {
            var zip = TestPackages.GetZip(TestPackages.GetLegacyContentPackage());

            using (PackageReader reader = new PackageReader(zip))
            {
                string[] frameworks = reader.GetSupportedFrameworks().Select(f => f.DotNetFrameworkName).ToArray();

                Assert.Equal("Agnostic, Version=v0.0", frameworks[0]);
                Assert.Equal(frameworks.Length, 1);
            }
        }
Example #8
0
        public void PackageReader_EmptyLibFolder()
        {
            var zip = TestPackages.GetZip(TestPackages.GetLibEmptyFolderPackage());

            using (PackageReader reader = new PackageReader(zip))
            {
                var groups = reader.GetReferenceItems().ToArray();

                var emptyGroup = groups.Where(g => g.TargetFramework == NuGetFramework.ParseFolder("net45")).Single();

                Assert.Equal(0, emptyGroup.Items.Count());
            }
        }
        public void PackageReader_NoReferences()
        {
            var zip = TestPackages.GetZip(TestPackages.GetLegacyTestPackage());

            using (PackageReader reader = new PackageReader(zip))
            {
                var groups = reader.GetReferenceItems().ToArray();

                Assert.Equal(3, groups.Count());

                Assert.Equal(4, groups.SelectMany(e => e.Items).Count());
            }
        }
Example #10
0
        public void PackageReader_ContentWithMixedFrameworks()
        {
            using (var packageFile = TestPackages.GetLegacyContentPackageMixed())
            {
                var zip = TestPackages.GetZip(packageFile);

                using (PackageArchiveReader reader = new PackageArchiveReader(zip))
                {
                    var groups = reader.GetContentItems().ToArray();

                    Assert.Equal(3, groups.Count());
                }
            }
        }
        public void PackageReader_SupportedFrameworks()
        {
            var zip = TestPackages.GetZip(TestPackages.GetLegacyTestPackage());

            using (PackageReader reader = new PackageReader(zip))
            {
                string[] frameworks = reader.GetSupportedFrameworks().Select(f => f.DotNetFrameworkName).ToArray();

                Assert.Equal("Any, Version=v0.0", frameworks[0]);
                Assert.Equal(".NETFramework, Version=v4.0", frameworks[1]);
                Assert.Equal(".NETFramework, Version=v4.5", frameworks[2]);
                Assert.Equal(frameworks.Length, 3);
            }
        }
        public void PackageReader_ContentNoFrameworks()
        {
            var zip = TestPackages.GetZip(TestPackages.GetLegacyContentPackage());

            using (PackageReader reader = new PackageReader(zip))
            {
                var groups = reader.GetContentItems().ToArray();

                Assert.Equal(1, groups.Count());

                Assert.Equal(NuGetFramework.AnyFramework, groups.Single().TargetFramework);

                Assert.Equal(3, groups.Single().Items.Count());
            }
        }
        public void PackageReader_NestedReferenceItems()
        {
            var zip = TestPackages.GetZip(TestPackages.GetLibSubFolderPackage());

            using (PackageReader reader = new PackageReader(zip))
            {
                var groups = reader.GetReferenceItems().ToArray();

                Assert.Equal(1, groups.Count());

                Assert.Equal(NuGetFramework.Parse("net40"), groups[0].TargetFramework);
                Assert.Equal(2, groups[0].Items.Count());
                Assert.Equal("lib/net40/test40.dll", groups[0].Items.ToArray()[0]);
                Assert.Equal("lib/net40/x86/testx86.dll", groups[0].Items.ToArray()[1]);
            }
        }
Example #14
0
        public void PackageReader_Serviceable()
        {
            // Arrange
            using (var packageFile = TestPackages.GetServiceablePackage())
            {
                var zip = TestPackages.GetZip(packageFile);

                using (PackageArchiveReader reader = new PackageArchiveReader(zip))
                {
                    // Act
                    var actual = reader.IsServiceable();

                    // Assert
                    Assert.True(actual);
                }
            }
        }
        public void PackageReader_ReferencesWithGroups()
        {
            var zip = TestPackages.GetZip(TestPackages.GetLegacyTestPackageWithReferenceGroups());

            using (PackageReader reader = new PackageReader(zip))
            {
                var groups = reader.GetReferenceItems().ToArray();

                Assert.Equal(2, groups.Count());

                Assert.Equal(NuGetFramework.AnyFramework, groups[0].TargetFramework);
                Assert.Equal(1, groups[0].Items.Count());
                Assert.Equal("lib/test.dll", groups[0].Items.Single());

                Assert.Equal(NuGetFramework.Parse("net45"), groups[1].TargetFramework);
                Assert.Equal(1, groups[1].Items.Count());
                Assert.Equal("lib/net45/test45.dll", groups[1].Items.Single());
            }
        }
Example #16
0
        public void PackageReader_RespectReferencesAccordingToDifferentFrameworks()
        {
            // Copy of the InstallPackageRespectReferencesAccordingToDifferentFrameworks functional test

            // Arrange
            var zip    = TestPackages.GetZip(TestPackages.GetNearestReferenceFilteringPackage());
            var reader = new PackageReader(zip);

            // Act
            var references = reader.GetReferenceItems();
            var netResult  = NuGetFrameworkUtility.GetNearest <FrameworkSpecificGroup>(references, NuGetFramework.Parse("net45"));
            var slResult   = NuGetFrameworkUtility.GetNearest <FrameworkSpecificGroup>(references, NuGetFramework.Parse("sl5"));

            // Assert
            Assert.Equal(2, netResult.Items.Count());
            Assert.Equal(1, slResult.Items.Count());
            Assert.Equal("lib/sl40/a.dll", slResult.Items.First());
            Assert.Equal("lib/net40/one.dll", netResult.Items.First());
            Assert.Equal("lib/net40/three.dll", netResult.Items.Skip(1).First());
        }
Example #17
0
        public void PackageReader_PackageTypes()
        {
            // Arrange
            using (var packageFile = TestPackages.GetPackageWithPackageTypes())
            {
                var zip = TestPackages.GetZip(packageFile);

                using (PackageArchiveReader reader = new PackageArchiveReader(zip))
                {
                    // Act
                    var actual = reader.GetPackageTypes();

                    // Assert
                    Assert.Equal(2, actual.Count);
                    Assert.Equal("foo", actual[0].Name);
                    Assert.Equal(new Version(0, 0), actual[0].Version);
                    Assert.Equal("bar", actual[1].Name);
                    Assert.Equal(new Version(2, 0, 0), actual[1].Version);
                }
            }
        }