示例#1
0
        public RedlockDiTests(RedisFixture fixture) : base(fixture)
        {
            var now = new DateTime(2020, 01, 02, 03, 04, 04, DateTimeKind.Utc);

            _services = new ServiceCollection().AddRedlock(opt =>
            {
                opt.ClockDriftFactor = 0.3f;
                opt.UtcNow           = () => now;
            }).AddRedisStorage(b =>
            {
                b.AddInstance(TestConfig.Instance.GetConnectionString("redis1"), "1");
                b.AddInstance(TestConfig.Instance.GetConnectionString("redis2"), "2");
                b.AddInstance(TestConfig.Instance.GetConnectionString("redis3"), "3");
                b.ConfigureOptions(opt =>
                {
                    opt.RedisKeyFromResourceName = resource => $"locks_{resource}";
                });
            });
        }
 public RedisRedlockIntegrationTests(RedisFixture redis, ITestOutputHelper console) : base(redis)
 {
     _console = console;
     _log     = new MemoryLogger();
     _5Inst   = new IRedlockInstance[]
     {
         new RedisRedlockInstance(() => Redis.Redis1.GetDatabase(), s => s, "1", 0.1f, _log),
         new RedisRedlockInstance(() => Redis.Redis2.GetDatabase(), s => s, "2", 0.1f, _log),
         new RedisRedlockInstance(() => Redis.Redis3.GetDatabase(), s => s, "3", 0.1f, _log),
         new RedisRedlockInstance(() => Redis.Redis4.GetDatabase(), s => s, "4", 0.1f, _log),
         new RedisRedlockInstance(() => Redis.Redis5.GetDatabase(), s => s, "5", 0.1f, _log),
     }.ToImmutableArray();
     _noQuorum = new IRedlockInstance[]
     {
         new RedisRedlockInstance(() => Redis.Redis1.GetDatabase(), s => s, "1", 0.1f, _log),
         new RedisRedlockInstance(() => Redis.Redis2.GetDatabase(), s => s, "2", 0.1f, _log),
         new RedisRedlockInstance(() => Redis.Unreachable1.GetDatabase(), s => s, "u1", 0.1f, _log),
         new RedisRedlockInstance(() => Redis.Unreachable2.GetDatabase(), s => s, "u2", 0.1f, _log),
     }.ToImmutableArray();
 }
示例#3
0
 public RedisTestBase(RedisFixture redis)
 {
     Redis = redis;
     Redis.FlushAll();
 }
示例#4
0
 public RedisRedlockInstanceTests(RedisFixture redis, ITestOutputHelper console) : base(redis)
 {
     _console  = console;
     _logger   = new MemoryLogger();
     _instance = new RedisRedlockInstance(Db, s => s, "i", 0.1f, _logger);
 }