test/EasyFrameWork.Test/RuleEngineTest.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/* http://www.zkea.net/ 
 * Copyright 2018 ZKEASOFT 
 * http://www.zkea.net/licenses */

using Easy;
using Easy.Cache;
using Easy.Extend;
using Easy.Mvc;
using Easy.RuleEngine;
using Easy.RuleEngine.RuleProviders;
using Easy.RuleEngine.Scripting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;

namespace EasyFrameWork.Test
{
    [TestClass]
    public class RuleEngineTest
    {
        public ServiceProvider ServiceProvider { get; set; }
        public RuleEngineTest()
        {
            var serviceCollection = new ServiceCollection();
            serviceCollection.AddTransient<IRuleManager, RuleManager>();
            serviceCollection.AddTransient<IRuleProvider, CommonMethodsRuleProvider>();
            serviceCollection.AddTransient<IRuleProvider, ValueOfRuleProvider>();
            serviceCollection.AddTransient<IRuleProvider, DateRuleProvider>();
            serviceCollection.AddTransient<IRuleProvider, MoneyRuleProvider>();
            serviceCollection.AddTransient<IScriptExpressionEvaluator, ScriptExpressionEvaluator>();

            serviceCollection.AddSingleton<ICacheProvider, DefaultCacheProvider>();
            serviceCollection.AddSingleton(serviceProvider => serviceProvider.GetService<ICacheProvider>().Build<ScriptExpressionResult>());

            ServiceProvider = serviceCollection.BuildServiceProvider();
        }
        [TestMethod]
        public void TestCommonMethod()
        {
            var ruleManger = ServiceProvider.GetService<IRuleManager>();
            Assert.IsTrue(ruleManger.IsTrue("In('1',['1','2','3'])"));
            Assert.IsTrue(ruleManger.IsTrue("In(1,[1,2,3])"));
            Assert.IsTrue(ruleManger.IsTrue("Equals(1,1)"));
            Assert.IsTrue(ruleManger.IsTrue("Equals('1','1')"));
            Assert.IsTrue(ruleManger.IsTrue("NotEquals('1',1)"));
            Assert.IsTrue(ruleManger.IsTrue("StartsWith('123','1')"));
            Assert.IsTrue(ruleManger.IsTrue("EndsWith('123','3')"));
            Assert.IsTrue(ruleManger.IsTrue("Contains('123','2')"));
            Assert.IsTrue(ruleManger.IsTrue("NotStartsWith('123','2')"));
            Assert.IsTrue(ruleManger.IsTrue("NotEndsWith('123','2')"));
            Assert.IsTrue(ruleManger.IsTrue("NotContains('123','4')"));
            Assert.IsTrue(ruleManger.IsTrue("IsBlank('')"));
            Assert.IsTrue(ruleManger.IsTrue("IsNotBlank('3')"));
            Assert.IsTrue(ruleManger.IsTrue("3>1"));
            Assert.IsTrue(ruleManger.IsTrue("3.1>1.0 and 2>1"));
            Assert.IsTrue(ruleManger.IsTrue("3.1>1.0 or 2<1"));
            Assert.IsTrue(ruleManger.IsTrue("3.1>1.0 && 2>1"));
            Assert.IsTrue(ruleManger.IsTrue("3.1>1.0 || 2<1"));
            Assert.IsTrue(ruleManger.IsTrue("Money('3.1')>1.0 || 2<1"));
        }
后面还有 17 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。