public void GetSpecDependencies_AddsCentralPackageVersionsIfDefined(bool cpvmEnabled) { // Arrange var logger = new TestLogger(); var dependencyFoo = new LibraryDependency( libraryRange: new LibraryRange("foo", versionRange: null, LibraryDependencyTarget.Package), type: LibraryDependencyType.Default, includeType: LibraryIncludeFlags.All, suppressParent: LibraryIncludeFlags.None, noWarn: new List <Common.NuGetLogCode>(), autoReferenced: false, generatePathProperty: true, versionCentrallyManaged: false, LibraryDependencyReferenceType.Direct, aliases: "stuff"); var centralVersionFoo = new CentralPackageVersion("foo", VersionRange.Parse("2.0.0")); var centralVersionBar = new CentralPackageVersion("bar", VersionRange.Parse("2.0.0")); var tfi = CreateTargetFrameworkInformation(new List <LibraryDependency>() { dependencyFoo }, new List <CentralPackageVersion>() { centralVersionFoo, centralVersionBar }, cpvmEnabled); var dependencyGraphSpec = CreateDependencyGraphSpecWithCentralDependencies(cpvmEnabled, tfi); var packSpec = dependencyGraphSpec.Projects[0]; // Act var dependencies = PackageSpecReferenceDependencyProvider.GetSpecDependencies(packSpec, tfi.FrameworkName); // Assert if (cpvmEnabled) { Assert.Equal(2, dependencies.Count); var barDep = dependencies.Where(d => d.Name == "bar").First(); Assert.NotNull(barDep); Assert.True(barDep.VersionCentrallyManaged); Assert.False(barDep.AutoReferenced); Assert.Equal(LibraryDependencyReferenceType.None, barDep.ReferenceType); Assert.Equal("[2.0.0, )", barDep.LibraryRange.VersionRange.ToNormalizedString()); var fooDep = dependencies.Where(d => d.Name == "foo").First(); Assert.NotNull(fooDep); Assert.False(fooDep.AutoReferenced); Assert.True(fooDep.VersionCentrallyManaged); Assert.Equal(LibraryDependencyReferenceType.Direct, fooDep.ReferenceType); Assert.Equal("[2.0.0, )", fooDep.LibraryRange.VersionRange.ToNormalizedString()); } else { Assert.Equal(1, dependencies.Count); var fooDep = dependencies.Where(d => d.Name == "foo").First(); Assert.NotNull(fooDep); Assert.False(fooDep.VersionCentrallyManaged); Assert.Null(fooDep.LibraryRange.VersionRange); Assert.Equal(LibraryDependencyReferenceType.Direct, fooDep.ReferenceType); } }
public void GetSpecDependencies_WithAssetTargetFallback_AndDependencyResolutionVariableSpecified_ReturnsCorrectDependencies(string assetTargetFallbackEnvironmentVariableValue, int dependencyCount) { // Arrange var net60Framework = FrameworkConstants.CommonFrameworks.Net60; var net472Framework = FrameworkConstants.CommonFrameworks.Net472; var packageSpec = ProjectTestHelpers.GetPackageSpec(rootPath: "C:\\", projectName: "A", framework: net472Framework.GetShortFolderName(), dependencyName: "x"); var envVarWrapper = new TestEnvironmentVariableReader(new Dictionary <string, string> { { "NUGET_USE_LEGACY_ASSET_TARGET_FALLBACK_DEPENDENCY_RESOLUTION", assetTargetFallbackEnvironmentVariableValue } }); var dependencyProvider = new PackageSpecReferenceDependencyProvider(new List <ExternalProjectReference>(), NullLogger.Instance, envVarWrapper); var assetTargetFallback = new AssetTargetFallbackFramework(net60Framework, new List <NuGetFramework> { net472Framework }); // Act var dependencies = dependencyProvider.GetSpecDependencies(packageSpec, assetTargetFallback); // Assert dependencies.Should().HaveCount(dependencyCount); if (dependencyCount > 0) { dependencies[0].Name.Should().Be("x"); } }