50 lines
1.6 KiB
C#
50 lines
1.6 KiB
C#
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT License.
|
|
|
|
using RulesEngine.ExpressionBuilders;
|
|
using RulesEngine.Models;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
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 RuleParameter("RequestType","Sales"),
|
|
new RuleParameter("RequestStatus", "Active"),
|
|
new RuleParameter("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.Add(dummyRule);
|
|
var func = builder.BuildDelegateForRule(dummyRule, ruleParameters);
|
|
|
|
Assert.NotNull(func);
|
|
Assert.Equal(typeof(RuleResultTree), func.Method.ReturnType);
|
|
}
|
|
}
|
|
}
|