protected override IMemoizationStore CreateStore(DisposableDirectory testDirectory) { var context = new Context(_logger); var keySpace = Guid.NewGuid().ToString(); var primaryRedisInstance = LocalRedisProcessDatabase.CreateAndStartEmpty(_redis, _logger, _clock); _databasesToDispose.Add(primaryRedisInstance); var primaryFactory = RedisDatabaseFactory.CreateAsync( context, provider: new LiteralConnectionStringProvider(primaryRedisInstance.ConnectionString), logSeverity: Severity.Info, usePreventThreadTheft: false).GetAwaiter().GetResult(); var primaryRedisAdapter = new RedisDatabaseAdapter(primaryFactory, keySpace: keySpace); var secondaryRedisInstance = LocalRedisProcessDatabase.CreateAndStartEmpty(_redis, _logger, _clock); _databasesToDispose.Add(secondaryRedisInstance); var secondaryFactory = RedisDatabaseFactory.CreateAsync( context, provider: new LiteralConnectionStringProvider(secondaryRedisInstance.ConnectionString), logSeverity: Severity.Info, usePreventThreadTheft: false).GetAwaiter().GetResult(); var secondaryRedisAdapter = new RedisDatabaseAdapter(secondaryFactory, keySpace: keySpace); var memoizationDb = new RedisMemoizationDatabase(primaryRedisAdapter, secondaryRedisAdapter, _clock, _memoizationExpiryTime, operationsTimeout: null, slowOperationRedisTimeout: null); return(new RedisMemoizationStore(_logger, memoizationDb)); }
protected override IMemoizationStore CreateStore(DisposableDirectory testDirectory) { var context = new Context(_logger); var localDatabase = LocalRedisProcessDatabase.CreateAndStartEmpty(_redis, _logger, _clock); var connectionString = localDatabase.ConnectionString; _databasesToDispose.Add(localDatabase); var connectionStringProvider = new LiteralConnectionStringProvider(connectionString); var redisFactory = RedisDatabaseFactory.CreateAsync(context, connectionStringProvider).GetAwaiter().GetResult(); var redisAdapter = new RedisDatabaseAdapter(redisFactory, keySpace: Guid.NewGuid().ToString()); var memoizationDb = new RedisMemoizationDatabase(redisAdapter, _clock, _memoizationExpiryTime); return(new RedisMemoizationStore(_logger, memoizationDb)); }