예제 #1
0
        public async Task DisposeAsync()
        {
            var instances = MemInstances(3);
            var l         = new Redlock("r", "n", Ttl, _now, instances.ToInstances(), _log);

            Lock("r", "n", instances);

            await l.DisposeAsync();

            Assert.All(instances, i => Assert.False(i.Contains("r", "n")));
        }
예제 #2
0
        public async Task DisposeAsync_ExceptionsOnUnlock()
        {
            var mem = MemInstances(3);
            var err = ErrInstances(2);
            var l   = new Redlock("r", "n", Ttl, _now, TestRedlock.Instances(mem, err), _log);

            Lock("r", "n", mem);

            await l.DisposeAsync();

            Assert.All(mem, i => Assert.False(i.Contains("r", "n")));
            var errorLogs = _log.Logs.Where(x => x.LogLevel == LogLevel.Error).ToArray();

            Assert.Equal(2, errorLogs.Length);
            Assert.Contains(errorLogs, e => e.Exception == err[0].UnlockAsyncException);
            Assert.Contains(errorLogs, e => e.Exception == err[1].UnlockAsyncException);
        }