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() );
}
}
}