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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }