public async Task <MySqlStreamStoreFixture> Get(ITestOutputHelper outputHelper) { if (!_fixturePool.TryDequeue(out var fixture)) { var dbUniqueName = (DateTime.UtcNow - DateTime.UnixEpoch).TotalMilliseconds; var databaseName = $"sss-v3-{dbUniqueName}"; var dockerInstance = new MySqlContainer(databaseName); await dockerInstance.Start(); await dockerInstance.CreateDatabase(); fixture = new MySqlStreamStoreFixture( dockerInstance, databaseName, onDispose: () => _fixturePool.Enqueue(fixture)); outputHelper.WriteLine($"Using new fixture with db {databaseName}"); } else { outputHelper.WriteLine($"Using pooled fixture with db {fixture.DatabaseName}"); } await fixture.Prepare(); return(fixture); }
public static async Task <MySqlStreamStoreFixture> Create( ITestOutputHelper testOutputHelper = null, bool createSchema = true) { var fixture = new MySqlStreamStoreFixture(testOutputHelper, createSchema); await fixture.Init(); return(fixture); }
public async Task Can_call_initialize_repeatably() { using (var fixture = await MySqlStreamStoreFixture.Create(TestOutputHelper, false)) { await fixture.Store.CreateSchemaIfNotExists(); await fixture.Store.CreateSchemaIfNotExists(); } }
public async Task when_try_scavenge_fails_returns_negative_one() { using (var fixture = await MySqlStreamStoreFixture.Create(TestOutputHelper)) { var cts = new CancellationTokenSource(); cts.Cancel(); var result = await fixture.Store.TryScavenge(new StreamIdInfo("stream-1"), cts.Token); result.ShouldBe(-1); } }
public async Task Can_drop_all() { var streamStoreObjects = new List <string>(); using (var fixture = await MySqlStreamStoreFixture.Create(TestOutputHelper)) { string ReadInformationSchema((string name, string table) _) => $"SELECT {_.name}_name FROM information_schema.{_.table} WHERE {_.name}_schema = '{fixture.DatabaseName}'"; await fixture.Store.DropAll(); var commandText = string.Join( $"{Environment.NewLine}UNION{Environment.NewLine}", new[]
protected override async Task <IStreamStoreFixture> CreateFixture() => await MySqlStreamStoreFixture.Create(TestOutputHelper);