mirror of
https://github.com/dotnetcore/Util.git
synced 2026-10-28 02:46:37 +08:00
148 lines
4.2 KiB
C#
148 lines
4.2 KiB
C#
namespace Util.IdGenerator.Tests.Helpers;
|
|
|
|
/// <summary>
|
|
/// Id测试
|
|
/// </summary>
|
|
public class IdTest {
|
|
/// <summary>
|
|
/// 输出日志
|
|
/// </summary>
|
|
private readonly ITestOutputHelper _output;
|
|
|
|
/// <summary>
|
|
/// 测试初始化
|
|
/// </summary>
|
|
public IdTest( ITestOutputHelper output ) {
|
|
_output = output;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试设置自定义标识
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestSetId_1() {
|
|
var guid = Guid.NewGuid().ToString();
|
|
Id.SetId( guid );
|
|
Assert.Equal( guid, Id.Create() );
|
|
Assert.Equal( new Guid( guid ), Id.CreateGuid() );
|
|
Assert.Equal( guid, Id.CreateNanoid() );
|
|
Id.Reset();
|
|
Assert.NotEqual( guid, Id.Create() );
|
|
Assert.NotEqual( new Guid( guid ), Id.CreateGuid() );
|
|
Assert.NotEqual( guid, Id.CreateNanoid() );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试设置自定义标识 - Nanoid异步方法
|
|
/// </summary>
|
|
[Fact]
|
|
public async Task TestSetId_2() {
|
|
var guid = Guid.NewGuid().ToString();
|
|
Id.SetId( guid );
|
|
Assert.Equal( guid, await Id.CreateNanoidAsync() );
|
|
Id.Reset();
|
|
Assert.NotEqual( guid, await Id.CreateNanoidAsync() );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试设置自定义标识 - YitId
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestSetId_3() {
|
|
var id = 1;
|
|
Id.SetId( id.ToString() );
|
|
Assert.Equal( id, Id.CreateYitId() );
|
|
Id.Reset();
|
|
Assert.NotEqual( id, Id.CreateYitId() );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试 Nanoid - 默认返回21个字符
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestCreateNanoid_1() {
|
|
var id = Id.CreateNanoid();
|
|
_output.WriteLine( id );
|
|
Assert.Equal( 21, id.Length );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试 Nanoid - 设置字符数
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestCreateNanoid_2() {
|
|
var id = Id.CreateNanoid( 10 );
|
|
_output.WriteLine( id );
|
|
Assert.Equal( 10, id.Length );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试 Nanoid - 设置可选字符
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestCreateNanoid_3() {
|
|
var id = Id.CreateNanoid( "ab" );
|
|
_output.WriteLine( id );
|
|
Assert.Equal( 21, id.Count( t => t == 'a' ) + id.Count( t => t == 'b' ) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试 Nanoid - 设置可选字符和字符数
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestCreateNanoid_4() {
|
|
var id = Id.CreateNanoid( "ab", 10 );
|
|
_output.WriteLine( id );
|
|
Assert.Equal( 10, id.Count( t => t == 'a' ) + id.Count( t => t == 'b' ) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试 Nanoid - 默认返回21个字符
|
|
/// </summary>
|
|
[Fact]
|
|
public async Task TestCreateNanoidAsync_1() {
|
|
var id = await Id.CreateNanoidAsync();
|
|
_output.WriteLine( id );
|
|
Assert.Equal( 21, id.Length );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试 Nanoid - 设置字符数
|
|
/// </summary>
|
|
[Fact]
|
|
public async Task TestCreateNanoidAsync_2() {
|
|
var id = await Id.CreateNanoidAsync( 10 );
|
|
_output.WriteLine( id );
|
|
Assert.Equal( 10, id.Length );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试 Nanoid - 设置可选字符
|
|
/// </summary>
|
|
[Fact]
|
|
public async Task TestCreateNanoidAsync_3() {
|
|
var id = await Id.CreateNanoidAsync( "ab" );
|
|
_output.WriteLine( id );
|
|
Assert.Equal( 21, id.Count( t => t == 'a' ) + id.Count( t => t == 'b' ) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试 Nanoid - 设置可选字符和字符数
|
|
/// </summary>
|
|
[Fact]
|
|
public async Task TestCreateNanoidAsync_4() {
|
|
var id = await Id.CreateNanoidAsync( "ab", 10 );
|
|
_output.WriteLine( id );
|
|
Assert.Equal( 10, id.Count( t => t == 'a' ) + id.Count( t => t == 'b' ) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试使用 YitIdHelper 雪花漂移算法创建标识
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestCreateYitId() {
|
|
var id = Id.CreateYitId();
|
|
_output.WriteLine( id.ToString() );
|
|
Assert.NotEqual( 0, id );
|
|
}
|
|
} |