2016-09-26 21:40:11 -07:00
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using Microsoft.Build.Construction ;
using Microsoft.DotNet.Tools.Test.Utilities ;
using System.Linq ;
using Xunit ;
using FluentAssertions ;
2016-10-10 14:24:49 -07:00
using Microsoft.DotNet.ProjectJsonMigration ;
2016-09-26 21:40:11 -07:00
using Microsoft.DotNet.ProjectJsonMigration.Rules ;
using System ;
namespace Microsoft.DotNet.ProjectJsonMigration.Tests
{
2016-10-28 17:22:58 -07:00
public class GivenThatIWantToMigratePackageDependencies : PackageDependenciesTestBase
2016-09-26 21:40:11 -07:00
{
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesBasicPackageReference ( )
2016-09-26 21:40:11 -07:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-09-26 21:40:11 -07:00
{
"" dependencies "" : {
"" APackage "" : "" 1.0 . 0 - preview "" ,
"" BPackage "" : "" 1.0 . 0 ""
}
} ");
2016-12-30 15:34:00 +05:30
EmitsPackageReferences ( mockProj , Tuple . Create ( "APackage" , "1.0.0-preview" , "" ) , Tuple . Create ( "BPackage" , "1.0.0" , "" ) ) ;
2016-09-26 21:40:11 -07:00
}
2016-10-10 14:24:49 -07:00
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesTypeBuildToPrivateAssets ( )
2016-10-10 14:24:49 -07:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-10 14:24:49 -07:00
{
"" dependencies "" : {
"" APackage "" : {
"" version "" : "" 1.0 . 0 - preview "" ,
"" type "" : "" build ""
}
}
} ");
2016-10-10 16:19:57 -07:00
2016-10-10 14:24:49 -07:00
var packageRef = mockProj . Items . First ( i = > i . Include = = "APackage" & & i . ItemType = = "PackageReference" ) ;
var privateAssetsMetadata = packageRef . GetMetadataWithName ( "PrivateAssets" ) ;
2016-10-10 16:19:57 -07:00
privateAssetsMetadata . Value . Should ( ) . NotBeNull ( ) ;
2016-10-10 14:24:49 -07:00
privateAssetsMetadata . Value . Should ( ) . Be ( "All" ) ;
}
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesSuppressParentArrayToPrivateAssets ( )
2016-10-10 14:24:49 -07:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-10 14:24:49 -07:00
{
"" dependencies "" : {
"" APackage "" : {
"" version "" : "" 1.0 . 0 - preview "" ,
"" suppressParent "" : [ "" runtime "" , "" native "" ]
}
}
} ");
2016-10-10 16:19:57 -07:00
var packageRef = mockProj . Items . First ( i = > i . Include = = "APackage" & & i . ItemType = = "PackageReference" ) ;
var privateAssetsMetadata = packageRef . GetMetadataWithName ( "PrivateAssets" ) ;
privateAssetsMetadata . Value . Should ( ) . NotBeNull ( ) ;
privateAssetsMetadata . Value . Should ( ) . Be ( "Native;Runtime" ) ;
}
2016-10-10 14:24:49 -07:00
2016-10-10 16:19:57 -07:00
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesSuppressParentStringToPrivateAssets ( )
2016-10-10 16:19:57 -07:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-10 16:19:57 -07:00
{
"" dependencies "" : {
"" APackage "" : {
"" version "" : "" 1.0 . 0 - preview "" ,
"" suppressParent "" : "" runtime ""
}
}
} ");
2016-10-10 14:24:49 -07:00
var packageRef = mockProj . Items . First ( i = > i . Include = = "APackage" & & i . ItemType = = "PackageReference" ) ;
var privateAssetsMetadata = packageRef . GetMetadataWithName ( "PrivateAssets" ) ;
2016-10-10 16:19:57 -07:00
privateAssetsMetadata . Value . Should ( ) . NotBeNull ( ) ;
privateAssetsMetadata . Value . Should ( ) . Be ( "Runtime" ) ;
2016-10-10 14:24:49 -07:00
}
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesIncludeExcludeArraysToIncludeAssets ( )
2016-10-10 14:24:49 -07:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-10 14:24:49 -07:00
{
"" dependencies "" : {
"" APackage "" : {
"" version "" : "" 1.0 . 0 - preview "" ,
"" include "" : [ "" compile "" , "" runtime "" , "" native "" ] ,
"" exclude "" : [ "" native "" ]
}
}
} ");
2016-10-10 16:19:57 -07:00
var packageRef = mockProj . Items . First ( i = > i . Include = = "APackage" & & i . ItemType = = "PackageReference" ) ;
2016-10-10 14:24:49 -07:00
2016-10-10 16:19:57 -07:00
var includeAssetsMetadata = packageRef . GetMetadataWithName ( "IncludeAssets" ) ;
includeAssetsMetadata . Value . Should ( ) . NotBeNull ( ) ;
includeAssetsMetadata . Value . Should ( ) . Be ( "Compile;Runtime" ) ;
}
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesIncludeStringToIncludeAssets ( )
2016-10-10 16:19:57 -07:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-10 16:19:57 -07:00
{
"" dependencies "" : {
"" APackage "" : {
"" version "" : "" 1.0 . 0 - preview "" ,
"" include "" : "" compile "" ,
"" exclude "" : "" runtime ""
}
}
} ");
2016-10-10 14:24:49 -07:00
var packageRef = mockProj . Items . First ( i = > i . Include = = "APackage" & & i . ItemType = = "PackageReference" ) ;
2016-10-10 16:19:57 -07:00
var includeAssetsMetadata = packageRef . GetMetadataWithName ( "IncludeAssets" ) ;
includeAssetsMetadata . Value . Should ( ) . NotBeNull ( ) ;
includeAssetsMetadata . Value . Should ( ) . Be ( "Compile" ) ;
2016-10-10 14:24:49 -07:00
}
2016-10-10 16:19:57 -07:00
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesIncludeExcludeOverlappingStringsToIncludeAssets ( )
2016-10-10 16:19:57 -07:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-10 16:19:57 -07:00
{
"" dependencies "" : {
"" APackage "" : {
"" version "" : "" 1.0 . 0 - preview "" ,
"" include "" : "" compile "" ,
"" exclude "" : "" compile "" ,
}
}
} ");
var packageRef = mockProj . Items . First ( i = > i . Include = = "APackage" & & i . ItemType = = "PackageReference" ) ;
var includeAssetsMetadata = packageRef . GetMetadataWithName ( "IncludeAssets" ) ;
includeAssetsMetadata . Value . Should ( ) . NotBeNull ( ) ;
includeAssetsMetadata . Value . Should ( ) . Be ( "None" ) ;
}
2016-10-05 11:36:23 -07:00
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesTools ( )
2016-10-05 11:36:23 -07:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-05 11:36:23 -07:00
{
"" tools "" : {
"" APackage "" : "" 1.0 . 0 - preview "" ,
"" BPackage "" : "" 1.0 . 0 ""
}
} ");
2016-12-30 15:34:00 +05:30
EmitsToolReferences ( mockProj , Tuple . Create ( "APackage" , "1.0.0-preview" ) , Tuple . Create ( "BPackage" , "1.0.0" ) ) ;
2016-10-05 11:36:23 -07:00
}
2016-10-11 15:22:18 -07:00
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesImportsPerFramework ( )
2016-10-11 15:22:18 -07:00
{
var importPropertyName = "PackageTargetFallback" ;
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-11 15:22:18 -07:00
{
"" frameworks "" : {
"" netcoreapp1 . 0 "" : {
"" imports "" : [ "" netstandard1 . 3 "" , "" net451 "" ]
} ,
"" netstandard1 . 3 "" : {
"" imports "" : [ "" net451 "" ]
} ,
"" net451 "" : {
"" imports "" : "" netstandard1 . 3 ""
}
2017-03-02 20:35:20 -08:00
}
2016-10-11 15:22:18 -07:00
} ");
var imports = mockProj . Properties . Where ( p = > p . Name = = importPropertyName ) ;
imports . Should ( ) . HaveCount ( 3 ) ;
var netcoreappImport = imports . First ( p = > p . Condition . Contains ( "netcoreapp1.0" ) ) ;
var netstandardImport = imports . First ( p = > p . Condition . Contains ( "netstandard1.3" ) ) ;
var net451Import = imports . First ( p = > p . Condition . Contains ( "net451" ) ) ;
netcoreappImport . Should ( ) . NotBe ( netstandardImport ) ;
netcoreappImport . Condition . Should ( ) . Be ( " '$(TargetFramework)' == 'netcoreapp1.0' " ) ;
netstandardImport . Condition . Should ( ) . Be ( " '$(TargetFramework)' == 'netstandard1.3' " ) ;
net451Import . Condition . Should ( ) . Be ( " '$(TargetFramework)' == 'net451' " ) ;
netcoreappImport . Value . Split ( ';' ) . Should ( ) . BeEquivalentTo ( $"$({importPropertyName})" , "netstandard1.3" , "net451" ) ;
netstandardImport . Value . Split ( ';' ) . Should ( ) . BeEquivalentTo ( $"$({importPropertyName})" , "net451" ) ;
net451Import . Value . Split ( ';' ) . Should ( ) . BeEquivalentTo ( $"$({importPropertyName})" , "netstandard1.3" ) ;
}
2016-10-18 01:02:10 +00:00
[Fact]
2017-01-04 12:25:48 -08:00
public void ItDoesNotAddConditionToPackageTargetFallBackWhenMigratingASingleTFM ( )
2017-01-03 17:16:05 -08:00
{
var importPropertyName = "PackageTargetFallback" ;
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2017-01-03 17:16:05 -08:00
{
"" frameworks "" : {
"" netcoreapp1 . 0 "" : {
"" imports "" : [ "" netstandard1 . 3 "" , "" net451 "" ]
}
}
} ");
var imports = mockProj . Properties . Where ( p = > p . Name = = importPropertyName ) ;
imports . Should ( ) . HaveCount ( 1 ) ;
imports . Single ( ) . Condition . Should ( ) . BeEmpty ( ) ;
}
[Fact]
public void ItAutoAddDesktopReferencesDuringMigrate ( )
2016-10-18 01:02:10 +00:00
{
2017-03-02 20:35:20 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-18 01:02:10 +00:00
{
"" frameworks "" : {
"" net35 "" : { } ,
"" net4 "" : { } ,
"" net451 "" : { }
}
} ");
var itemGroup = mockProj . ItemGroups . Where ( i = > i . Condition = = " '$(TargetFramework)' == 'net451' " ) ;
itemGroup . Should ( ) . HaveCount ( 1 ) ;
itemGroup . First ( ) . Items . Should ( ) . HaveCount ( 2 ) ;
var items = itemGroup . First ( ) . Items . ToArray ( ) ;
items [ 0 ] . Include . Should ( ) . Be ( "System" ) ;
items [ 1 ] . Include . Should ( ) . Be ( "Microsoft.CSharp" ) ;
itemGroup = mockProj . ItemGroups . Where ( i = > i . Condition = = " '$(TargetFramework)' == 'net40' " ) ;
itemGroup . Should ( ) . HaveCount ( 1 ) ;
itemGroup . First ( ) . Items . Should ( ) . HaveCount ( 2 ) ;
items = itemGroup . First ( ) . Items . ToArray ( ) ;
items [ 0 ] . Include . Should ( ) . Be ( "System" ) ;
items [ 1 ] . Include . Should ( ) . Be ( "Microsoft.CSharp" ) ;
itemGroup = mockProj . ItemGroups . Where ( i = > i . Condition = = " '$(TargetFramework)' == 'net35' " ) ;
itemGroup . Should ( ) . HaveCount ( 1 ) ;
itemGroup . First ( ) . Items . Should ( ) . HaveCount ( 1 ) ;
items = itemGroup . First ( ) . Items . ToArray ( ) ;
items [ 0 ] . Include . Should ( ) . Be ( "System" ) ;
}
2016-10-31 15:55:22 -07:00
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesTestProjectsToHaveTestSdk ( )
2016-10-31 15:55:22 -07:00
{
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
{
"" buildOptions "" : {
"" emitEntryPoint "" : true
} ,
"" frameworks "" : {
"" netcoreapp1 . 0 "" : { }
} ,
2016-11-02 08:49:45 -10:00
"" testRunner "" : "" somerunner ""
2016-10-31 15:55:22 -07:00
} ");
2016-10-31 20:50:52 -07:00
mockProj . Items . Should ( ) . ContainSingle (
2016-11-01 12:10:51 -10:00
i = > ( i . Include = = "Microsoft.NET.Test.Sdk" & &
i . ItemType = = "PackageReference" & &
2017-01-08 03:01:58 +05:30
i . GetMetadataWithName ( "Version" ) . Value = = "15.0.0-preview-20170106-08" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-10-31 15:55:22 -07:00
2016-10-31 20:50:52 -07:00
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "xunit" & & i . ItemType = = "PackageReference" ) ) ;
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "xunit.runner.visualstudio" & & i . ItemType = = "PackageReference" ) ) ;
2016-11-02 08:49:45 -10:00
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "MSTest.TestAdapter" & & i . ItemType = = "PackageReference" ) ) ;
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "MSTest.TestFramework" & & i . ItemType = = "PackageReference" ) ) ;
2016-10-31 15:55:22 -07:00
}
2016-10-31 13:59:47 -07:00
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesTestProjectsToHaveTestSdkAndXunitPackagedependencies ( )
2016-10-31 13:59:47 -07:00
{
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
{
"" buildOptions "" : {
"" emitEntryPoint "" : true
} ,
"" frameworks "" : {
"" netcoreapp1 . 0 "" : { }
} ,
"" testRunner "" : "" xunit ""
} ");
2016-10-31 20:50:52 -07:00
mockProj . Items . Should ( ) . ContainSingle (
2016-12-30 15:34:00 +05:30
i = > ( i . Include = = "Microsoft.NET.Test.Sdk" & &
2016-11-01 12:10:51 -10:00
i . ItemType = = "PackageReference" & &
2017-01-08 03:01:58 +05:30
i . GetMetadataWithName ( "Version" ) . Value = = "15.0.0-preview-20170106-08" ) & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ;
2016-10-31 20:50:52 -07:00
mockProj . Items . Should ( ) . ContainSingle (
2016-12-30 15:34:00 +05:30
i = > ( i . Include = = "xunit" & &
2016-11-01 12:10:51 -10:00
i . ItemType = = "PackageReference" & &
2017-01-16 13:08:40 -08:00
i . GetMetadataWithName ( "Version" ) . Value = = "2.2.0-beta5-build3474" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-10-31 13:59:47 -07:00
2016-10-31 20:50:52 -07:00
mockProj . Items . Should ( ) . ContainSingle (
2016-12-30 15:34:00 +05:30
i = > ( i . Include = = "xunit.runner.visualstudio" & &
2016-11-01 12:10:51 -10:00
i . ItemType = = "PackageReference" & &
2017-01-16 13:08:40 -08:00
i . GetMetadataWithName ( "Version" ) . Value = = "2.2.0-beta5-build1225" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-11-02 08:49:45 -10:00
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "MSTest.TestAdapter" & & i . ItemType = = "PackageReference" ) ) ;
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "MSTest.TestFramework" & & i . ItemType = = "PackageReference" ) ) ;
2016-11-01 12:10:51 -10:00
}
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesTestProjectsToHaveTestSdkAndXunitPackagedependenciesOverwriteExistingPackagedependencies ( )
2016-11-01 12:10:51 -10:00
{
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
{
"" buildOptions "" : {
"" emitEntryPoint "" : true
} ,
"" dependencies "" : {
"" xunit "" : "" 2.2 . 0 - beta3 - build3330 ""
} ,
"" frameworks "" : {
"" netcoreapp1 . 0 "" : { }
} ,
"" testRunner "" : "" xunit ""
} ");
mockProj . Items . Should ( ) . ContainSingle (
i = > ( i . Include = = "Microsoft.NET.Test.Sdk" & &
i . ItemType = = "PackageReference" & &
2017-01-08 03:01:58 +05:30
i . GetMetadataWithName ( "Version" ) . Value = = "15.0.0-preview-20170106-08" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-11-01 12:10:51 -10:00
mockProj . Items . Should ( ) . ContainSingle (
i = > ( i . Include = = "xunit" & &
i . ItemType = = "PackageReference" & &
2017-01-16 13:08:40 -08:00
i . GetMetadataWithName ( "Version" ) . Value = = "2.2.0-beta5-build3474" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-11-01 12:10:51 -10:00
mockProj . Items . Should ( ) . ContainSingle (
i = > ( i . Include = = "xunit.runner.visualstudio" & &
i . ItemType = = "PackageReference" & &
2017-01-16 13:08:40 -08:00
i . GetMetadataWithName ( "Version" ) . Value = = "2.2.0-beta5-build1225" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-11-02 08:49:45 -10:00
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "MSTest.TestAdapter" & & i . ItemType = = "PackageReference" ) ) ;
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "MSTest.TestFramework" & & i . ItemType = = "PackageReference" ) ) ;
}
[Fact]
2017-01-03 17:16:05 -08:00
public void ItMigratesTestProjectsToHaveTestSdkAndMstestPackagedependencies ( )
2016-11-02 08:49:45 -10:00
{
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
{
"" buildOptions "" : {
"" emitEntryPoint "" : true
} ,
"" frameworks "" : {
"" netcoreapp1 . 0 "" : { }
} ,
"" testRunner "" : "" mstest ""
} ");
mockProj . Items . Should ( ) . ContainSingle (
i = > ( i . Include = = "Microsoft.NET.Test.Sdk" & &
i . ItemType = = "PackageReference" & &
2017-01-08 03:01:58 +05:30
i . GetMetadataWithName ( "Version" ) . Value = = "15.0.0-preview-20170106-08" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-11-02 08:49:45 -10:00
mockProj . Items . Should ( ) . ContainSingle (
i = > ( i . Include = = "MSTest.TestAdapter" & &
i . ItemType = = "PackageReference" & &
2016-12-28 23:13:02 -08:00
i . GetMetadataWithName ( "Version" ) . Value = = "1.1.8-rc" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-11-02 08:49:45 -10:00
mockProj . Items . Should ( ) . ContainSingle (
i = > ( i . Include = = "MSTest.TestFramework" & &
i . ItemType = = "PackageReference" & &
2016-12-28 23:13:02 -08:00
i . GetMetadataWithName ( "Version" ) . Value = = "1.0.8-rc" & &
2016-12-16 19:13:37 -08:00
i . GetMetadataWithName ( "Version" ) . ExpressedAsAttribute ) ) ;
2016-11-02 08:49:45 -10:00
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "xunit" & & i . ItemType = = "PackageReference" ) ) ;
mockProj . Items . Should ( ) . NotContain (
i = > ( i . Include = = "xunit.runner.visualstudio" & & i . ItemType = = "PackageReference" ) ) ;
2016-10-31 13:59:47 -07:00
}
2017-01-27 19:47:57 -08:00
[Fact]
public void ItMigratesMicrosoftNETCoreAppMetaPackageToRuntimeFrameworkVersionProperty ( )
{
var mockProj = RunPackageDependenciesRuleOnPj (
@"{ ""dependencies"": { ""Microsoft.NETCore.App"" : { ""version"": ""1.1.0"", ""type"": ""build"" } } }" ) ;
mockProj . Items . Should ( ) . NotContain (
i = > i . Include = = "Microsoft.NETCore.App" & & i . ItemType = = "PackageReference" ) ;
2017-02-22 14:49:49 -08:00
mockProj . Properties . Should ( ) . ContainSingle ( p = > p . Name = = "RuntimeFrameworkVersion" ) . Which . Value . Should ( ) . Be ( "1.1.1" ) ;
2017-01-27 19:47:57 -08:00
}
[Fact]
public void ItMigratesMicrosoftNETCoreAppMetaPackageToRuntimeFrameworkVersionPropertyConditionedOnTFMWhenMultiTFM ( )
{
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-31 16:34:37 -07:00
{
"" frameworks "" : {
2017-01-27 19:47:57 -08:00
"" netcoreapp1 . 0 "" : {
2016-10-31 16:34:37 -07:00
"" dependencies "" : {
2017-01-27 19:47:57 -08:00
"" Microsoft . NETCore . App "" : "" 1.1 . 0 ""
2016-10-31 16:34:37 -07:00
}
2017-01-27 19:47:57 -08:00
} ,
"" netcoreapp1 . 1 "" : {
2016-10-31 16:34:37 -07:00
}
}
2017-01-27 19:47:57 -08:00
} ");
mockProj . Items . Should ( ) . NotContain (
i = > i . Include = = "Microsoft.NETCore.App" & & i . ItemType = = "PackageReference" ) ;
var runtimeFrameworkVersion = mockProj . Properties . Should ( ) . ContainSingle ( p = > p . Name = = "RuntimeFrameworkVersion" ) . Which ;
2017-02-22 14:49:49 -08:00
runtimeFrameworkVersion . Value . Should ( ) . Be ( "1.1.1" ) ;
2017-01-27 19:47:57 -08:00
runtimeFrameworkVersion . Condition . Should ( ) . Contain ( "netcoreapp1.0" ) ;
}
[Fact]
public void ItMigratesMicrosoftNETCoreAppMetaPackageToRuntimeFrameworkVersionPropertyWithNoConditionedOnTFMWhenSingleTFM ( )
{
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
{
"" frameworks "" : {
"" netcoreapp1 . 0 "" : {
"" dependencies "" : {
"" Microsoft . NETCore . App "" : "" 1.1 . 0 ""
}
}
}
} ");
mockProj . Items . Should ( ) . NotContain (
i = > i . Include = = "Microsoft.NETCore.App" & & i . ItemType = = "PackageReference" ) ;
var runtimeFrameworkVersion = mockProj . Properties . Should ( ) . ContainSingle ( p = > p . Name = = "RuntimeFrameworkVersion" ) . Which ;
2017-02-22 14:49:49 -08:00
runtimeFrameworkVersion . Value . Should ( ) . Be ( "1.1.1" ) ;
2017-01-27 19:47:57 -08:00
runtimeFrameworkVersion . Condition . Should ( ) . BeEmpty ( ) ;
}
[Fact]
public void ItMigratesNETStandardLibraryMetaPackageToNetStandardImplicitPackageVersionProperty ( )
{
var mockProj = RunPackageDependenciesRuleOnPj (
@"{ ""dependencies"": { ""NETStandard.Library"" : { ""version"": ""1.6.0"", ""type"": ""build"" } } }" ) ;
mockProj . Items . Should ( ) . NotContain (
i = > i . Include = = "NETStandard.Library" & & i . ItemType = = "PackageReference" ) ;
mockProj . Properties . Should ( ) . ContainSingle ( p = > p . Name = = "NetStandardImplicitPackageVersion" ) . Which . Value . Should ( ) . Be ( "1.6.0" ) ;
}
[Fact]
public void ItMigratesNETStandardLibraryMetaPackageToNetStandardImplicitPackageVersionPropertyConditionedOnTFMWhenMultiTFM ( )
{
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
2016-10-31 16:34:37 -07:00
{
"" frameworks "" : {
"" netstandard1 . 3 "" : {
"" dependencies "" : {
2017-01-27 19:47:57 -08:00
"" NETStandard . Library "" : "" 1.6 . 0 ""
2016-10-31 16:34:37 -07:00
}
2017-01-27 19:47:57 -08:00
} ,
"" netstandard1 . 5 "" : {
2016-10-31 16:34:37 -07:00
}
}
2017-01-27 19:47:57 -08:00
} ");
mockProj . Items . Should ( ) . NotContain (
i = > i . Include = = "NETStandard.Library" & & i . ItemType = = "PackageReference" ) ;
var netStandardImplicitPackageVersion =
mockProj . Properties . Should ( ) . ContainSingle ( p = > p . Name = = "NetStandardImplicitPackageVersion" ) . Which ;
netStandardImplicitPackageVersion . Value . Should ( ) . Be ( "1.6.0" ) ;
netStandardImplicitPackageVersion . Condition . Should ( ) . Contain ( "netstandard1.3" ) ;
}
[Fact]
public void ItMigratesNETStandardLibraryMetaPackageToNetStandardImplicitPackageVersionPropertyWithNoConditionOnTFMWhenSingleTFM ( )
2016-10-31 16:34:37 -07:00
{
2017-01-27 19:47:57 -08:00
var mockProj = RunPackageDependenciesRuleOnPj ( @ "
{
"" frameworks "" : {
"" netstandard1 . 3 "" : {
"" dependencies "" : {
"" NETStandard . Library "" : "" 1.6 . 0 ""
}
}
}
} ");
2016-10-31 16:34:37 -07:00
2017-01-27 19:47:57 -08:00
mockProj . Items . Should ( ) . NotContain (
i = > i . Include = = "NETStandard.Library" & & i . ItemType = = "PackageReference" ) ;
var netStandardImplicitPackageVersion =
mockProj . Properties . Should ( ) . ContainSingle ( p = > p . Name = = "NetStandardImplicitPackageVersion" ) . Which ;
netStandardImplicitPackageVersion . Value . Should ( ) . Be ( "1.6.0" ) ;
netStandardImplicitPackageVersion . Condition . Should ( ) . BeEmpty ( ) ;
2016-10-31 16:34:37 -07:00
}
2016-09-26 21:40:11 -07:00
}
2017-03-02 20:35:20 -08:00
}