public void StateTransitionRule_WhenInvalid_ReturnsFalse() { // ARRANGE GameStateTransition nullToIntro = new GameStateTransition(GameState.NullState, GameState.Intro); GameStateTransition introToMainMenu = new GameStateTransition(GameState.Intro, GameState.MainMenu); GameStateTransition mainMenuToNewGame = new GameStateTransition(GameState.MainMenu, GameState.NewGame); GameStateTransition actualTransition = new GameStateTransition(GameState.NullState, GameState.MainMenu); // ACT var transitionNullToIntro = new StateTransitionRule(nullToIntro); var transitionIntroToMainMenu = new StateTransitionRule(introToMainMenu); var transitionMainMenuToNewGame = new StateTransitionRule(mainMenuToNewGame); // Create the rule engine and add the rules var stateTransitionRuleEngine = new RuleEngine <GameStateTransition>(); stateTransitionRuleEngine.ActualValue = actualTransition; stateTransitionRuleEngine.Add(transitionNullToIntro); stateTransitionRuleEngine.Add(transitionIntroToMainMenu); stateTransitionRuleEngine.Add(transitionMainMenuToNewGame); // Get the result var result = stateTransitionRuleEngine.MatchAny(); // ASSERT Assert.IsFalse(result); }
public void StateTransitionRule_WhenValid_ReturnsTrue() { // ARRANGE GameStateTransition nullToIntro = new GameStateTransition(GameState.NullState, GameState.Intro); GameStateTransition introToMainMenu = new GameStateTransition(GameState.Intro, GameState.MainMenu); GameStateTransition mainMenuToNewGame = new GameStateTransition(GameState.MainMenu, GameState.NewGame); GameStateTransition actualTransition = new GameStateTransition(GameState.Intro, GameState.MainMenu); // ACT var transitionNullToIntro = new StateTransitionRule(nullToIntro); var transitionIntroToMainMenu = new StateTransitionRule(introToMainMenu); var transitionMainMenuToNewGame = new StateTransitionRule(mainMenuToNewGame); // Create the rule engine and add the rules var stateTransitionRuleEngine = new RuleEngine<GameStateTransition>(); stateTransitionRuleEngine.ActualValue = actualTransition; stateTransitionRuleEngine.Add(transitionNullToIntro); stateTransitionRuleEngine.Add(transitionIntroToMainMenu); stateTransitionRuleEngine.Add(transitionMainMenuToNewGame); // Get the result var result = stateTransitionRuleEngine.MatchAny(); // ASSERT Assert.IsTrue(result); }
public void GreaterThanRule_MultipleValuesWhenGreater_ResultsTrueForAll() { // ARRANGE int threshold = 5; int actual1 = 7; int actual2 = 10; // ACT var integerRule = new IntegerGreaterThanRule(threshold); var integerRuleEngine = new RuleEngine <int>(); integerRuleEngine.Add(integerRule); // Set the first actual and get the result integerRuleEngine.ActualValue = actual1; var result1 = integerRuleEngine.MatchAll(); // Set the second actual and get the result integerRuleEngine.ActualValue = actual2; var result2 = integerRuleEngine.MatchAll(); // ASSERT Assert.IsTrue(result1); Assert.IsTrue(result2); }
public void GreaterThanRule_MultipleValuesWhenGreater_ResultsTrueForAll() { // ARRANGE int threshold = 5; int actual1 = 7; int actual2 = 10; // ACT var integerRule = new IntegerGreaterThanRule(threshold); var integerRuleEngine = new RuleEngine<int>(); integerRuleEngine.Add(integerRule); // Set the first actual and get the result integerRuleEngine.ActualValue = actual1; var result1 = integerRuleEngine.MatchAll(); // Set the second actual and get the result integerRuleEngine.ActualValue = actual2; var result2 = integerRuleEngine.MatchAll(); // ASSERT Assert.IsTrue(result1); Assert.IsTrue(result2); }
public void GreaterThanRule_WhenGreater_ResultsTrue() { // ARRANGE int threshold = 5; int actual = 10; // ACT var integerRule = new IntegerGreaterThanRule(threshold); var integerRuleEngine = new RuleEngine<int>(); integerRuleEngine.ActualValue = actual; integerRuleEngine.Add(integerRule); // Get the result var result = integerRuleEngine.MatchAll(); // ASSERT Assert.IsTrue(result); }
public void IntegerGreaterThanEqualToRule_WhenLessThan_ResultsFalse() { // ARRANGE int threshold = 5; int actual = 3; // ACT var integerRule = new IntegerGreaterThanEqualToRule(threshold); var integerRuleEngine = new RuleEngine <int>(); integerRuleEngine.ActualValue = actual; integerRuleEngine.Add(integerRule); // Get the result var result = integerRuleEngine.MatchAny(); // ASSERT Assert.IsFalse(result); }
public void GreaterThanRule_WhenGreater_ResultsTrue() { // ARRANGE int threshold = 5; int actual = 10; // ACT var integerRule = new IntegerGreaterThanRule(threshold); var integerRuleEngine = new RuleEngine <int>(); integerRuleEngine.ActualValue = actual; integerRuleEngine.Add(integerRule); // Get the result var result = integerRuleEngine.MatchAll(); // ASSERT Assert.IsTrue(result); }
public void IntegerGreaterThanEqualToRule_WhenEqualTo_ResultsTrue() { // ARRANGE int threshold = 5; int actual = 5; // ACT var integerRule = new IntegerGreaterThanEqualToRule(threshold); //integerRule.Initialize(threshold, actual); var integerRuleEngine = new RuleEngine <int>(); integerRuleEngine.ActualValue = actual; integerRuleEngine.Add(integerRule); // Get the result var result = integerRuleEngine.MatchAny(); // ASSERT Assert.IsTrue(result); }
public void IntegerGreaterThanEqualToRule_WhenLessThan_ResultsFalse() { // ARRANGE int threshold = 5; int actual = 3; // ACT var integerRule = new IntegerGreaterThanEqualToRule(threshold); var integerRuleEngine = new RuleEngine<int>(); integerRuleEngine.ActualValue = actual; integerRuleEngine.Add(integerRule); // Get the result var result = integerRuleEngine.MatchAny(); // ASSERT Assert.IsFalse(result); }
public void IntegerGreaterThanEqualToRule_WhenEqualTo_ResultsTrue() { // ARRANGE int threshold = 5; int actual = 5; // ACT var integerRule = new IntegerGreaterThanEqualToRule(threshold); //integerRule.Initialize(threshold, actual); var integerRuleEngine = new RuleEngine<int>(); integerRuleEngine.ActualValue = actual; integerRuleEngine.Add(integerRule); // Get the result var result = integerRuleEngine.MatchAny(); // ASSERT Assert.IsTrue(result); }