From 423108a7dc03c132cfba6e2c73a5fd777b39385a Mon Sep 17 00:00:00 2001 From: Thom Lamb Date: Wed, 27 May 2026 15:08:48 -0500 Subject: [PATCH] chore(sonar)!: mark Markdown generator classes as 'public static class' (S1118) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After the CA1822 cascade in #15 left every method on the eight Markdown generator classes static, the classes themselves were instantiable shells that consumers couldn't usefully `new`. This commit flips the `class` modifier to `static class` on all eight: - `Markdown.SqlServer.QueryBreakdownGenerator` - `Markdown.SqlServer.SqlStatementGenerator` - `Markdown.LinqToSql.QueryBreakdownGenerator` - `Markdown.LinqToSql.SqlStatementGenerator` - `Markdown.PostgreSql.QueryBreakdownGenerator` - `Markdown.PostgreSql.SqlStatementGenerator` - `Markdown.Snowflake.QueryBreakdownGenerator` - `Markdown.Snowflake.SqlStatementGenerator` Test fixtures drop the now-meaningless `_generator = new …()` field and `[SetUp]` (kept the existing Setup body where unrelated state was also initialized — `QueryMarkdownGenerationTests` and `LinqToSql.QueryBreakdownGeneratorTests`). BREAKING CHANGE: External NuGet consumers can no longer write `new Markdown.Snowflake.SqlStatementGenerator()` (or any of the other seven classes above) — the type is now a static container and may only be referenced by name, e.g. `Markdown.Snowflake.SqlStatementGenerator.GenerateSequenceDiagram(…)`. The call syntax for the static methods is unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../LinqToSql/QueryBreakdownGenerator.cs | 2 +- .../LinqToSql/SqlStatementGenerator.cs | 2 +- .../PostgreSql/QueryBreakdownGenerator.cs | 2 +- .../PostgreSql/SqlStatementGenerator.cs | 2 +- .../Snowflake/QueryBreakdownGenerator.cs | 2 +- .../Snowflake/SqlStatementGenerator.cs | 2 +- .../SqlServer/QueryBreakdownGenerator.cs | 2 +- .../SqlServer/SqlStatementGenerator.cs | 2 +- .../LinqToSql/QueryBreakdownGeneratorTests.cs | 2 -- .../LinqToSql/SqlStatementGeneratorTests.cs | 8 -------- .../PostgreSql/QueryBreakdownGeneratorTests.cs | 8 -------- .../PostgreSql/SqlStatementGeneratorTests.cs | 8 -------- .../Snowflake/QueryBreakdownGeneratorTests.cs | 8 -------- .../Snowflake/SqlStatementGeneratorTests.cs | 8 -------- .../SqlServer/QueryBreakdownGeneratorTests.cs | 8 -------- .../SqlServer/QueryMarkdownGenerationTests.cs | 3 --- .../SqlServer/SqlStatementGeneratorTests.cs | 8 -------- 17 files changed, 8 insertions(+), 69 deletions(-) diff --git a/src/Strata.SqlTools.Markdown/LinqToSql/QueryBreakdownGenerator.cs b/src/Strata.SqlTools.Markdown/LinqToSql/QueryBreakdownGenerator.cs index e00c19a..3a013b3 100644 --- a/src/Strata.SqlTools.Markdown/LinqToSql/QueryBreakdownGenerator.cs +++ b/src/Strata.SqlTools.Markdown/LinqToSql/QueryBreakdownGenerator.cs @@ -6,7 +6,7 @@ namespace Strata.SqlTools.Markdown.LinqToSql; /// Generates Mermaid diagram markdown from LINQ to SQL QueryBreakdown objects. /// Creates flowchart visualizations showing the LINQ query structure and flow. /// -public class QueryBreakdownGenerator +public static class QueryBreakdownGenerator { /// /// Generates a Mermaid flowchart diagram from a LINQ to SQL QueryBreakdown. diff --git a/src/Strata.SqlTools.Markdown/LinqToSql/SqlStatementGenerator.cs b/src/Strata.SqlTools.Markdown/LinqToSql/SqlStatementGenerator.cs index b3e8814..da7b166 100644 --- a/src/Strata.SqlTools.Markdown/LinqToSql/SqlStatementGenerator.cs +++ b/src/Strata.SqlTools.Markdown/LinqToSql/SqlStatementGenerator.cs @@ -8,7 +8,7 @@ namespace Strata.SqlTools.Markdown.LinqToSql; /// Generates Mermaid diagrams for LINQ to SQL statements, including sequence diagrams /// for statement execution flow and entity-relationship diagrams. /// -public class SqlStatementGenerator +public static class SqlStatementGenerator { /// /// Generates a Mermaid sequence diagram showing LINQ to SQL statement execution flow. diff --git a/src/Strata.SqlTools.Markdown/PostgreSql/QueryBreakdownGenerator.cs b/src/Strata.SqlTools.Markdown/PostgreSql/QueryBreakdownGenerator.cs index f467bb1..d9f5fd0 100644 --- a/src/Strata.SqlTools.Markdown/PostgreSql/QueryBreakdownGenerator.cs +++ b/src/Strata.SqlTools.Markdown/PostgreSql/QueryBreakdownGenerator.cs @@ -6,7 +6,7 @@ namespace Strata.SqlTools.Markdown.PostgreSql; /// Generates Mermaid diagram markdown from PostgreSQL SQL QueryBreakdown objects. /// Creates flowchart visualizations showing the query structure and flow. /// -public class QueryBreakdownGenerator +public static class QueryBreakdownGenerator { /// /// Generates a Mermaid flowchart diagram from a PostgreSQL QueryBreakdown. diff --git a/src/Strata.SqlTools.Markdown/PostgreSql/SqlStatementGenerator.cs b/src/Strata.SqlTools.Markdown/PostgreSql/SqlStatementGenerator.cs index dbcf677..34d61ec 100644 --- a/src/Strata.SqlTools.Markdown/PostgreSql/SqlStatementGenerator.cs +++ b/src/Strata.SqlTools.Markdown/PostgreSql/SqlStatementGenerator.cs @@ -6,7 +6,7 @@ namespace Strata.SqlTools.Markdown.PostgreSql; /// Generates Mermaid diagrams for PostgreSQL SQL statements, including sequence diagrams /// for statement execution flow and entity-relationship diagrams. /// -public class SqlStatementGenerator +public static class SqlStatementGenerator { /// /// Generates a Mermaid sequence diagram showing PostgreSQL SQL statement execution flow. diff --git a/src/Strata.SqlTools.Markdown/Snowflake/QueryBreakdownGenerator.cs b/src/Strata.SqlTools.Markdown/Snowflake/QueryBreakdownGenerator.cs index c6d197a..b2d5c2d 100644 --- a/src/Strata.SqlTools.Markdown/Snowflake/QueryBreakdownGenerator.cs +++ b/src/Strata.SqlTools.Markdown/Snowflake/QueryBreakdownGenerator.cs @@ -6,7 +6,7 @@ namespace Strata.SqlTools.Markdown.Snowflake; /// Generates Mermaid diagram markdown from Snowflake SQL QueryBreakdown objects. /// Creates flowchart visualizations showing the query structure and flow. /// -public class QueryBreakdownGenerator +public static class QueryBreakdownGenerator { /// /// Generates a Mermaid flowchart diagram from a Snowflake QueryBreakdown. diff --git a/src/Strata.SqlTools.Markdown/Snowflake/SqlStatementGenerator.cs b/src/Strata.SqlTools.Markdown/Snowflake/SqlStatementGenerator.cs index c5abdd6..16a40ad 100644 --- a/src/Strata.SqlTools.Markdown/Snowflake/SqlStatementGenerator.cs +++ b/src/Strata.SqlTools.Markdown/Snowflake/SqlStatementGenerator.cs @@ -6,7 +6,7 @@ namespace Strata.SqlTools.Markdown.Snowflake; /// Generates Mermaid diagrams for Snowflake SQL statements, including sequence diagrams /// for statement execution flow and entity-relationship diagrams. /// -public class SqlStatementGenerator +public static class SqlStatementGenerator { /// /// Generates a Mermaid sequence diagram showing Snowflake SQL statement execution flow. diff --git a/src/Strata.SqlTools.Markdown/SqlServer/QueryBreakdownGenerator.cs b/src/Strata.SqlTools.Markdown/SqlServer/QueryBreakdownGenerator.cs index a0f048d..051cc8a 100644 --- a/src/Strata.SqlTools.Markdown/SqlServer/QueryBreakdownGenerator.cs +++ b/src/Strata.SqlTools.Markdown/SqlServer/QueryBreakdownGenerator.cs @@ -8,7 +8,7 @@ namespace Strata.SqlTools.Markdown.SqlServer; /// Generates Mermaid diagram markdown from SQL QueryBreakdown objects. /// Creates flowchart visualizations showing the query structure and flow. /// -public class QueryBreakdownGenerator +public static class QueryBreakdownGenerator { /// /// Generates a Mermaid flowchart diagram from a QueryBreakdown. diff --git a/src/Strata.SqlTools.Markdown/SqlServer/SqlStatementGenerator.cs b/src/Strata.SqlTools.Markdown/SqlServer/SqlStatementGenerator.cs index 0905715..49bc4da 100644 --- a/src/Strata.SqlTools.Markdown/SqlServer/SqlStatementGenerator.cs +++ b/src/Strata.SqlTools.Markdown/SqlServer/SqlStatementGenerator.cs @@ -6,7 +6,7 @@ namespace Strata.SqlTools.Markdown.SqlServer; /// /// Generates Mermaid sequence diagrams from SQL statements to visualize statement execution flow. /// -public class SqlStatementGenerator +public static class SqlStatementGenerator { /// /// Generates a Mermaid sequence diagram showing SQL statement execution. diff --git a/tests/Strata.SqlTools.Markdown.Tests/LinqToSql/QueryBreakdownGeneratorTests.cs b/tests/Strata.SqlTools.Markdown.Tests/LinqToSql/QueryBreakdownGeneratorTests.cs index 70d3ca4..5123912 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/LinqToSql/QueryBreakdownGeneratorTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/LinqToSql/QueryBreakdownGeneratorTests.cs @@ -6,13 +6,11 @@ namespace Strata.SqlTools.Markdown.Tests.LinqToSql; [TestFixture] public class QueryBreakdownGeneratorTests { - private QueryBreakdownGenerator _generator = null!; private TestDataContext _context = null!; [SetUp] public void Setup() { - _generator = new QueryBreakdownGenerator(); _context = new TestDataContext(); } diff --git a/tests/Strata.SqlTools.Markdown.Tests/LinqToSql/SqlStatementGeneratorTests.cs b/tests/Strata.SqlTools.Markdown.Tests/LinqToSql/SqlStatementGeneratorTests.cs index c043500..4627e6e 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/LinqToSql/SqlStatementGeneratorTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/LinqToSql/SqlStatementGeneratorTests.cs @@ -6,14 +6,6 @@ namespace Strata.SqlTools.Markdown.Tests.LinqToSql; [TestFixture] public class SqlStatementGeneratorTests { - private SqlStatementGenerator _generator = null!; - - [SetUp] - public void Setup() - { - _generator = new SqlStatementGenerator(); - } - [Test] public void GenerateLinqPipelineDiagram_BasicQuery_GeneratesSequenceDiagram() { diff --git a/tests/Strata.SqlTools.Markdown.Tests/PostgreSql/QueryBreakdownGeneratorTests.cs b/tests/Strata.SqlTools.Markdown.Tests/PostgreSql/QueryBreakdownGeneratorTests.cs index 371e6fe..68aa80e 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/PostgreSql/QueryBreakdownGeneratorTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/PostgreSql/QueryBreakdownGeneratorTests.cs @@ -6,14 +6,6 @@ namespace Strata.SqlTools.Markdown.Tests.PostgreSql; [TestFixture] public class QueryBreakdownGeneratorTests { - private QueryBreakdownGenerator _generator = null!; - - [SetUp] - public void Setup() - { - _generator = new QueryBreakdownGenerator(); - } - [Test] public void GenerateMermaidDiagram_SimplePostgreSqlQuery_GeneratesValidMermaid() { diff --git a/tests/Strata.SqlTools.Markdown.Tests/PostgreSql/SqlStatementGeneratorTests.cs b/tests/Strata.SqlTools.Markdown.Tests/PostgreSql/SqlStatementGeneratorTests.cs index ee70a0a..e9b2fba 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/PostgreSql/SqlStatementGeneratorTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/PostgreSql/SqlStatementGeneratorTests.cs @@ -6,14 +6,6 @@ namespace Strata.SqlTools.Markdown.Tests.PostgreSql; [TestFixture] public class SqlStatementGeneratorTests { - private SqlStatementGenerator _generator = null!; - - [SetUp] - public void Setup() - { - _generator = new SqlStatementGenerator(); - } - [Test] public void GenerateSequenceDiagram_PostgreSqlQuery_GeneratesValidDiagram() { diff --git a/tests/Strata.SqlTools.Markdown.Tests/Snowflake/QueryBreakdownGeneratorTests.cs b/tests/Strata.SqlTools.Markdown.Tests/Snowflake/QueryBreakdownGeneratorTests.cs index 189cd1c..e8db15c 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/Snowflake/QueryBreakdownGeneratorTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/Snowflake/QueryBreakdownGeneratorTests.cs @@ -6,14 +6,6 @@ namespace Strata.SqlTools.Markdown.Tests.Snowflake; [TestFixture] public class QueryBreakdownGeneratorTests { - private QueryBreakdownGenerator _generator = null!; - - [SetUp] - public void Setup() - { - _generator = new QueryBreakdownGenerator(); - } - [Test] public void GenerateMermaidDiagram_SimpleSnowflakeQuery_GeneratesValidMermaid() { diff --git a/tests/Strata.SqlTools.Markdown.Tests/Snowflake/SqlStatementGeneratorTests.cs b/tests/Strata.SqlTools.Markdown.Tests/Snowflake/SqlStatementGeneratorTests.cs index 9e4173a..cffe833 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/Snowflake/SqlStatementGeneratorTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/Snowflake/SqlStatementGeneratorTests.cs @@ -6,14 +6,6 @@ namespace Strata.SqlTools.Markdown.Tests.Snowflake; [TestFixture] public class SqlStatementGeneratorTests { - private SqlStatementGenerator _generator = null!; - - [SetUp] - public void Setup() - { - _generator = new SqlStatementGenerator(); - } - [Test] public void GenerateSequenceDiagram_SnowflakeQuery_GeneratesValidDiagram() { diff --git a/tests/Strata.SqlTools.Markdown.Tests/SqlServer/QueryBreakdownGeneratorTests.cs b/tests/Strata.SqlTools.Markdown.Tests/SqlServer/QueryBreakdownGeneratorTests.cs index b3d8e60..a887dda 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/SqlServer/QueryBreakdownGeneratorTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/SqlServer/QueryBreakdownGeneratorTests.cs @@ -7,14 +7,6 @@ namespace Strata.SqlTools.Markdown.Tests.SqlServer; [TestFixture] public class QueryBreakdownGeneratorTests { - private QueryBreakdownGenerator _generator = null!; - - [SetUp] - public void Setup() - { - _generator = new QueryBreakdownGenerator(); - } - [Test] public void GenerateMermaidDiagram_WithSimpleQuery_GeneratesFlowchart() { diff --git a/tests/Strata.SqlTools.Markdown.Tests/SqlServer/QueryMarkdownGenerationTests.cs b/tests/Strata.SqlTools.Markdown.Tests/SqlServer/QueryMarkdownGenerationTests.cs index e01392d..7afa5c1 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/SqlServer/QueryMarkdownGenerationTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/SqlServer/QueryMarkdownGenerationTests.cs @@ -8,15 +8,12 @@ namespace Strata.SqlTools.Markdown.Tests.SqlServer; [Category("MarkdownGeneration")] public class QueryMarkdownGenerationTests { - private QueryBreakdownGenerator _generator = null!; private string _queriesSourcePath = null!; private string _markdownOutputPath = null!; [SetUp] public void Setup() { - _generator = new QueryBreakdownGenerator(); - // Get the solution root directory var testDirectory = TestContext.CurrentContext.TestDirectory; var solutionRoot = Directory.GetParent(testDirectory)?.Parent?.Parent?.Parent?.Parent?.FullName; diff --git a/tests/Strata.SqlTools.Markdown.Tests/SqlServer/SqlStatementGeneratorTests.cs b/tests/Strata.SqlTools.Markdown.Tests/SqlServer/SqlStatementGeneratorTests.cs index 570f43d..403a0b9 100644 --- a/tests/Strata.SqlTools.Markdown.Tests/SqlServer/SqlStatementGeneratorTests.cs +++ b/tests/Strata.SqlTools.Markdown.Tests/SqlServer/SqlStatementGeneratorTests.cs @@ -6,14 +6,6 @@ namespace Strata.SqlTools.Markdown.Tests.SqlServer; [TestFixture] public class SqlStatementGeneratorTests { - private SqlStatementGenerator _generator = null!; - - [SetUp] - public void Setup() - { - _generator = new SqlStatementGenerator(); - } - [Test] public void GenerateSequenceDiagram_WithSimpleQuery_GeneratesSequence() {