123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- // Licensed to the .NET Foundation under one or more agreements.
- // The .NET Foundation licenses this file to you under the MIT license.
- using Microsoft.DotNet.Cli.Utils;
- namespace Microsoft.NET.Build.Tests
- {
- public class GivenThatWeWantToFilterSatelliteAssemblies : SdkTest
- {
- public GivenThatWeWantToFilterSatelliteAssemblies(ITestOutputHelper log) : base(log)
- {
- }
- [Theory]
- [InlineData("netcoreapp2.0", true, false)]
- [InlineData("netcoreapp3.0", false, false)]
- [InlineData("net47", false, true)]
- public void It_only_publish_selected_ResourceLanguages(string targetFramework, bool explicitCopyLocalLockFile,
- bool needsNetFrameworkReferenceAssemblies)
- {
- if (needsNetFrameworkReferenceAssemblies && !RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
- {
- // .NET Framework reference assemblies aren't currently available on non-Windows
- return;
- }
- var testProject = new TestProject()
- {
- Name = "FilterSatelliteAssemblies",
- TargetFrameworks = targetFramework,
- IsExe = true,
- };
- testProject.PackageReferences.Add(new TestPackageReference("System.Spatial", "5.8.3"));
- testProject.AdditionalProperties.Add("SatelliteResourceLanguages", "en-US;it;fr");
- if (explicitCopyLocalLockFile)
- {
- testProject.AdditionalProperties.Add("CopyLocalLockFileAssemblies", "true");
- }
- var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework);
- var buildCommand = new BuildCommand(testProjectInstance);
- var buildResult = buildCommand.Execute();
- buildResult.Should().Pass();
- var outputDirectory = buildCommand.GetOutputDirectory(targetFramework: testProject.TargetFrameworks);
- List<string> expectedFiles = new()
- {
- "it/System.Spatial.resources.dll",
- "fr/System.Spatial.resources.dll",
- "System.Spatial.dll",
- $"{testProject.Name}.pdb",
- };
- if (testProject.TargetFrameworks.StartsWith("netcoreapp"))
- {
- expectedFiles.AddRange(new[]
- {
- $"{testProject.Name}.dll",
- $"{testProject.Name}.deps.json",
- $"{testProject.Name}.runtimeconfig.json",
- $"{testProject.Name}.runtimeconfig.dev.json"
- });
- if (testProject.TargetFrameworks == "netcoreapp3.0")
- {
- expectedFiles.Add($"{testProject.Name}{Constants.ExeSuffix}");
- }
- }
- else
- {
- expectedFiles.Add($"{testProject.Name}.exe");
- expectedFiles.Add($"{testProject.Name}.exe.config");
- }
- outputDirectory.Should().OnlyHaveFiles(expectedFiles);
- }
- [Theory]
- [InlineData("netcoreapp2.0", true, false)]
- [InlineData("net47", false, true)]
- public void It_copies_all_satellites_when_not_filtered(string targetFramework, bool explicitCopyLocalLockFile,
- bool needsNetFrameworkReferenceAssemblies)
- {
- if (needsNetFrameworkReferenceAssemblies && !RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
- {
- // .NET Framework reference assemblies aren't currently available on non-Windows
- return;
- }
- var testProject = new TestProject()
- {
- Name = "DontFilterSatelliteAssemblies",
- TargetFrameworks = targetFramework,
- IsExe = true,
- };
- testProject.PackageReferences.Add(new TestPackageReference("System.Spatial", "5.8.3"));
- if (explicitCopyLocalLockFile)
- {
- testProject.AdditionalProperties.Add("CopyLocalLockFileAssemblies", "true");
- }
- var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework);
- var buildCommand = new BuildCommand(testProjectInstance);
- var buildResult = buildCommand.Execute();
- buildResult.Should().Pass();
- var outputDirectory = buildCommand.GetOutputDirectory(targetFramework: testProject.TargetFrameworks);
- List<string> expectedFiles = new()
- {
- "de/System.Spatial.resources.dll",
- "es/System.Spatial.resources.dll",
- "fr/System.Spatial.resources.dll",
- "it/System.Spatial.resources.dll",
- "ja/System.Spatial.resources.dll",
- "ko/System.Spatial.resources.dll",
- "ru/System.Spatial.resources.dll",
- "zh-Hans/System.Spatial.resources.dll",
- "zh-Hant/System.Spatial.resources.dll",
- "System.Spatial.dll",
- $"{testProject.Name}.pdb",
- };
- if (testProject.TargetFrameworks.StartsWith("netcoreapp"))
- {
- expectedFiles.AddRange(new[]
- {
- $"{testProject.Name}.dll",
- $"{testProject.Name}.deps.json",
- $"{testProject.Name}.runtimeconfig.json",
- $"{testProject.Name}.runtimeconfig.dev.json"
- });
- }
- else
- {
- expectedFiles.Add($"{testProject.Name}.exe");
- expectedFiles.Add($"{testProject.Name}.exe.config");
- }
- outputDirectory.Should().OnlyHaveFiles(expectedFiles);
- }
- }
- }
|