tests/DotNetCommon.Test/Accessors/GenericAccessorTests.cs

(开头部分) 10KB

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

namespace DotNetCommon.Test.Accessors
{
    using System;
    using System.Diagnostics.CodeAnalysis;
    using DotNetCommon.Accessors;
    using NUnit.Framework;
    using Shouldly;

    [TestFixture]
    [SuppressMessage("ReSharper", "RedundantTypeArgumentsOfMethod")]
    public sealed class GenericAccessorTests
    {
        [Test]
        public void When_creating_generic_accessor_with_default_flags()
        {
            var parent = new Parent();
            GenericAccessor<Parent> parentAccessor = Accessor.Build<Parent>();
            parentAccessor.ShouldBeOfType<GenericAccessor<Parent>>();
            parentAccessor.Type.ShouldBe(typeof(Parent));
            parentAccessor.IgnoreCase.ShouldBe(false);
            parentAccessor.IncludesNonPublic.ShouldBe(false);

            parentAccessor.ShouldNotBeNull();
            parentAccessor.Properties.ShouldNotBeNull();
            parentAccessor.Properties.Count.ShouldBe(2);

            parentAccessor.Properties["Name"].PropertyType.ShouldBe(typeof(string));
            parentAccessor.Properties["Age"].PropertyType.ShouldBe(typeof(int));

            parentAccessor[parent, "Name"].ShouldBeNull();
            parentAccessor[parent, "Name"] = "Foo";
            parentAccessor[parent, "Name"].ShouldBe("Foo");

            parentAccessor[parent, "Age"].ShouldBe(0);
            parentAccessor[parent, "Age"] = 10;
            parentAccessor[parent, "Age"].ShouldBe(10);

            var child = new Child();
            GenericAccessor<Child> childAccessor = Accessor.Build<Child>();
            childAccessor.ShouldBeOfType<GenericAccessor<Child>>();
            childAccessor.Type.ShouldBe(typeof(Child));
            childAccessor.IgnoreCase.ShouldBe(false);
            childAccessor.IncludesNonPublic.ShouldBe(false);

            childAccessor.ShouldNotBeNull();
            childAccessor.Properties.ShouldNotBeNull();
            childAccessor.Properties.Count.ShouldBe(3);

            childAccessor.Properties["ChildName"].PropertyType.ShouldBe(typeof(string));
            childAccessor.Properties["Name"].PropertyType.ShouldBe(typeof(string));
            childAccessor.Properties["Age"].PropertyType.ShouldBe(typeof(int));

            childAccessor[child, "ChildName"].ShouldBe("Bar");
            childAccessor[child, "ChildName"] = "BarBar";
            childAccessor[child, "ChildName"].ShouldBe("BarBar");

            childAccessor[child, "Name"].ShouldBeNull();
            childAccessor[child, "Name"] = "Foo";
            childAccessor[child, "Name"].ShouldBe("Foo");
        }
后面还有 187 行代码,解锁后查看完整代码

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

AI 解读

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

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