using Microsoft.Data.Sqlite; using Omika.App.Local.Sqlite; namespace Omika.Tests.Mobile.Local; /// /// Test minimal de démonstration du binding des paramètres Microsoft.Data.Sqlite. /// Vérifie la différence entre les deux formes de construction d'un SqliteParameter. /// public class SqliteParameterBindingTests : IDisposable { private readonly LocalDatabase _database; public SqliteParameterBindingTests() { _database = new LocalDatabase(new LocalDatabaseOptions()); _database.InitializeSchemaAsync().GetAwaiter().GetResult(); } public void Dispose() { _database.Dispose(); GC.SuppressFinalize(this); } [Fact] public async Task ConstructeurPuisValue_Int() { // Forme utilisée dans CreateParameter : new SqliteParameter { Value = ... } await using var command = _database.CreateCommand(); command.CommandText = "SELECT COUNT(*) FROM \"Outbox\" WHERE \"State\" = @Pending"; var parameter = new SqliteParameter { ParameterName = "@Pending" }; parameter.Value = (int)Omika.App.Local.Models.OutboxState.Pending; command.Parameters.Add(parameter); object? result = await command.ExecuteScalarAsync(); Assert.NotNull(result); } }