Esempio n. 1
0
        public void CanScaleBetween(string fromString, string toString)
        {
            var from = RedisClusterSize.TryParse(fromString).ThrowIfFailure();
            var to   = RedisClusterSize.TryParse(toString).ThrowIfFailure();

            Assert.True(RedisScalingUtilities.CanScale(from, to));
        }
Esempio n. 2
0
        public void CantScaleIfEitherInstanceOrPlanChanges()
        {
            var cantScaleRelation =
                from source in RedisClusterSize.Instances
                from target in RedisClusterSize.Instances
                where !source.Equals(target)
                where !RedisScalingUtilities.CanScale(source, target)
                select(source, target);

            foreach (var(source, target) in cantScaleRelation)
            {
                (!source.Tier.Equals(target.Tier) || source.Shards != target.Shards).Should().BeTrue($"{source} -> {target}");
            }
        }
Esempio n. 3
0
        public void CanChangeShardsWithinSameTier()
        {
            foreach (var group in RedisClusterSize.Instances.GroupBy(size => size.Tier))
            {
                var instances = group.ToList();

                foreach (var inst1 in instances)
                {
                    foreach (var inst2 in instances)
                    {
                        Assert.True(RedisScalingUtilities.CanScale(inst1, inst2));
                    }
                }
            }
        }
Esempio n. 4
0
        public void CanScaleAcrossPremiumPlansWhenShardsRemainEqual()
        {
            foreach (var group in RedisClusterSize
                     .Instances
                     .Where(size => size.Tier.Plan == RedisPlan.Premium)
                     .GroupBy(size => size.Shards))
            {
                var instances = group.ToList();

                foreach (var inst1 in instances)
                {
                    foreach (var inst2 in instances)
                    {
                        Assert.True(RedisScalingUtilities.CanScale(inst1, inst2));
                    }
                }
            }
        }