using System; using System.Collections.Generic; using Castle.Components.DictionaryAdapter; using NSubstitute; using Util.Domains.Trees; using Util.Tests.Samples; using Xunit; namespace Util.Tests { /// /// 扩展测试 - 树型扩展 /// public partial class ExtensionTest { /// /// 检查空值,不为空则正常执行 /// [Fact] public void TestSwapSort() { var entity = Substitute.For(); var swapEntity = Substitute.For(); entity.SortId = 1; swapEntity.SortId = 2; entity.SwapSort( swapEntity ); Assert.Equal( 2,entity.SortId ); Assert.Equal( 1, swapEntity.SortId ); } /// /// 获取缺失的父标识列表 /// [Fact] public void TestGetMissingParentIds_TreeEntity_1() { var id = Guid.NewGuid(); List samples = new EditableList { new TreeEntitySample(id,$"{id},") }; var result = samples.GetMissingParentIds(); Assert.Empty( result ); } /// /// 获取缺失的父标识列表 /// [Fact] public void TestGetMissingParentIds_TreeEntity_2() { var id = Guid.NewGuid(); var id2 = Guid.NewGuid(); List samples = new EditableList { new TreeEntitySample(id2,$"{id},{id2},"){ParentId = id} }; var result = samples.GetMissingParentIds(); Assert.Single( result ); Assert.Equal( id,result[0].ToGuid() ); } /// /// 获取缺失的父标识列表 - 验证null /// [Fact] public void TestGetMissingParentIds_TreeEntity_3() { var id = Guid.NewGuid(); var id2 = Guid.NewGuid(); List samples = new EditableList { new TreeEntitySample(id2,$"{id},{id2},"){ParentId = id},null }; var result = samples.GetMissingParentIds(); Assert.Single( result ); Assert.Equal( id, result[0].ToGuid() ); } /// /// 获取缺失的父标识列表 - 重复的实体 /// [Fact] public void TestGetMissingParentIds_TreeEntity_4() { var id = Guid.NewGuid(); var id2 = Guid.NewGuid(); List samples = new EditableList { new TreeEntitySample(id2,$"{id},{id2},"){ParentId = id}, new TreeEntitySample(id2,$"{id},{id2},"){ParentId = id} }; var result = samples.GetMissingParentIds(); Assert.Single( result ); Assert.Equal( id, result[0].ToGuid() ); } /// /// 获取缺失的父标识列表 /// [Fact] public void TestGetMissingParentIds_TreeEntity_5() { var id = Guid.NewGuid(); var id2 = Guid.NewGuid(); var id3 = Guid.NewGuid(); List samples = new EditableList { new TreeEntitySample(id2,$"{id},{id2},"){ParentId = id}, new TreeEntitySample(id3,$"{id},{id2},{id3}"){ParentId = id2}, new TreeEntitySample(id2,$"{id},{id2},"){ParentId = id}, new TreeEntitySample(id3,$"{id},{id2},{id3}"){ParentId = id2} }; var result = samples.GetMissingParentIds(); Assert.Single( result ); Assert.Equal( id, result[0].ToGuid() ); } } }