46 lines
1.7 KiB
C#
46 lines
1.7 KiB
C#
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT License.
|
|
|
|
using RulesEngine.Models;
|
|
using System;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Dynamic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Xunit;
|
|
|
|
namespace RulesEngine.UnitTest
|
|
{
|
|
[ExcludeFromCodeCoverage]
|
|
public class ParameterNameChangeTest
|
|
{
|
|
[Fact]
|
|
public async Task RunTwiceTest_ReturnsExpectedResults()
|
|
{
|
|
var workflow = new Workflow {
|
|
WorkflowName = "ParameterNameChangeWorkflow",
|
|
Rules = new Rule[] {
|
|
new Rule {
|
|
RuleName = "ParameterNameChangeRule",
|
|
RuleExpressionType = RuleExpressionType.LambdaExpression,
|
|
Expression = "test.blah == 1"
|
|
}
|
|
}
|
|
};
|
|
var engine = new RulesEngine();
|
|
engine.AddOrUpdateWorkflow(workflow);
|
|
|
|
dynamic dynamicBlah = new ExpandoObject();
|
|
dynamicBlah.blah = (Int64)1;
|
|
var input_pass = new RuleParameter("test", dynamicBlah);
|
|
var input_fail = new RuleParameter("SOME_OTHER_NAME", dynamicBlah);
|
|
// RuleParameter name matches expression, so should pass.
|
|
var pass_results = await engine.ExecuteAllRulesAsync("ParameterNameChangeWorkflow", input_pass);
|
|
// RuleParameter name DOES NOT MATCH expression, so should fail.
|
|
var fail_results = await engine.ExecuteAllRulesAsync("ParameterNameChangeWorkflow", input_fail);
|
|
Assert.True(pass_results.First().IsSuccess);
|
|
Assert.False(fail_results.First().IsSuccess);
|
|
}
|
|
}
|
|
}
|