2using Microsoft.VisualStudio.TestTools.UnitTesting;
5using System.Threading.Tasks;
16 var diagnostics = analyzer.SupportedDiagnostics;
17 Assert.AreEqual(2, diagnostics.Length);
19 var ctorHasParametersDiagnostic = diagnostics.Single(_ => _.Id == Constants.AnalyzerIdentifiers.ConstructorHasParameters);
20 Assert.AreEqual(ConstructorHasParametersConstants.Title, ctorHasParametersDiagnostic.Title.ToString(),
21 nameof(DiagnosticDescriptor.Title));
22 Assert.AreEqual(ConstructorHasParametersConstants.Message, ctorHasParametersDiagnostic.MessageFormat.ToString(),
23 nameof(DiagnosticDescriptor.MessageFormat));
24 Assert.AreEqual(Constants.Categories.Usage, ctorHasParametersDiagnostic.Category,
25 nameof(DiagnosticDescriptor.Category));
26 Assert.AreEqual(DiagnosticSeverity.Warning, ctorHasParametersDiagnostic.DefaultSeverity,
27 nameof(DiagnosticDescriptor.DefaultSeverity));
28 Assert.AreEqual(HelpUrlBuilder.Build(Constants.AnalyzerIdentifiers.ConstructorHasParameters, nameof(
CheckConstructorsAnalyzer)),
29 ctorHasParametersDiagnostic.HelpLinkUri,
30 nameof(DiagnosticDescriptor.HelpLinkUri));
32 var publicNoArgsCtorDiagnostic = diagnostics.Single(_ => _.Id == Constants.AnalyzerIdentifiers.PublicNoArgumentConstructorIsMissing);
33 Assert.AreEqual(PublicNoArgumentConstructorIsMissingConstants.Title, publicNoArgsCtorDiagnostic.Title.ToString(),
34 nameof(DiagnosticDescriptor.Title));
35 Assert.AreEqual(PublicNoArgumentConstructorIsMissingConstants.Message, publicNoArgsCtorDiagnostic.MessageFormat.ToString(),
36 nameof(DiagnosticDescriptor.MessageFormat));
37 Assert.AreEqual(Constants.Categories.Usage, publicNoArgsCtorDiagnostic.Category,
38 nameof(DiagnosticDescriptor.Category));
39 Assert.AreEqual(DiagnosticSeverity.Error, publicNoArgsCtorDiagnostic.DefaultSeverity,
40 nameof(DiagnosticDescriptor.DefaultSeverity));
41 Assert.AreEqual(HelpUrlBuilder.Build(Constants.AnalyzerIdentifiers.PublicNoArgumentConstructorIsMissing, nameof(
CheckConstructorsAnalyzer)),
42 publicNoArgsCtorDiagnostic.HelpLinkUri,
43 nameof(DiagnosticDescriptor.HelpLinkUri));
49 var code =
"public class A { }";
59public class A : BusinessBase<A> { }";
69public class A : BusinessBase<A>
74 new[] { Constants.AnalyzerIdentifiers.PublicNoArgumentConstructorIsMissing },
75 diagnostics => Assert.AreEqual(
true.ToString(), diagnostics[0].Properties[PublicNoArgumentConstructorIsMissingConstants.HasNonPublicNoArgumentConstructor]));
84public class A : BusinessBase<A>
89 new[] { Constants.AnalyzerIdentifiers.PublicNoArgumentConstructorIsMissing },
90 diagnostics => Assert.AreEqual(
false.ToString(), diagnostics[0].Properties[PublicNoArgumentConstructorIsMissingConstants.HasNonPublicNoArgumentConstructor]));
99public class A : BusinessBase<A>
105 new[] { Constants.AnalyzerIdentifiers.ConstructorHasParameters },
106 diagnostics => Assert.AreEqual(0, diagnostics[0].Properties.Count));
115public class A : BusinessBase<A>
120 new[] { Constants.AnalyzerIdentifiers.ConstructorHasParameters, Constants.AnalyzerIdentifiers.PublicNoArgumentConstructorIsMissing },
121 diagnostics => Assert.AreEqual(0, diagnostics[0].Properties.Count));
130public class A : BusinessBase<A>
137 new[] { Constants.AnalyzerIdentifiers.PublicNoArgumentConstructorIsMissing },
138 diagnostics => Assert.AreEqual(
false.ToString(), diagnostics[0].Properties[PublicNoArgumentConstructorIsMissingConstants.HasNonPublicNoArgumentConstructor]));
147public class A : BusinessBase<A> { }
149public class B : BusinessListBase<B, A>
156 new[] { Constants.AnalyzerIdentifiers.ConstructorHasParameters },
157 diagnostics => Assert.AreEqual(0, diagnostics[0].Properties.Count));
166public class A : BusinessBase<A> { }
168public class B : DynamicListBase<A>
175 new[] { Constants.AnalyzerIdentifiers.ConstructorHasParameters },
176 diagnostics => Assert.AreEqual(0, diagnostics[0].Properties.Count));
185public class A : BusinessBase<A> { }
188 : BusinessBindingListBase<B, A>
195 new[] { Constants.AnalyzerIdentifiers.ConstructorHasParameters },
196 diagnostics => Assert.AreEqual(0, diagnostics[0].Properties.Count));
205public class A : CommandBase<A>
async Task AnalyzeWhenClassIsStereotypeAndHasPrivateNoArgumentConstructor()
async Task AnalyzeWhenClassIsNotStereotype()
async Task AnalyzeWhenClassIsStereotypeAndHasPublicNoArgumentConstructor()
async Task AnalyzeWhenClassIsDynamicListBaseAndHasPublicConstructorWithArguments()
async Task AnalyzeWhenClassIsCommandBaseAndHasPublicConstructorWithArguments()
void VerifySupportedDiagnostics()
async Task AnalyzeWhenClassIsStereotypeAndHasNoPublicNoArgumentConstructorAndPublicConstructorWithArguments()
async Task AnalyzeWhenClassIsBusinessBindingListBaseAndHasPublicConstructorWithArguments()
async Task AnalyzeWhenClassIsStereotypeAndHasStaticConstructor()
async Task AnalyzeWhenClassIsStereotypeAndHasPublicNoArgumentConstructorAndPublicConstructorWithArguments()
async Task AnalyzeWhenClassIsStereotypeAndHasPrivateConstructorWithArguments()
async Task AnalyzeWhenClassIsBusinessListBaseAndHasPublicConstructorWithArguments()