From 48b466cfe08fea84f98d6be51f9f08f0168b9b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ta=C5=9Fk=C4=B1n=20=C3=96zdemir?= Date: Fri, 1 Mar 2024 11:22:32 +0300 Subject: [PATCH] Update BusinessRuleEngineTest.cs --- .../RulesEngine.UnitTest/BusinessRuleEngineTest.cs | 33 +++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/test/RulesEngine.UnitTest/BusinessRuleEngineTest.cs b/test/RulesEngine.UnitTest/BusinessRuleEngineTest.cs index d27d6cd..c2414b8 100644 --- a/test/RulesEngine.UnitTest/BusinessRuleEngineTest.cs +++ b/test/RulesEngine.UnitTest/BusinessRuleEngineTest.cs @@ -836,7 +836,38 @@ namespace RulesEngine.UnitTest Assert.All(result, rule => Assert.StartsWith("Error while executing rule :", rule.ExceptionMessage)); } + [Fact] + public async Task ExecuteRule_RuntimeErrorInPreviousRun_ShouldReturnEmptyErrorMessage() + { + var workflow = new Workflow { + WorkflowName = "TestWorkflow", + Rules = new[] { + new Rule { + RuleName = "ruleWithRuntimeError", + Expression = "input1.Country.ToLower() == \"india\"" + } + } + }; + var re = new RulesEngine(new[] { workflow }, null); + var input = new RuleTestClass { + Country = null + }; + + var result = await re.ExecuteAllRulesAsync("TestWorkflow", input); + + Assert.NotNull(result); + Assert.All(result, rule => Assert.False(rule.IsSuccess)); + Assert.All(result, rule => Assert.StartsWith("Error while executing rule :", rule.ExceptionMessage)); + + input.Country="india"; + result = await re.ExecuteAllRulesAsync("TestWorkflow", input); + + Assert.NotNull(result); + Assert.All(result, rule => Assert.True(rule.IsSuccess)); + Assert.All(result, rule => Assert.Empty(rule.ExceptionMessage)); + } + [Fact] public async Task ExecuteRule_RuntimeError_ThrowsException() { @@ -1166,4 +1197,4 @@ namespace RulesEngine.UnitTest } } -} \ No newline at end of file +}