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