Пример #1
0
 public void WasabiRulesEngine_AddDuplicateRule()
 {
     var rule1 = new WasabiWebRule("tom", 3, 3);
     var rule2 = new WasabiWebRule("tom", 3, 3);
     var engine = new WasabiWebRulesEngine("mysite", 3);
     engine.AddRule(rule1);
     engine.AddRule(rule2);
 }
Пример #2
0
        public void WasabiRulesEngine_AddDuplicateRule()
        {
            var rule1  = new WasabiWebRule("tom", 3, 3);
            var rule2  = new WasabiWebRule("tom", 3, 3);
            var engine = new WasabiWebRulesEngine("mysite", 3);

            engine.AddRule(rule1);
            engine.AddRule(rule2);
        }
Пример #3
0
        public void WasabiRulesEngine_CreateManyWithAnd_ScaleUp()
        {
            // arrange - tom is 5 and bob is 9
            var rule1 = new WasabiWebRule("tom", 4, 2);
            var rule2 = new WasabiWebRule("bob", 8, 2);
            var engine = new WasabiWebRulesEngine("mysite", 3);
            engine.AddRule(rule1);
            engine.AddRule(rule2);

            // act
            var response = engine.Scale(WasabiWebLogicalOperation.And, AddSecondMetric());
            // assert
            response.Should().Be(WasabiWebState.ScaleUp);
        }
Пример #4
0
        public void WasabiRulesEngine_CreateSingle_ScaleDown()
        {
            // arrange
            var rule   = new WasabiWebRule("tom", 9, 6);
            var engine = new WasabiWebRulesEngine("mysite", 3);

            engine.AddRule(rule);

            // act
            var response = engine.Scale(WasabiWebLogicalOperation.And, GetInitialMetric());

            // assert
            response.Should().Be(WasabiWebState.ScaleDown);
        }
Пример #5
0
        public void WasabiRulesEngine_CreateManyWithAnd_ScaleDown3()
        {
            // arrange - tom is 5 and bob is 9 bill is 11
            var rule1 = new WasabiWebRule("tom", 14, 6); // scale down
            var rule2 = new WasabiWebRule("bob", 8, 6); // scale up
            var rule3 = new WasabiWebRule("bill", 17, 12); // scale down
            var engine = new WasabiWebRulesEngine("mysite", 3);
            engine.AddRule(rule1);
            engine.AddRule(rule2);
            engine.AddRule(rule3);

            // act
            var response = engine.Scale(WasabiWebLogicalOperation.And, AddThirdMetric());
            // assert
            response.Should().Be(WasabiWebState.LeaveUnchanged);
        }
Пример #6
0
        public void WasabiRulesEngine_CreateManyWithOr_Unchanged()
        {
            // arrange - tom is 5 and bob is 9 bill is
            var rule1  = new WasabiWebRule("tom", 14, 6);
            var rule2  = new WasabiWebRule("bob", 8, 6);
            var engine = new WasabiWebRulesEngine("mysite", 3);

            engine.AddRule(rule1);
            engine.AddRule(rule2);

            // act
            var response = engine.Scale(WasabiWebLogicalOperation.Or, AddSecondMetric());

            // assert
            response.Should().Be(WasabiWebState.LeaveUnchanged);
        }
Пример #7
0
        public void WasabiRulesEngine_CreateManyWithAnd_ScaleDown()
        {
            // arrange - tom is 5 and bob is 9
            var rule1  = new WasabiWebRule("tom", 14, 6);
            var rule2  = new WasabiWebRule("bob", 18, 10);
            var engine = new WasabiWebRulesEngine("mysite", 3);

            engine.AddRule(rule1);
            engine.AddRule(rule2);

            // act
            var response = engine.Scale(WasabiWebLogicalOperation.And, AddSecondMetric());

            // assert
            response.Should().Be(WasabiWebState.ScaleDown);
        }
Пример #8
0
        public void WasabiRulesEngine_CreateManyWithAnd_ScaleDown3()
        {
            // arrange - tom is 5 and bob is 9 bill is 11
            var rule1  = new WasabiWebRule("tom", 14, 6);   // scale down
            var rule2  = new WasabiWebRule("bob", 8, 6);    // scale up
            var rule3  = new WasabiWebRule("bill", 17, 12); // scale down
            var engine = new WasabiWebRulesEngine("mysite", 3);

            engine.AddRule(rule1);
            engine.AddRule(rule2);
            engine.AddRule(rule3);

            // act
            var response = engine.Scale(WasabiWebLogicalOperation.And, AddThirdMetric());

            // assert
            response.Should().Be(WasabiWebState.LeaveUnchanged);
        }
Пример #9
0
        public void WasabiWeb_WasabiRule_Create()
        {
            var rule = new WasabiWebRule("name", 3, 3);

            rule.MetricName.Should().Be("name");
            rule.IsLessThan.Should().Be(3);
            rule.IsGreaterThan.Should().Be(3);
        }
Пример #10
0
        public void WasabiRulesEngine_CreateSingle_Unchanged()
        {
            // arrange
            var rule = new WasabiWebRule("tom", 9, 6);
            var engine = new WasabiWebRulesEngine("mysite", 3);
            engine.AddRule(rule);

            // act
            var response = engine.Scale(WasabiWebLogicalOperation.And, GetInitialMetric());
            // assert
            response.Should().Be(WasabiWebState.ScaleDown);
        }
Пример #11
0
        public void WasabiRulesEngine_CreateManyWithOr_Unchanged()
        {
            // arrange - tom is 5 and bob is 9 bill is
            var rule1 = new WasabiWebRule("tom", 14, 6);
            var rule2 = new WasabiWebRule("bob", 8, 6);
            var engine = new WasabiWebRulesEngine("mysite", 3);
            engine.AddRule(rule1);
            engine.AddRule(rule2);

            // act
            var response = engine.Scale(WasabiWebLogicalOperation.Or, AddSecondMetric());
            // assert
            response.Should().Be(WasabiWebState.LeaveUnchanged);
        }