-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLambdaExpressionBuilderTest.cs
43 lines (34 loc) · 1.39 KB
/
LambdaExpressionBuilderTest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using RulesEngine.ExpressionBuilders;
using RulesEngine.Models;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Xunit;
namespace RulesEngine.UnitTest;
[Trait("Category", "Unit")]
[ExcludeFromCodeCoverage]
public class LambdaExpressionBuilderTest
{
[Fact]
public void BuildExpressionForRuleTest()
{
var reSettings = new ReSettings();
var objBuilderFactory = new RuleExpressionBuilderFactory(reSettings, new RuleExpressionParser(reSettings));
var builder = objBuilderFactory.RuleGetExpressionBuilder(RuleExpressionType.LambdaExpression);
var ruleParameters = new RuleParameter[] {
new("RequestType", "Sales"), new("RequestStatus", "Active"), new("RegistrationStatus", "InProcess")
};
var mainRule = new Rule { RuleName = "rule1", Operator = "And", Rules = new List<Rule>() };
var dummyRule = new Rule {
RuleName = "testRule1",
RuleExpressionType = RuleExpressionType.LambdaExpression,
Expression = "RequestType == \"vod\""
};
mainRule.Rules = mainRule.Rules.Append(dummyRule);
var func = builder.BuildDelegateForRule(dummyRule, ruleParameters);
Assert.NotNull(func);
Assert.Equal(typeof(RuleResultTree), func.Method.ReturnType);
}
}