Esempio n. 1
0
        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 MySqlDockerDatabaseManager(outputHelper, databaseName); // TODO output helper here will be interleaved
                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);
        }
Esempio n. 2
0
        public MySqlStreamStoreFixture(
            MySqlDockerDatabaseManager dockerInstance,
            string databaseName,
            Action onDispose)
        {
            _onDispose   = onDispose;
            DatabaseName = databaseName;
            var connectionString = dockerInstance.ConnectionString;

            _settings = new MySqlStreamStoreSettings(connectionString)
            {
                GetUtcNow = () => GetUtcNow(),
                DisableDeletionTracking     = false,
                AppendDeadlockRetryAttempts = 25
            };
        }
 public MySqlStreamStoreDb(ITestOutputHelper testOutputHelper)
 {
     _databaseManager = new MySqlDockerDatabaseManager(
         testOutputHelper,
         $"test_{Guid.NewGuid():n}");
 }