コード例 #1
0
        public Task PrefersAddingShardsWhenMemoryGrowsAsync(string initialClusterSize, IEnumerable <string> expectedPath, string usedMemoryAcrossAllShards)
        {
            return(RunTestAsync(async(operationContext, redisAutoscalingAgent) =>
            {
                redisAutoscalingAgent.UsedMemoryBytes.Add(usedMemoryAcrossAllShards.ToSize());
                redisAutoscalingAgent.OperationsPerSecond.Add(10);

                var redisInstance = new MockRedisInstance(RedisClusterSize.Parse(initialClusterSize));
                var modelOutput = await redisAutoscalingAgent
                                  .EstimateBestClusterSizeAsync(operationContext, redisInstance)
                                  .ThrowIfFailureAsync();

                modelOutput
                .ScalePath
                .Should()
                .BeEquivalentTo(expectedPath.Select(size => RedisClusterSize.Parse(size)));
            }));
        }
コード例 #2
0
        public Task DisallowsLowCostDownscalesAsync()
        {
            return(RunTestAsync(async(operationContext, redisAutoscalingAgent) =>
            {
                var redisInstance = new MockRedisInstance(RedisClusterSize.Parse("P2/1"));
                redisAutoscalingAgent.UsedMemoryBytes.Add("7.4 GB".ToSize());
                redisAutoscalingAgent.OperationsPerSecond.Add(10000);

                var modelOutput = await redisAutoscalingAgent
                                  .EstimateBestClusterSizeAsync(operationContext, redisInstance)
                                  .ThrowIfFailureAsync();

                modelOutput
                .ScalePath
                .Should()
                .BeEmpty();
            }));
        }