GivenThatWeWantToBuildANetStandard2Library.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Licensed to the .NET Foundation under one or more agreements.
  2. // The .NET Foundation licenses this file to you under the MIT license.
  3. namespace Microsoft.NET.Build.Tests
  4. {
  5. public class GivenThatWeWantToBuildANetStandard2Library : SdkTest
  6. {
  7. public GivenThatWeWantToBuildANetStandard2Library(ITestOutputHelper log) : base(log)
  8. {
  9. }
  10. [Theory]
  11. [InlineData("netstandard2.0")]
  12. [InlineData("netstandard2.1")]
  13. public void It_builds_a_netstandard2_library_successfully(string targetFramework)
  14. {
  15. TestProject project = new()
  16. {
  17. Name = "NetStandard2Library",
  18. TargetFrameworks = targetFramework,
  19. };
  20. var testAsset = _testAssetsManager.CreateTestProject(project, identifier: targetFramework);
  21. var buildCommand = new BuildCommand(testAsset);
  22. buildCommand
  23. .Execute()
  24. .Should()
  25. .Pass();
  26. }
  27. [Fact]
  28. public void It_resolves_assembly_conflicts()
  29. {
  30. TestProject project = new()
  31. {
  32. Name = "NetStandard2Library",
  33. TargetFrameworks = "netstandard2.0",
  34. };
  35. project.SourceFiles[project.Name + ".cs"] = $@"
  36. using System;
  37. public static class {project.Name}
  38. {{
  39. {ConflictResolutionAssets.ConflictResolutionTestMethod}
  40. }}";
  41. var testAsset = _testAssetsManager.CreateTestProject(project)
  42. .WithProjectChanges(p =>
  43. {
  44. var ns = p.Root.Name.Namespace;
  45. var itemGroup = new XElement(ns + "ItemGroup");
  46. p.Root.Add(itemGroup);
  47. foreach (var dependency in ConflictResolutionAssets.ConflictResolutionDependencies)
  48. {
  49. itemGroup.Add(new XElement(ns + "PackageReference",
  50. new XAttribute("Include", dependency.Item1),
  51. new XAttribute("Version", dependency.Item2)));
  52. }
  53. });
  54. var buildCommand = new BuildCommand(testAsset);
  55. buildCommand
  56. .Execute()
  57. .Should()
  58. .Pass();
  59. }
  60. }
  61. }