From 2efe401897b9c533b56271039a35222c89cf8bf8 Mon Sep 17 00:00:00 2001 From: Ilan Uzan Date: Fri, 26 Sep 2025 00:09:05 +0200 Subject: [PATCH 1/3] fix: move all tests to be under unit-tests directory --- .../DefaultSchemaEnum/request.json | 4 +- .../DefaultSchemaEnum/request.message | 4 +- .../SchemaScopedEnum/request.json | 4 +- .../SchemaScopedEnum/request.message | 4 +- Makefile | 5 +- sqlc-gen-csharp.sln | 4 +- sqlc.unit.test.yaml | 8 +- .../CodegenTests}/CodegenCsprojTests.cs | 0 .../CodegenTests}/CodegenSchemaTests.cs | 0 .../CodegenTests}/CodegenTests.csproj | 6 +- .../CodegenTests}/CodegenTypeOverrideTests.cs | 0 .../CodegenTests}/CodegenUtilsTests.cs | 0 .../CodegenTests}/TestRequestHelper.cs | 0 .../test-requests/DefaultSchemaEnum/query.sql | 0 .../DefaultSchemaEnum/request.json | 105 ++++++++++++++++++ .../DefaultSchemaEnum/request.message | 13 +++ .../DefaultSchemaEnum/schema.sql | 0 .../test-requests/SchemaScopedEnum/query.sql | 0 .../SchemaScopedEnum/request.json | 85 ++++++++++++++ .../SchemaScopedEnum/request.message | 10 ++ .../test-requests/SchemaScopedEnum/schema.sql | 0 .../RepositoryTests}/RepositoryTests.cs | 0 .../RepositoryTests}/RepositoryTests.csproj | 8 +- 23 files changed, 237 insertions(+), 23 deletions(-) rename {CodegenTests => unit-tests/CodegenTests}/CodegenCsprojTests.cs (100%) rename {CodegenTests => unit-tests/CodegenTests}/CodegenSchemaTests.cs (100%) rename {CodegenTests => unit-tests/CodegenTests}/CodegenTests.csproj (82%) rename {CodegenTests => unit-tests/CodegenTests}/CodegenTypeOverrideTests.cs (100%) rename {CodegenTests => unit-tests/CodegenTests}/CodegenUtilsTests.cs (100%) rename {CodegenTests => unit-tests/CodegenTests}/TestRequestHelper.cs (100%) rename {CodegenTests => unit-tests/CodegenTests}/test-requests/DefaultSchemaEnum/query.sql (100%) create mode 100644 unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/request.json create mode 100644 unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/request.message rename {CodegenTests => unit-tests/CodegenTests}/test-requests/DefaultSchemaEnum/schema.sql (100%) rename {CodegenTests => unit-tests/CodegenTests}/test-requests/SchemaScopedEnum/query.sql (100%) create mode 100644 unit-tests/CodegenTests/test-requests/SchemaScopedEnum/request.json create mode 100644 unit-tests/CodegenTests/test-requests/SchemaScopedEnum/request.message rename {CodegenTests => unit-tests/CodegenTests}/test-requests/SchemaScopedEnum/schema.sql (100%) rename {RepositoryTests => unit-tests/RepositoryTests}/RepositoryTests.cs (100%) rename {RepositoryTests => unit-tests/RepositoryTests}/RepositoryTests.csproj (79%) diff --git a/CodegenTests/test-requests/DefaultSchemaEnum/request.json b/CodegenTests/test-requests/DefaultSchemaEnum/request.json index 7cf007aa..8a29ddad 100644 --- a/CodegenTests/test-requests/DefaultSchemaEnum/request.json +++ b/CodegenTests/test-requests/DefaultSchemaEnum/request.json @@ -3,10 +3,10 @@ "version": "2", "engine": "mysql", "schema": [ - "CodegenTests/test-requests/DefaultSchemaEnum/schema.sql" + "unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/schema.sql" ], "queries": [ - "CodegenTests/test-requests/DefaultSchemaEnum/query.sql" + "unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/query.sql" ], "codegen": { "out": "./CodegenTests/test-requests/DefaultSchemaEnum", diff --git a/CodegenTests/test-requests/DefaultSchemaEnum/request.message b/CodegenTests/test-requests/DefaultSchemaEnum/request.message index d56158b3..f7f2466c 100644 --- a/CodegenTests/test-requests/DefaultSchemaEnum/request.message +++ b/CodegenTests/test-requests/DefaultSchemaEnum/request.message @@ -1,6 +1,6 @@ -â -2mysql7CodegenTests/test-requests/DefaultSchemaEnum/schema.sql"6CodegenTests/test-requests/DefaultSchemaEnum/query.sqlbe +ø +2mysqlBunit-tests/CodegenTests/test-requests/DefaultSchemaEnum/schema.sql"Aunit-tests/CodegenTests/test-requests/DefaultSchemaEnum/query.sqlbe ../CodegenTests/test-requests/DefaultSchemaEnumcsharp{"debugRequest":true}* ./dist/LocalRunner‚public"xpublicL  dummy_table; diff --git a/CodegenTests/test-requests/SchemaScopedEnum/request.json b/CodegenTests/test-requests/SchemaScopedEnum/request.json index 7b2a146d..56609255 100644 --- a/CodegenTests/test-requests/SchemaScopedEnum/request.json +++ b/CodegenTests/test-requests/SchemaScopedEnum/request.json @@ -3,10 +3,10 @@ "version": "2", "engine": "mysql", "schema": [ - "./CodegenTests/test-requests/SchemaScopedEnum/schema.sql" + "unit-tests/CodegenTests/test-requests/SchemaScopedEnum/schema.sql" ], "queries": [ - "./CodegenTests/test-requests/SchemaScopedEnum/query.sql" + "unit-tests/CodegenTests/test-requests/SchemaScopedEnum/query.sql" ], "codegen": { "out": "./CodegenTests/test-requests/SchemaScopedEnum", diff --git a/CodegenTests/test-requests/SchemaScopedEnum/request.message b/CodegenTests/test-requests/SchemaScopedEnum/request.message index 766cd0c5..7c87be05 100644 --- a/CodegenTests/test-requests/SchemaScopedEnum/request.message +++ b/CodegenTests/test-requests/SchemaScopedEnum/request.message @@ -1,6 +1,6 @@ -ã -2mysql8./CodegenTests/test-requests/SchemaScopedEnum/schema.sql"7./CodegenTests/test-requests/SchemaScopedEnum/query.sqlbd +õ +2mysqlAunit-tests/CodegenTests/test-requests/SchemaScopedEnum/schema.sql"@unit-tests/CodegenTests/test-requests/SchemaScopedEnum/query.sqlbd -./CodegenTests/test-requests/SchemaScopedEnumcsharp{"debugRequest":true}* ./dist/LocalRunner®public"*public" dummy_table_dummy_columnxy"x dummy_schemah diff --git a/Makefile b/Makefile index 64da763a..8a01929e 100644 --- a/Makefile +++ b/Makefile @@ -4,10 +4,11 @@ PWD := $(shell pwd) dotnet-build: dotnet build +.PHONY: unit-tests unit-tests: - dotnet test RepositoryTests + dotnet test unit-tests/RepositoryTests sqlc generate -f sqlc.unit.test.yaml - dotnet test CodegenTests + dotnet test unit-tests/CodegenTests generate-end2end-tests: ./end2end/scripts/generate_tests.sh diff --git a/sqlc-gen-csharp.sln b/sqlc-gen-csharp.sln index bff257da..5fdf6f2a 100644 --- a/sqlc-gen-csharp.sln +++ b/sqlc-gen-csharp.sln @@ -49,7 +49,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqliteDapperExample", "exam EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqliteExample", "examples\SqliteExample\SqliteExample.csproj", "{0A345279-6E13-4E7E-B1A0-E1E6ABDAE06F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodegenTests", "CodegenTests\CodegenTests.csproj", "{9FD3C47C-88A5-4C4A-A807-1E36114CBB38}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodegenTests", "unit-tests\CodegenTests\CodegenTests.csproj", "{9FD3C47C-88A5-4C4A-A807-1E36114CBB38}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EndToEndCommon", "end2end\EndToEndCommon\EndToEndCommon.csproj", "{FE5AA465-DC0E-4B14-9BD3-16B47813FB97}" EndProject @@ -59,7 +59,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleDocGen", "docs\Examp EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EndToEndScaffold", "end2end\EndToEndScaffold\EndToEndScaffold.csproj", "{2A101C54-4F0C-41AC-86B2-FFF6DFBFD0C0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RepositoryTests", "RepositoryTests\RepositoryTests.csproj", "{7FEF697A-841D-4E32-A8ED-0F36C4436B55}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RepositoryTests", "unit-tests\RepositoryTests\RepositoryTests.csproj", "{7FEF697A-841D-4E32-A8ED-0F36C4436B55}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RequestRunner", "RequestRunner\RequestRunner.csproj", "{645E834B-743F-4D80-9073-98878995FE87}" EndProject diff --git a/sqlc.unit.test.yaml b/sqlc.unit.test.yaml index ebd6485c..aea66263 100644 --- a/sqlc.unit.test.yaml +++ b/sqlc.unit.test.yaml @@ -4,8 +4,8 @@ plugins: process: cmd: ./dist/LocalRunner sql: - - schema: "CodegenTests/test-requests/DefaultSchemaEnum/schema.sql" - queries: "CodegenTests/test-requests/DefaultSchemaEnum/query.sql" + - schema: "unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/schema.sql" + queries: "unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/query.sql" engine: "mysql" codegen: - plugin: csharp @@ -13,8 +13,8 @@ sql: options: debugRequest: true - - schema: "./CodegenTests/test-requests/SchemaScopedEnum/schema.sql" - queries: "./CodegenTests/test-requests/SchemaScopedEnum/query.sql" + - schema: "unit-tests/CodegenTests/test-requests/SchemaScopedEnum/schema.sql" + queries: "unit-tests/CodegenTests/test-requests/SchemaScopedEnum/query.sql" engine: "mysql" codegen: - plugin: csharp diff --git a/CodegenTests/CodegenCsprojTests.cs b/unit-tests/CodegenTests/CodegenCsprojTests.cs similarity index 100% rename from CodegenTests/CodegenCsprojTests.cs rename to unit-tests/CodegenTests/CodegenCsprojTests.cs diff --git a/CodegenTests/CodegenSchemaTests.cs b/unit-tests/CodegenTests/CodegenSchemaTests.cs similarity index 100% rename from CodegenTests/CodegenSchemaTests.cs rename to unit-tests/CodegenTests/CodegenSchemaTests.cs diff --git a/CodegenTests/CodegenTests.csproj b/unit-tests/CodegenTests/CodegenTests.csproj similarity index 82% rename from CodegenTests/CodegenTests.csproj rename to unit-tests/CodegenTests/CodegenTests.csproj index 5c4ea9a5..d8e4fc45 100644 --- a/CodegenTests/CodegenTests.csproj +++ b/unit-tests/CodegenTests/CodegenTests.csproj @@ -29,9 +29,9 @@ - - - + + + diff --git a/CodegenTests/CodegenTypeOverrideTests.cs b/unit-tests/CodegenTests/CodegenTypeOverrideTests.cs similarity index 100% rename from CodegenTests/CodegenTypeOverrideTests.cs rename to unit-tests/CodegenTests/CodegenTypeOverrideTests.cs diff --git a/CodegenTests/CodegenUtilsTests.cs b/unit-tests/CodegenTests/CodegenUtilsTests.cs similarity index 100% rename from CodegenTests/CodegenUtilsTests.cs rename to unit-tests/CodegenTests/CodegenUtilsTests.cs diff --git a/CodegenTests/TestRequestHelper.cs b/unit-tests/CodegenTests/TestRequestHelper.cs similarity index 100% rename from CodegenTests/TestRequestHelper.cs rename to unit-tests/CodegenTests/TestRequestHelper.cs diff --git a/CodegenTests/test-requests/DefaultSchemaEnum/query.sql b/unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/query.sql similarity index 100% rename from CodegenTests/test-requests/DefaultSchemaEnum/query.sql rename to unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/query.sql diff --git a/unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/request.json b/unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/request.json new file mode 100644 index 00000000..7cf007aa --- /dev/null +++ b/unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/request.json @@ -0,0 +1,105 @@ +{ + "settings": { + "version": "2", + "engine": "mysql", + "schema": [ + "CodegenTests/test-requests/DefaultSchemaEnum/schema.sql" + ], + "queries": [ + "CodegenTests/test-requests/DefaultSchemaEnum/query.sql" + ], + "codegen": { + "out": "./CodegenTests/test-requests/DefaultSchemaEnum", + "plugin": "csharp", + "options": "eyJkZWJ1Z1JlcXVlc3QiOnRydWV9", + "process": { + "cmd": "./dist/LocalRunner" + } + } + }, + "catalog": { + "defaultSchema": "public", + "schemas": [ + { + "name": "public", + "tables": [ + { + "rel": { + "name": "dummy_table" + }, + "columns": [ + { + "name": "dummy_column", + "length": 1, + "table": { + "name": "dummy_table" + }, + "type": { + "name": "dummy_table_dummy_column" + } + } + ] + } + ], + "enums": [ + { + "name": "dummy_table_dummy_column", + "vals": [ + "x", + "y" + ] + } + ] + } + ] + }, + "queries": [ + { + "text": "SELECT dummy_column FROM dummy_table LIMIT 1", + "name": "TestOne", + "cmd": ":one", + "columns": [ + { + "name": "dummy_column", + "length": 1, + "table": { + "name": "dummy_table" + }, + "type": { + "name": "dummy_table_dummy_column" + }, + "originalName": "dummy_column" + } + ], + "filename": "query.sql" + }, + { + "text": "INSERT INTO dummy_table (dummy_column) VALUES (?)", + "name": "TestInsert", + "cmd": ":exec", + "parameters": [ + { + "number": 1, + "column": { + "name": "dummy_column", + "length": 1, + "table": { + "schema": "public", + "name": "dummy_table" + }, + "type": { + "name": "dummy_table_dummy_column" + }, + "originalName": "dummy_column" + } + } + ], + "filename": "query.sql", + "insert_into_table": { + "name": "dummy_table" + } + } + ], + "sqlc_version": "v1.30.0", + "plugin_options": "eyJvdmVycmlkZURyaXZlclZlcnNpb24iOiIiLCJnZW5lcmF0ZUNzcHJvaiI6dHJ1ZSwidGFyZ2V0RnJhbWV3b3JrIjoibmV0OC4wIiwibmFtZXNwYWNlTmFtZSI6IiIsInVzZURhcHBlciI6ZmFsc2UsIm92ZXJyaWRlRGFwcGVyVmVyc2lvbiI6IiIsIm92ZXJyaWRlcyI6bnVsbCwiZGVidWdSZXF1ZXN0IjpmYWxzZX0=" +} \ No newline at end of file diff --git a/unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/request.message b/unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/request.message new file mode 100644 index 00000000..d56158b3 --- /dev/null +++ b/unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/request.message @@ -0,0 +1,13 @@ + +â +2mysql7CodegenTests/test-requests/DefaultSchemaEnum/schema.sql"6CodegenTests/test-requests/DefaultSchemaEnum/query.sqlbe +../CodegenTests/test-requests/DefaultSchemaEnumcsharp{"debugRequest":true}* +./dist/LocalRunner‚public"xpublicL +  dummy_table; + dummy_column0R  dummy_tablebdummy_table_dummy_column" +dummy_table_dummy_columnxy“ +,SELECT dummy_column FROM dummy_table LIMIT 1TestOne:one"I + dummy_column0R  dummy_tablebdummy_table_dummy_columnz dummy_column: query.sql· +1INSERT INTO dummy_table (dummy_column) VALUES (?) +TestInsert:exec*UQ + dummy_column0Rpublic dummy_tablebdummy_table_dummy_columnz dummy_column: query.sqlB  dummy_table"v1.30.0*³{"overrideDriverVersion":"","generateCsproj":true,"targetFramework":"net8.0","namespaceName":"","useDapper":false,"overrideDapperVersion":"","overrides":null,"debugRequest":false} \ No newline at end of file diff --git a/CodegenTests/test-requests/DefaultSchemaEnum/schema.sql b/unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/schema.sql similarity index 100% rename from CodegenTests/test-requests/DefaultSchemaEnum/schema.sql rename to unit-tests/CodegenTests/test-requests/DefaultSchemaEnum/schema.sql diff --git a/CodegenTests/test-requests/SchemaScopedEnum/query.sql b/unit-tests/CodegenTests/test-requests/SchemaScopedEnum/query.sql similarity index 100% rename from CodegenTests/test-requests/SchemaScopedEnum/query.sql rename to unit-tests/CodegenTests/test-requests/SchemaScopedEnum/query.sql diff --git a/unit-tests/CodegenTests/test-requests/SchemaScopedEnum/request.json b/unit-tests/CodegenTests/test-requests/SchemaScopedEnum/request.json new file mode 100644 index 00000000..7b2a146d --- /dev/null +++ b/unit-tests/CodegenTests/test-requests/SchemaScopedEnum/request.json @@ -0,0 +1,85 @@ +{ + "settings": { + "version": "2", + "engine": "mysql", + "schema": [ + "./CodegenTests/test-requests/SchemaScopedEnum/schema.sql" + ], + "queries": [ + "./CodegenTests/test-requests/SchemaScopedEnum/query.sql" + ], + "codegen": { + "out": "./CodegenTests/test-requests/SchemaScopedEnum", + "plugin": "csharp", + "options": "eyJkZWJ1Z1JlcXVlc3QiOnRydWV9", + "process": { + "cmd": "./dist/LocalRunner" + } + } + }, + "catalog": { + "defaultSchema": "public", + "schemas": [ + { + "name": "public", + "enums": [ + { + "name": "dummy_table_dummy_column", + "vals": [ + "x", + "y" + ] + } + ] + }, + { + "name": "dummy_schema", + "tables": [ + { + "rel": { + "schema": "dummy_schema", + "name": "dummy_table" + }, + "columns": [ + { + "name": "dummy_column", + "length": 1, + "table": { + "schema": "dummy_schema", + "name": "dummy_table" + }, + "type": { + "name": "dummy_table_dummy_column" + } + } + ] + } + ] + } + ] + }, + "queries": [ + { + "text": "SELECT dummy_column FROM dummy_schema.dummy_table LIMIT 1", + "name": "Test", + "cmd": ":one", + "columns": [ + { + "name": "dummy_column", + "length": 1, + "table": { + "schema": "dummy_schema", + "name": "dummy_table" + }, + "type": { + "name": "dummy_table_dummy_column" + }, + "originalName": "dummy_column" + } + ], + "filename": "query.sql" + } + ], + "sqlc_version": "v1.30.0", + "plugin_options": "eyJvdmVycmlkZURyaXZlclZlcnNpb24iOiIiLCJnZW5lcmF0ZUNzcHJvaiI6dHJ1ZSwidGFyZ2V0RnJhbWV3b3JrIjoibmV0OC4wIiwibmFtZXNwYWNlTmFtZSI6IiIsInVzZURhcHBlciI6ZmFsc2UsIm92ZXJyaWRlRGFwcGVyVmVyc2lvbiI6IiIsIm92ZXJyaWRlcyI6bnVsbCwiZGVidWdSZXF1ZXN0IjpmYWxzZX0=" +} \ No newline at end of file diff --git a/unit-tests/CodegenTests/test-requests/SchemaScopedEnum/request.message b/unit-tests/CodegenTests/test-requests/SchemaScopedEnum/request.message new file mode 100644 index 00000000..766cd0c5 --- /dev/null +++ b/unit-tests/CodegenTests/test-requests/SchemaScopedEnum/request.message @@ -0,0 +1,10 @@ + +ã +2mysql8./CodegenTests/test-requests/SchemaScopedEnum/schema.sql"7./CodegenTests/test-requests/SchemaScopedEnum/query.sqlbd +-./CodegenTests/test-requests/SchemaScopedEnumcsharp{"debugRequest":true}* +./dist/LocalRunner®public"*public" +dummy_table_dummy_columnxy"x dummy_schemah + dummy_schema dummy_tableI + dummy_column0R dummy_schema dummy_tablebdummy_table_dummy_column« +9SELECT dummy_column FROM dummy_schema.dummy_table LIMIT 1Test:one"W + dummy_column0R dummy_schema dummy_tablebdummy_table_dummy_columnz dummy_column: query.sql"v1.30.0*³{"overrideDriverVersion":"","generateCsproj":true,"targetFramework":"net8.0","namespaceName":"","useDapper":false,"overrideDapperVersion":"","overrides":null,"debugRequest":false} \ No newline at end of file diff --git a/CodegenTests/test-requests/SchemaScopedEnum/schema.sql b/unit-tests/CodegenTests/test-requests/SchemaScopedEnum/schema.sql similarity index 100% rename from CodegenTests/test-requests/SchemaScopedEnum/schema.sql rename to unit-tests/CodegenTests/test-requests/SchemaScopedEnum/schema.sql diff --git a/RepositoryTests/RepositoryTests.cs b/unit-tests/RepositoryTests/RepositoryTests.cs similarity index 100% rename from RepositoryTests/RepositoryTests.cs rename to unit-tests/RepositoryTests/RepositoryTests.cs diff --git a/RepositoryTests/RepositoryTests.csproj b/unit-tests/RepositoryTests/RepositoryTests.csproj similarity index 79% rename from RepositoryTests/RepositoryTests.csproj rename to unit-tests/RepositoryTests/RepositoryTests.csproj index f712e5c1..897dfe5f 100644 --- a/RepositoryTests/RepositoryTests.csproj +++ b/unit-tests/RepositoryTests/RepositoryTests.csproj @@ -9,7 +9,7 @@ - + Always @@ -29,9 +29,9 @@ - - - + + + From e1c51caeea97276e356217bae6d0723cc3f1b256 Mon Sep 17 00:00:00 2001 From: Ilan Uzan Date: Sat, 27 Sep 2025 15:23:17 +0200 Subject: [PATCH 2/3] fix: have RequestRunner be available as convenient separated tests --- RequestRunner/App.cs | 29 --------------- RequestRunner/RequestRunner.csproj | 15 -------- sqlc-gen-csharp.sln | 2 -- unit-tests/CodegenTests/CodegenCsprojTests.cs | 1 + unit-tests/CodegenTests/CodegenSchemaTests.cs | 1 + unit-tests/CodegenTests/CodegenTests.csproj | 28 ++++++++++++--- .../CodegenTests/CodegenTypeOverrideTests.cs | 1 + unit-tests/CodegenTests/CodegenUtilsTests.cs | 1 + unit-tests/CodegenTests/ExampleTests.cs | 35 +++++++++++++++++++ unit-tests/CodegenTests/TestRequestHelper.cs | 2 -- 10 files changed, 63 insertions(+), 52 deletions(-) delete mode 100644 RequestRunner/App.cs delete mode 100644 RequestRunner/RequestRunner.csproj create mode 100644 unit-tests/CodegenTests/ExampleTests.cs diff --git a/RequestRunner/App.cs b/RequestRunner/App.cs deleted file mode 100644 index 4caf0b3d..00000000 --- a/RequestRunner/App.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Threading.Tasks; - -namespace SqlcGenCsharp; - -public static class App -{ - public static async Task Main(string[] requestFiles) - { - foreach (var requestFile in requestFiles) - { - await ProcessRequestFile(requestFile); - break; - } - } - - private static async Task ProcessRequestFile(string requestFile) - { - if (!requestFile.EndsWith(".message")) - return; - Console.WriteLine($"Processing request file {requestFile}"); - var request = Plugin.GenerateRequest.Parser.ParseFrom(File.ReadAllBytes(requestFile)); - var response = await new CodeGenerator().Generate(request); - Console.WriteLine($"Response files: {response.Files.Select(f => f.Name).JoinByComma()}"); - Console.WriteLine("--------------------------------"); - } -} \ No newline at end of file diff --git a/RequestRunner/RequestRunner.csproj b/RequestRunner/RequestRunner.csproj deleted file mode 100644 index cd0b0fc8..00000000 --- a/RequestRunner/RequestRunner.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - Exe - net8.0 - true - osx-arm64;linux-x64 - SqlcGenCsharp - - - - - - - diff --git a/sqlc-gen-csharp.sln b/sqlc-gen-csharp.sln index 5fdf6f2a..39a98031 100644 --- a/sqlc-gen-csharp.sln +++ b/sqlc-gen-csharp.sln @@ -61,8 +61,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EndToEndScaffold", "end2end EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RepositoryTests", "unit-tests\RepositoryTests\RepositoryTests.csproj", "{7FEF697A-841D-4E32-A8ED-0F36C4436B55}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RequestRunner", "RequestRunner\RequestRunner.csproj", "{645E834B-743F-4D80-9073-98878995FE87}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/unit-tests/CodegenTests/CodegenCsprojTests.cs b/unit-tests/CodegenTests/CodegenCsprojTests.cs index 70aac3eb..d7d94087 100644 --- a/unit-tests/CodegenTests/CodegenCsprojTests.cs +++ b/unit-tests/CodegenTests/CodegenCsprojTests.cs @@ -1,4 +1,5 @@ using Google.Protobuf; +using NUnit.Framework; using Plugin; using SqlcGenCsharp; using System.Text; diff --git a/unit-tests/CodegenTests/CodegenSchemaTests.cs b/unit-tests/CodegenTests/CodegenSchemaTests.cs index 57254c05..0597220a 100644 --- a/unit-tests/CodegenTests/CodegenSchemaTests.cs +++ b/unit-tests/CodegenTests/CodegenSchemaTests.cs @@ -1,4 +1,5 @@ using Microsoft.CodeAnalysis.CSharp.Syntax; +using NUnit.Framework; using SqlcGenCsharp; using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; diff --git a/unit-tests/CodegenTests/CodegenTests.csproj b/unit-tests/CodegenTests/CodegenTests.csproj index d8e4fc45..3c017aa0 100644 --- a/unit-tests/CodegenTests/CodegenTests.csproj +++ b/unit-tests/CodegenTests/CodegenTests.csproj @@ -12,6 +12,30 @@ Always + + Always + NpgsqlExampleRequest.message + + + Always + NpgsqlDapperExampleRequest.message + + + Always + MySqlConnectorExampleRequest.message + + + Always + MySqlConnectorDapperExampleRequest.message + + + Always + SqliteExampleRequest.message + + + Always + SqliteDapperExampleRequest.message + @@ -24,10 +48,6 @@ - - - - diff --git a/unit-tests/CodegenTests/CodegenTypeOverrideTests.cs b/unit-tests/CodegenTests/CodegenTypeOverrideTests.cs index 9fd2ff65..ae34001a 100644 --- a/unit-tests/CodegenTests/CodegenTypeOverrideTests.cs +++ b/unit-tests/CodegenTests/CodegenTypeOverrideTests.cs @@ -1,4 +1,5 @@ using Google.Protobuf; +using NUnit.Framework; using Plugin; using SqlcGenCsharp; using System.Text; diff --git a/unit-tests/CodegenTests/CodegenUtilsTests.cs b/unit-tests/CodegenTests/CodegenUtilsTests.cs index 3890e9e4..56295a36 100644 --- a/unit-tests/CodegenTests/CodegenUtilsTests.cs +++ b/unit-tests/CodegenTests/CodegenUtilsTests.cs @@ -1,5 +1,6 @@ using Google.Protobuf; using Microsoft.CodeAnalysis.CSharp.Syntax; +using NUnit.Framework; using Plugin; using SqlcGenCsharp; using SqlcGenCsharp.Drivers; diff --git a/unit-tests/CodegenTests/ExampleTests.cs b/unit-tests/CodegenTests/ExampleTests.cs new file mode 100644 index 00000000..71ad2e6f --- /dev/null +++ b/unit-tests/CodegenTests/ExampleTests.cs @@ -0,0 +1,35 @@ +using NUnit.Framework; +using SqlcGenCsharp; + +namespace CodegenTests; + +public class ExampleTests +{ + [Test] + public static void TestNpgsqlExample() => AssertRequestSuccess("NpgsqlExampleRequest.message"); + + [Test] + public static void TestNpgsqlDapperExample() => AssertRequestSuccess("NpgsqlDapperExampleRequest.message"); + + [Test] + public static void TestMySqlConnectorExample() => AssertRequestSuccess("MySqlConnectorExampleRequest.message"); + + [Test] + public static void TestMySqlConnectorDapperExample() => AssertRequestSuccess("MySqlConnectorDapperExampleRequest.message"); + + [Test] + public static void TestSqliteExample() => AssertRequestSuccess("SqliteExampleRequest.message"); + + [Test] + public static void TestSqliteDapperExample() => AssertRequestSuccess("SqliteDapperExampleRequest.message"); + + private static void AssertRequestSuccess(string requestFile) + { + Assert.DoesNotThrowAsync(async () => + { + var request = Plugin.GenerateRequest.Parser.ParseFrom(File.ReadAllBytes(requestFile)); + var codeGenerator = new CodeGenerator(); + await codeGenerator.Generate(request); + }); + } +} \ No newline at end of file diff --git a/unit-tests/CodegenTests/TestRequestHelper.cs b/unit-tests/CodegenTests/TestRequestHelper.cs index 773a784b..8252f60a 100644 --- a/unit-tests/CodegenTests/TestRequestHelper.cs +++ b/unit-tests/CodegenTests/TestRequestHelper.cs @@ -1,5 +1,3 @@ -using File = System.IO.File; - namespace CodegenTests; public static class TestRequestHelper From 3e16056e8e98b04576f18c58e21a21853411250f Mon Sep 17 00:00:00 2001 From: Ilan Uzan Date: Sat, 27 Sep 2025 16:13:41 +0200 Subject: [PATCH 3/3] fix: unit tests command --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 757a94b8..fcf2627e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,8 +37,8 @@ jobs: - name: Run Tests run: | - dotnet test RepositoryTests - dotnet test CodegenTests + dotnet test unit-tests/RepositoryTests + dotnet test unit-tests/CodegenTests end2end-tests: name: End-to-End Tests