40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using Microsoft.Data.Sqlite;
|
|
using Omika.App.Local.Sqlite;
|
|
|
|
namespace Omika.Tests.Mobile.Local;
|
|
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
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);
|
|
}
|
|
}
|