Toxon.Integresql.Client 1.0.4

dotnet add package Toxon.Integresql.Client --version 1.0.4
NuGet\Install-Package Toxon.Integresql.Client -Version 1.0.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Toxon.Integresql.Client" Version="1.0.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Toxon.Integresql.Client --version 1.0.4
#r "nuget: Toxon.Integresql.Client, 1.0.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Toxon.Integresql.Client as a Cake Addin
#addin nuget:?package=Toxon.Integresql.Client&version=1.0.4

// Install Toxon.Integresql.Client as a Cake Tool
#tool nuget:?package=Toxon.Integresql.Client&version=1.0.4

Toxon.Integresql.Client

A .NET client for IntegreSQL, a management tool for isolated PostgreSQL databases for integration testing

Usage

  • Install the Toxon.Integresql.Client nuget package
  • Create a client for communicating with the service
    var client = new IntegresqlClient("http://localhost:5000/api");
    
  • Create a hash of the schema & fixtures, this could vary a lot across applications so imagine something like feeding your schema setup files into a SHA256 hash
    var hashBytes = SHA256.HashData(File.ReadAllBytes("schema.sql"));
    var sb = new StringBuilder();
    for (int i = 0; i < hashBytes.Length; i++) { sb.Append(hashBytes[i].ToString("x2")); }
    var hash = sb.ToString();
    
  • Setup the template database, you can do this with client.InitializeTemplate and client.FinalizeTemplate, or use the setup helper method. Either way you want to try and only do this once per test session, so consider putting it in a Lazy initialized static field
    await client.SetupTemplate(hash, connectionString => {
        // connect to the database and set it up 
    });
    
  • In each test get a connection to a unique isolated database using client.GetDatabase and then return it at the end with client.ReturnDatabase, alternatively use the disposable extension method
    await using var database = client.AcquireDatabase(hash);
    var connectionString = database.GetConnectionString();
    // run your test, the database will be automatically returned and recycled at the end
    
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.4 386 10/24/2022
1.0.3 336 10/23/2022
1.0.2 351 10/23/2022
1.0.1 337 10/23/2022