diff --git a/OpenNest.Server.Tests/DrawingLibraryDatabaseTests.cs b/OpenNest.Server.Tests/DrawingLibraryDatabaseTests.cs index 4d9559db..37ee6989 100644 --- a/OpenNest.Server.Tests/DrawingLibraryDatabaseTests.cs +++ b/OpenNest.Server.Tests/DrawingLibraryDatabaseTests.cs @@ -5,6 +5,7 @@ using Microsoft.Data.Sqlite; using OpenNest.Data; using static OpenNest.Server.Tests.DrawingLibraryFixtures; using static OpenNest.Server.Tests.DrawingSetFixtures; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -326,22 +327,4 @@ public sealed class DrawingLibraryDatabaseTests } return text.ToString(); } - - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } } diff --git a/OpenNest.Server.Tests/DrawingSetDatabaseTests.cs b/OpenNest.Server.Tests/DrawingSetDatabaseTests.cs index 64d30581..b9295bde 100644 --- a/OpenNest.Server.Tests/DrawingSetDatabaseTests.cs +++ b/OpenNest.Server.Tests/DrawingSetDatabaseTests.cs @@ -5,6 +5,7 @@ using Microsoft.Data.Sqlite; using OpenNest.Data; using static OpenNest.Server.Tests.DrawingLibraryFixtures; using static OpenNest.Server.Tests.DrawingSetFixtures; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -347,22 +348,4 @@ public sealed class DrawingSetDatabaseTests } return text.ToString(); } - - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } } diff --git a/OpenNest.Server.Tests/MaterialListTests.cs b/OpenNest.Server.Tests/MaterialListTests.cs index 373720fa..83c60812 100644 --- a/OpenNest.Server.Tests/MaterialListTests.cs +++ b/OpenNest.Server.Tests/MaterialListTests.cs @@ -4,6 +4,7 @@ using Microsoft.Data.Sqlite; using OpenNest.Data; using static OpenNest.Server.Tests.DrawingLibraryFixtures; using static OpenNest.Server.Tests.DrawingSetFixtures; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -132,22 +133,4 @@ public sealed class MaterialListTests DateCreated = new DateTime(2026, 1, 1), DateModified = new DateTime(2026, 1, 2), }; - - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } } diff --git a/OpenNest.Server.Tests/NestMaterialGradeTests.cs b/OpenNest.Server.Tests/NestMaterialGradeTests.cs index fb2febd3..fe835113 100644 --- a/OpenNest.Server.Tests/NestMaterialGradeTests.cs +++ b/OpenNest.Server.Tests/NestMaterialGradeTests.cs @@ -1,5 +1,6 @@ using Microsoft.Data.Sqlite; using OpenNest.Data; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -86,22 +87,4 @@ public sealed class NestMaterialGradeTests DateCreated = new DateTime(2026, 1, 1), DateModified = new DateTime(2026, 1, 2), }; - - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } } diff --git a/OpenNest.Server.Tests/NestStockCodesTests.cs b/OpenNest.Server.Tests/NestStockCodesTests.cs index 29661ea0..0ee2cd0b 100644 --- a/OpenNest.Server.Tests/NestStockCodesTests.cs +++ b/OpenNest.Server.Tests/NestStockCodesTests.cs @@ -2,6 +2,7 @@ using System.Net; using Microsoft.Data.Sqlite; using OpenNest.Data; using OpenNest.Geometry; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -147,24 +148,6 @@ public sealed class NestStockCodesTests DateModified = nest.DateCreated, }; - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } - private sealed class Session : IDisposable { private readonly ServerFactory factory = new(); diff --git a/OpenNest.Server.Tests/NestUnitsTests.cs b/OpenNest.Server.Tests/NestUnitsTests.cs index e8161b86..a0c223cb 100644 --- a/OpenNest.Server.Tests/NestUnitsTests.cs +++ b/OpenNest.Server.Tests/NestUnitsTests.cs @@ -2,6 +2,7 @@ using System.Net.Http.Json; using System.Text.Json; using Microsoft.Data.Sqlite; using OpenNest.Data; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -88,22 +89,4 @@ public sealed class NestUnitsTests DateCreated = new DateTime(2026, 1, 1), DateModified = new DateTime(2026, 1, 2), }; - - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } } diff --git a/OpenNest.Server.Tests/SetReleaseDrawingTests.cs b/OpenNest.Server.Tests/SetReleaseDrawingTests.cs index c11c7572..f56bd2cc 100644 --- a/OpenNest.Server.Tests/SetReleaseDrawingTests.cs +++ b/OpenNest.Server.Tests/SetReleaseDrawingTests.cs @@ -8,6 +8,7 @@ using OpenNest.IO; using OpenNest.Shapes; using static OpenNest.Server.Tests.DrawingLibraryFixtures; using static OpenNest.Server.Tests.DrawingSetFixtures; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -321,22 +322,4 @@ public sealed class SetReleaseDrawingTests foreach (var group in result.Groups) Assert.Null(await nests.GetMetadataAsync(group.Record!.Id)); } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } - - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } } diff --git a/OpenNest.Server.Tests/SetReleaseTests.cs b/OpenNest.Server.Tests/SetReleaseTests.cs index 3a4bdb5e..4629d670 100644 --- a/OpenNest.Server.Tests/SetReleaseTests.cs +++ b/OpenNest.Server.Tests/SetReleaseTests.cs @@ -7,6 +7,7 @@ using Microsoft.Data.Sqlite; using OpenNest.Data; using static OpenNest.Server.Tests.DrawingLibraryFixtures; using static OpenNest.Server.Tests.DrawingSetFixtures; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -588,22 +589,4 @@ public sealed class SetReleaseTests var stored = (await response.Content.ReadFromJsonAsync(Options))!; Assert.Equal((false, "Synthetic kit", (SetReleaseNestUndo?)null), (stored.IsUndone, stored.Sets[0].SetName, stored.Nests[0].Undo)); } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } - - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } } diff --git a/OpenNest.Server.Tests/SharedSettingsTests.cs b/OpenNest.Server.Tests/SharedSettingsTests.cs index a03e7664..53727632 100644 --- a/OpenNest.Server.Tests/SharedSettingsTests.cs +++ b/OpenNest.Server.Tests/SharedSettingsTests.cs @@ -3,6 +3,7 @@ using System.Net.Http.Headers; using System.Net.Http.Json; using Microsoft.Data.Sqlite; using OpenNest.Data; +using static OpenNest.Server.Tests.TestDatabase; namespace OpenNest.Server.Tests; @@ -172,22 +173,4 @@ public sealed class SharedSettingsTests request.Headers.IfMatch.Add(new EntityTagHeaderValue($"\"{revision}\"")); return await client.SendAsync(request); } - - private static void Execute(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - command.ExecuteNonQuery(); - } - - private static object? Scalar(string path, string sql) - { - using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); - connection.Open(); - using var command = connection.CreateCommand(); - command.CommandText = sql; - return command.ExecuteScalar(); - } } diff --git a/OpenNest.Server.Tests/TestDatabase.cs b/OpenNest.Server.Tests/TestDatabase.cs new file mode 100644 index 00000000..e638e3f1 --- /dev/null +++ b/OpenNest.Server.Tests/TestDatabase.cs @@ -0,0 +1,28 @@ +using Microsoft.Data.Sqlite; + +namespace OpenNest.Server.Tests; + +/// +/// Raw SQL against a test server's SQLite file, for checks the API does not expose. Import with +/// using static. +/// +internal static class TestDatabase +{ + public static void Execute(string path, string sql) + { + using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); + connection.Open(); + using var command = connection.CreateCommand(); + command.CommandText = sql; + command.ExecuteNonQuery(); + } + + public static object? Scalar(string path, string sql) + { + using var connection = new SqliteConnection($"Data Source={path};Pooling=False"); + connection.Open(); + using var command = connection.CreateCommand(); + command.CommandText = sql; + return command.ExecuteScalar(); + } +}