Exemplo n.º 1
0
 public MockContentLocationStoreFactory(
     ITestRedisDatabase primaryRedisDatabase,
     ITestRedisDatabase secondaryRedisDatabase,
     AbsolutePath rootDirectory,
     ITestClock mockClock = null,
     RedisContentLocationStoreConfiguration configuration = null)
     : base(mockClock ?? TestSystemClock.Instance, configuration ?? CreateDefaultConfiguration(rootDirectory), CreateTestCopier(mockClock ?? TestSystemClock.Instance, rootDirectory))
 {
     _primaryRedisDatabase   = primaryRedisDatabase;
     _secondaryRedisDatabase = secondaryRedisDatabase;
 }
 public MockRedisContentLocationStoreFactory(
     ITestRedisDatabase redisDatabase,
     ITestRedisDatabase machineLocationRedisDatabase,
     AbsolutePath localCacheRoot,
     IClock mockClock = null,
     RedisContentLocationStoreConfiguration configuration = null)
 {
     _mockClock    = mockClock ?? SystemClock.Instance;
     RedisDatabase = redisDatabase;
     MachineLocationRedisDatabase = machineLocationRedisDatabase;
     _localMachineLocation        = new MachineLocation(localCacheRoot.Path);
     _configuration = configuration ?? RedisContentLocationStoreConfiguration.Default;
 }
        private static async Task IncrementWithExpiryValidate(
            Context context,
            RedisDatabaseAdapter adapter,
            ITestRedisDatabase database,
            string key,
            uint comparisonValue,
            TimeSpan specifiedExpiry,
            int requestedIncrement,
            long expectedReturnValue,
            long?expectedIncrementedValue,
            TimeSpan?expectedDifferentExpiry = null)
        {
            var batch               = adapter.CreateBatchOperation(RedisOperation.All);
            var redisKey            = GetKey(key);
            var incrementWithExpire = batch.TryStringIncrementBumpExpiryIfBelowOrEqualValueAsync(key, comparisonValue, timeToLive: specifiedExpiry, requestedIncrement: requestedIncrement);
            await adapter.ExecuteBatchOperationAsync(context, batch, CancellationToken.None).IgnoreFailure();

            var incrementedValue = await incrementWithExpire;

            Assert.Equal(expectedReturnValue, incrementedValue.AppliedIncrement);

            var keysWithExpiry = database.GetDbWithExpiry();

            if (expectedIncrementedValue == null)
            {
                Assert.False(keysWithExpiry.ContainsKey(redisKey));
                Assert.Equal(expectedReturnValue, incrementedValue.IncrementedValue);
                return;
            }

            Assert.True(keysWithExpiry.ContainsKey(redisKey));

            var expiry = keysWithExpiry[redisKey];

            if (expectedDifferentExpiry != null)
            {
                Assert.False(expiry.Equals(new MockRedisValueWithExpiry(expectedIncrementedValue, DateTime.UtcNow + specifiedExpiry)));
                Assert.True(expiry.Equals(new MockRedisValueWithExpiry(expectedIncrementedValue, DateTime.UtcNow + expectedDifferentExpiry.Value)));
            }
            else
            {
                Assert.True(expiry.Equals(new MockRedisValueWithExpiry(expectedIncrementedValue, DateTime.UtcNow + specifiedExpiry)));
            }
        }