aboutsummaryrefslogtreecommitdiff
path: root/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator')
-rw-r--r--src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/CSharpSourceGeneratorVerifier.cs45
-rw-r--r--src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/DncHostGeneratorTests.cs91
-rw-r--r--src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/WixToolsetTest.Dnc.HostGenerator.csproj23
3 files changed, 0 insertions, 159 deletions
diff --git a/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/CSharpSourceGeneratorVerifier.cs b/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/CSharpSourceGeneratorVerifier.cs
deleted file mode 100644
index 27729ac8..00000000
--- a/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/CSharpSourceGeneratorVerifier.cs
+++ /dev/null
@@ -1,45 +0,0 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolsetTest.Dnc.HostGenerator
4{
5 using System;
6 using System.Collections.Immutable;
7 using Microsoft.CodeAnalysis;
8 using Microsoft.CodeAnalysis.CSharp;
9 using Microsoft.CodeAnalysis.CSharp.Testing;
10 using Microsoft.CodeAnalysis.Testing.Verifiers;
11
12 public static class CSharpSourceGeneratorVerifier<TSourceGenerator>
13 where TSourceGenerator : ISourceGenerator, new()
14 {
15 public class Test : CSharpSourceGeneratorTest<TSourceGenerator, XUnitVerifier>
16 {
17 public Test()
18 {
19 }
20
21 protected override CompilationOptions CreateCompilationOptions()
22 {
23 var compilationOptions = base.CreateCompilationOptions();
24 return compilationOptions.WithSpecificDiagnosticOptions(
25 compilationOptions.SpecificDiagnosticOptions.SetItems(GetNullableWarningsFromCompiler()));
26 }
27
28 public LanguageVersion LanguageVersion { get; set; } = LanguageVersion.Default;
29
30 private static ImmutableDictionary<string, ReportDiagnostic> GetNullableWarningsFromCompiler()
31 {
32 string[] args = { "/warnaserror:nullable" };
33 var commandLineArguments = CSharpCommandLineParser.Default.Parse(args, baseDirectory: Environment.CurrentDirectory, sdkDirectory: Environment.CurrentDirectory);
34 var nullableWarnings = commandLineArguments.CompilationOptions.SpecificDiagnosticOptions;
35
36 return nullableWarnings;
37 }
38
39 protected override ParseOptions CreateParseOptions()
40 {
41 return ((CSharpParseOptions)base.CreateParseOptions()).WithLanguageVersion(this.LanguageVersion);
42 }
43 }
44 }
45}
diff --git a/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/DncHostGeneratorTests.cs b/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/DncHostGeneratorTests.cs
deleted file mode 100644
index ae55b2b5..00000000
--- a/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/DncHostGeneratorTests.cs
+++ /dev/null
@@ -1,91 +0,0 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolsetTest.Dnc.HostGenerator
4{
5 using System;
6 using System.Text;
7 using System.Threading.Tasks;
8 using Microsoft.CodeAnalysis;
9 using Microsoft.CodeAnalysis.Testing;
10 using Microsoft.CodeAnalysis.Text;
11 using WixToolset.Dnc.HostGenerator;
12 using WixToolset.Mba.Core;
13 using Xunit;
14
15 using VerifyCS = CSharpSourceGeneratorVerifier<WixToolset.Dnc.HostGenerator.DncHostGenerator>;
16
17 public class DncHostGeneratorTests
18 {
19 static readonly MetadataReference MbaCoreAssembly = MetadataReference.CreateFromFile(typeof(BootstrapperApplicationFactoryAttribute).Assembly.Location);
20
21 // https://github.com/dotnet/roslyn/blob/main/docs/features/source-generators.cookbook.md#unit-testing-of-generators
22 [Fact]
23 public async Task FailsBuildWhenMissingAttribute()
24 {
25 var code = @"
26//[assembly: WixToolset.Mba.Core.BootstrapperApplicationFactory(typeof(Test.BAFactory))]
27namespace Test
28{
29 using WixToolset.Mba.Core;
30
31 public class BAFactory : BaseBootstrapperApplicationFactory
32 {
33 protected override IBootstrapperApplication Create(IEngine engine, IBootstrapperCommand bootstrapperCommand)
34 {
35 return null;
36 }
37 }
38}
39";
40
41 await new VerifyCS.Test
42 {
43 TestState =
44 {
45 Sources = { code },
46 ReferenceAssemblies = ReferenceAssemblies.Net.Net60,
47 AdditionalReferences = { MbaCoreAssembly },
48 ExpectedDiagnostics =
49 {
50 new DiagnosticResult(DncHostGenerator.MissingFactoryAttributeDescriptor),
51 },
52 },
53 }.RunAsync();
54 }
55
56 [Fact]
57 public async Task GeneratesEntryPoint()
58 {
59 var code = @"
60[assembly: WixToolset.Mba.Core.BootstrapperApplicationFactory(typeof(Test.BAFactory))]
61namespace Test
62{
63 using WixToolset.Mba.Core;
64
65 public class BAFactory : BaseBootstrapperApplicationFactory
66 {
67 protected override IBootstrapperApplication Create(IEngine engine, IBootstrapperCommand bootstrapperCommand)
68 {
69 return null;
70 }
71 }
72}
73";
74 var generated = String.Format(DncHostGenerator.Template, DncHostGenerator.Version, "Test.BAFactory");
75
76 await new VerifyCS.Test
77 {
78 TestState =
79 {
80 Sources = { code },
81 GeneratedSources =
82 {
83 (typeof(DncHostGenerator), "WixToolset.Dnc.Host.g.cs", SourceText.From(generated, Encoding.UTF8, SourceHashAlgorithm.Sha256)),
84 },
85 ReferenceAssemblies = ReferenceAssemblies.Net.Net60,
86 AdditionalReferences = { MbaCoreAssembly },
87 },
88 }.RunAsync();
89 }
90 }
91}
diff --git a/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/WixToolsetTest.Dnc.HostGenerator.csproj b/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/WixToolsetTest.Dnc.HostGenerator.csproj
deleted file mode 100644
index 1cbf702d..00000000
--- a/src/ext/Bal/test/WixToolsetTest.Dnc.HostGenerator/WixToolsetTest.Dnc.HostGenerator.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework>
7 <IsWixTestProject>true</IsWixTestProject>
8 </PropertyGroup>
9
10 <ItemGroup>
11 <ProjectReference Include="..\..\WixToolset.Dnc.HostGenerator\WixToolset.Dnc.HostGenerator.csproj" />
12 </ItemGroup>
13
14 <ItemGroup>
15 <PackageReference Include="WixInternal.TestSupport" />
16 <PackageReference Include="WixToolset.Mba.Core" />
17 </ItemGroup>
18
19 <ItemGroup>
20 <PackageReference Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.XUnit" />
21 <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" />
22 </ItemGroup>
23</Project>