tests/DotNetCommon.Test/Validate/ValidWithDisplayNameTests.cs

(开头部分) 1KB

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

using DotNetCommon.Validate;
using NUnit.Framework;
using Shouldly;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace DotNetCommon.Test.Validate
{
    [TestFixture]
    public class ValidWithDisplayNameTests
    {
        [Test]
        public void Test()
        {
            var person = new Person()
            {
                Id = 1,
                Name = "小明",
                Book = new Book()
                {
                    Id = 2,
                    Name = "语文"
                }
            };
            /*
            'Id' 不能等于 '1'!
            '姓名' 不能等于 '小明'!
            '书籍.主键' 不能等于 '2'!
            '书籍.名称' 不能等于 '语文'!
            */
            var errorMessage = ValidateModelHelper.ValidErrorMessage(person, Person.ValidateTest);
            errorMessage.ShouldNotBeNullOrWhiteSpace();
        }

        #region 特性实体
        [DisplayName("人员")]
        public class Person
        {
            public int Id { get; set; }

            [DisplayName("姓名")]
            public string Name { get; set; }

            [DisplayName("书籍")]
            public Book Book { get; set; }

            public static void ValidateTest(ValidateContext<Person> ctx)
            {
                ctx.RuleFor(i => i.Id).MustNotEqualTo(1);
                ctx.RuleFor(i => i.Name).MustNotEqualTo("小明");
                var ctxBook = ctx.RuleFor(i => i.Book).MustNotNull();
                ctxBook.RuleFor(i => i.Id).MustNotEqualTo(2);
                ctxBook.RuleFor(i => i.Name).MustNotEqualTo("语文");
            }
        }

        [DisplayName("书籍实体")]
        public class Book
后面还有 10 行代码,解锁后查看完整代码

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

AI 解读

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

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