tests/DotNetCommon.Test/EasyComparer/EasyComparerTests.cs

(开头部分) 25KB

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

namespace DotNetCommon.Test.EasyComparer
{
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Diagnostics;
    using System.Linq;
    using DotNetCommon.EasyComparer;
    using NUnit.Framework;
    using Shouldly;

    [TestFixture]
    internal sealed class EasyComparerTests
    {
        [Test]
        public void When_getting_instance_multiple_times()
        {
            var one = EasyComparer.Instance;
            var two = EasyComparer.Instance;
            one.ShouldBeSameAs(two);
        }

        [Test]
        public void When_comparing_a_reference_object_to_itself_including_base_excluding_privates()
        {
            var obj = new SomeClass();

            EasyComparer.Instance.Compare(obj, obj, true, false, out var result)
                .ShouldBeTrue();

            result.ShouldNotBeNull();
            result.Count.ShouldBe(12);
            result.ShouldAllBe(v => v.Value.Varies == false);

            result.ShouldContain(p => p.Key.Name == "Id");
            result.ShouldContain(p => p.Key.Name == "Age");
            result.ShouldContain(p => p.Key.Name == "Stopwatch");
            result.ShouldContain(p => p.Key.Name == "Bytes");
            result.ShouldContain(p => p.Key.Name == "Name");
            result.ShouldContain(p => p.Key.Name == "SomeArray");
            result.ShouldContain(p => p.Key.Name == "SomeList");
            result.ShouldContain(p => p.Key.Name == "SomeCollection");
            result.ShouldContain(p => p.Key.Name == "SomeEnumerable");
            result.ShouldContain(p => p.Key.Name == "SomeDictionary");
            result.ShouldContain(p => p.Key.Name == "SomeNullable");
            result.ShouldContain(p => p.Key.Name == "SomeDate");

            result.ShouldNotContain(p => p.Key.Name == "SomePrivate");
            result.ShouldNotContain(p => p.Key.Name == "SomeInternal");
        }

        [Test]
        public void When_comparing_a_reference_object_to_itself_including_base_including_privates()
        {
            var obj = new SomeClass();

            EasyComparer.Instance.Compare(obj, obj, true, true, out var result)
                .ShouldBeTrue();

            result.ShouldNotBeNull();
后面还有 626 行代码,解锁后查看完整代码

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

AI 解读

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

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