单元测试提高到71%
This commit is contained in:
parent
788ef79634
commit
508e930e01
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
@ -25,6 +26,7 @@ namespace ShardingCore.Helpers
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// https://github.com/Coldairarrow/EFCore.Sharding/blob/master/src/EFCore.Sharding/Migrations/MigrationHelper.cs
|
/// https://github.com/Coldairarrow/EFCore.Sharding/blob/master/src/EFCore.Sharding/Migrations/MigrationHelper.cs
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[ExcludeFromCodeCoverage]
|
||||||
public class MigrationHelper
|
public class MigrationHelper
|
||||||
{
|
{
|
||||||
private MigrationHelper() { }
|
private MigrationHelper() { }
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace ShardingCore.Test.Domain.Entities
|
||||||
|
{
|
||||||
|
public class SysUserModInt
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 用户Id用于分表
|
||||||
|
/// </summary>
|
||||||
|
public int Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 用户名称
|
||||||
|
/// </summary>
|
||||||
|
public string Name { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 用户姓名
|
||||||
|
/// </summary>
|
||||||
|
public int Age { get; set; }
|
||||||
|
public int AgeGroup { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||||
|
using ShardingCore.Test.Domain.Entities;
|
||||||
|
|
||||||
|
namespace ShardingCore.Test.Domain.Maps
|
||||||
|
{
|
||||||
|
public class SysUserModIntMap:IEntityTypeConfiguration<SysUserModInt>
|
||||||
|
{
|
||||||
|
public void Configure(EntityTypeBuilder<SysUserModInt> builder)
|
||||||
|
{
|
||||||
|
|
||||||
|
builder.HasKey(o => o.Id);
|
||||||
|
builder.Property(o => o.Id).ValueGeneratedNever();
|
||||||
|
builder.Property(o => o.Name).HasMaxLength(128);
|
||||||
|
builder.ToTable(nameof(SysUserModInt));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -32,6 +32,7 @@ namespace ShardingCore.Test
|
||||||
modelBuilder.ApplyConfiguration(new LogNoShardingMap());
|
modelBuilder.ApplyConfiguration(new LogNoShardingMap());
|
||||||
modelBuilder.ApplyConfiguration(new LogMonthLongMap());
|
modelBuilder.ApplyConfiguration(new LogMonthLongMap());
|
||||||
modelBuilder.ApplyConfiguration(new LogYearLongMap());
|
modelBuilder.ApplyConfiguration(new LogYearLongMap());
|
||||||
|
modelBuilder.ApplyConfiguration(new SysUserModIntMap());
|
||||||
}
|
}
|
||||||
|
|
||||||
public IRouteTail RouteTail { get; set; }
|
public IRouteTail RouteTail { get; set; }
|
||||||
|
|
|
@ -1270,6 +1270,73 @@ namespace ShardingCore.Test
|
||||||
|
|
||||||
await _virtualDbContext.SaveChangesAsync();
|
await _virtualDbContext.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task Int_ToList_All_Route_Test()
|
||||||
|
{
|
||||||
|
using (_shardingRouteManager.CreateScope())
|
||||||
|
{
|
||||||
|
_shardingRouteManager.Current.TryCreateOrAddMustTail<SysUserModInt>("00");
|
||||||
|
|
||||||
|
var mod00s = await _virtualDbContext.Set<SysUserModInt>().ToListAsync();
|
||||||
|
Assert.Equal(333, mod00s.Count);
|
||||||
|
}
|
||||||
|
var mods = await _virtualDbContext.Set<SysUserModInt>().ToListAsync();
|
||||||
|
Assert.Equal(1000, mods.Count);
|
||||||
|
|
||||||
|
var modOrders1 = await _virtualDbContext.Set<SysUserModInt>().OrderBy(o => o.Age).ToListAsync();
|
||||||
|
int ascAge = 1;
|
||||||
|
foreach (var sysUserMod in modOrders1)
|
||||||
|
{
|
||||||
|
Assert.Equal(ascAge, sysUserMod.Age);
|
||||||
|
ascAge++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var modOrders2 = await _virtualDbContext.Set<SysUserModInt>().OrderByDescending(o => o.Age).ToListAsync();
|
||||||
|
int descAge = 1000;
|
||||||
|
foreach (var sysUserMod in modOrders2)
|
||||||
|
{
|
||||||
|
Assert.Equal(descAge, sysUserMod.Age);
|
||||||
|
descAge--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public async Task Int_ToList_All_Test()
|
||||||
|
{
|
||||||
|
|
||||||
|
var mods = await _virtualDbContext.Set<SysUserModInt>().ToListAsync();
|
||||||
|
Assert.Equal(1000, mods.Count);
|
||||||
|
|
||||||
|
var modOrders1 = await _virtualDbContext.Set<SysUserModInt>().OrderBy(o => o.Age).ToListAsync();
|
||||||
|
int ascAge = 1;
|
||||||
|
foreach (var sysUserMod in modOrders1)
|
||||||
|
{
|
||||||
|
Assert.Equal(ascAge, sysUserMod.Age);
|
||||||
|
ascAge++;
|
||||||
|
}
|
||||||
|
|
||||||
|
var modOrders2 = await _virtualDbContext.Set<SysUserModInt>().OrderByDescending(o => o.Age).ToListAsync();
|
||||||
|
int descAge = 1000;
|
||||||
|
foreach (var sysUserMod in modOrders2)
|
||||||
|
{
|
||||||
|
Assert.Equal(descAge, sysUserMod.Age);
|
||||||
|
descAge--;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var pageResult = await _virtualDbContext.Set<SysUserModInt>().Skip(10).Take(10).OrderByDescending(o => o.Age).ToListAsync();
|
||||||
|
Assert.Equal(10, pageResult.Count);
|
||||||
|
int pageDescAge = 990;
|
||||||
|
foreach (var sysUserMod in pageResult)
|
||||||
|
{
|
||||||
|
Assert.Equal(pageDescAge, sysUserMod.Age);
|
||||||
|
pageDescAge--;
|
||||||
|
}
|
||||||
|
}
|
||||||
// [Fact]
|
// [Fact]
|
||||||
// public async Task Group_API_Test()
|
// public async Task Group_API_Test()
|
||||||
// {
|
// {
|
||||||
|
|
|
@ -1217,6 +1217,72 @@ namespace ShardingCore.Test
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Int_ToList_All_Route_Test()
|
||||||
|
{
|
||||||
|
using (_shardingRouteManager.CreateScope())
|
||||||
|
{
|
||||||
|
_shardingRouteManager.Current.TryCreateOrAddMustTail<SysUserModInt>("00");
|
||||||
|
|
||||||
|
var mod00s = _virtualDbContext.Set<SysUserModInt>().ToList();
|
||||||
|
Assert.Equal(333, mod00s.Count);
|
||||||
|
}
|
||||||
|
var mods = _virtualDbContext.Set<SysUserModInt>().ToList();
|
||||||
|
Assert.Equal(1000, mods.Count);
|
||||||
|
|
||||||
|
var modOrders1 = _virtualDbContext.Set<SysUserModInt>().OrderBy(o => o.Age).ToList();
|
||||||
|
int ascAge = 1;
|
||||||
|
foreach (var sysUserMod in modOrders1)
|
||||||
|
{
|
||||||
|
Assert.Equal(ascAge, sysUserMod.Age);
|
||||||
|
ascAge++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var modOrders2 = _virtualDbContext.Set<SysUserModInt>().OrderByDescending(o => o.Age).ToList();
|
||||||
|
int descAge = 1000;
|
||||||
|
foreach (var sysUserMod in modOrders2)
|
||||||
|
{
|
||||||
|
Assert.Equal(descAge, sysUserMod.Age);
|
||||||
|
descAge--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void Int_ToList_All_Test()
|
||||||
|
{
|
||||||
|
|
||||||
|
var mods = _virtualDbContext.Set<SysUserModInt>().ToList();
|
||||||
|
Assert.Equal(1000, mods.Count);
|
||||||
|
|
||||||
|
var modOrders1 = _virtualDbContext.Set<SysUserModInt>().OrderBy(o => o.Age).ToList();
|
||||||
|
int ascAge = 1;
|
||||||
|
foreach (var sysUserMod in modOrders1)
|
||||||
|
{
|
||||||
|
Assert.Equal(ascAge, sysUserMod.Age);
|
||||||
|
ascAge++;
|
||||||
|
}
|
||||||
|
|
||||||
|
var modOrders2 = _virtualDbContext.Set<SysUserModInt>().OrderByDescending(o => o.Age).ToList();
|
||||||
|
int descAge = 1000;
|
||||||
|
foreach (var sysUserMod in modOrders2)
|
||||||
|
{
|
||||||
|
Assert.Equal(descAge, sysUserMod.Age);
|
||||||
|
descAge--;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var pageResult = _virtualDbContext.Set<SysUserModInt>().Skip(10).Take(10).OrderByDescending(o => o.Age).ToList();
|
||||||
|
Assert.Equal(10, pageResult.Count);
|
||||||
|
int pageDescAge = 990;
|
||||||
|
foreach (var sysUserMod in pageResult)
|
||||||
|
{
|
||||||
|
Assert.Equal(pageDescAge, sysUserMod.Age);
|
||||||
|
pageDescAge--;
|
||||||
|
}
|
||||||
|
}
|
||||||
// [Fact]
|
// [Fact]
|
||||||
// public void Group_API_Test()
|
// public void Group_API_Test()
|
||||||
// {
|
// {
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ShardingCore.Core.EntityMetadatas;
|
||||||
|
using ShardingCore.Test.Domain.Entities;
|
||||||
|
using ShardingCore.VirtualRoutes.Mods;
|
||||||
|
|
||||||
|
namespace ShardingCore.Test.Shardings
|
||||||
|
{
|
||||||
|
public class SysUserModIntVirtualRoute:AbstractSimpleShardingModKeyIntVirtualTableRoute<SysUserModInt>
|
||||||
|
{
|
||||||
|
protected override bool EnableHintRoute => true;
|
||||||
|
|
||||||
|
public SysUserModIntVirtualRoute() : base(2, 3)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Configure(EntityMetadataTableBuilder<SysUserModInt> builder)
|
||||||
|
{
|
||||||
|
builder.ShardingProperty(o => o.Id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -70,6 +70,7 @@ namespace ShardingCore.Test
|
||||||
op.AddShardingTableRoute<LogYearDateTimeVirtualRoute>();
|
op.AddShardingTableRoute<LogYearDateTimeVirtualRoute>();
|
||||||
op.AddShardingTableRoute<LogMonthLongvirtualRoute>();
|
op.AddShardingTableRoute<LogMonthLongvirtualRoute>();
|
||||||
op.AddShardingTableRoute<LogYearLongVirtualRoute>();
|
op.AddShardingTableRoute<LogYearLongVirtualRoute>();
|
||||||
|
op.AddShardingTableRoute<SysUserModIntVirtualRoute>();
|
||||||
}).AddReadWriteSeparation(sp =>
|
}).AddReadWriteSeparation(sp =>
|
||||||
{
|
{
|
||||||
return new Dictionary<string, ISet<string>>()
|
return new Dictionary<string, ISet<string>>()
|
||||||
|
@ -117,6 +118,7 @@ namespace ShardingCore.Test
|
||||||
{
|
{
|
||||||
var ids = Enumerable.Range(1, 1000);
|
var ids = Enumerable.Range(1, 1000);
|
||||||
var userMods = new List<SysUserMod>();
|
var userMods = new List<SysUserMod>();
|
||||||
|
var userModInts = new List<SysUserModInt>();
|
||||||
var userSalaries = new List<SysUserSalary>();
|
var userSalaries = new List<SysUserSalary>();
|
||||||
var beginTime = new DateTime(2020, 1, 1);
|
var beginTime = new DateTime(2020, 1, 1);
|
||||||
var endTime = new DateTime(2021, 12, 1);
|
var endTime = new DateTime(2021, 12, 1);
|
||||||
|
@ -129,6 +131,13 @@ namespace ShardingCore.Test
|
||||||
Name = $"name_{id}",
|
Name = $"name_{id}",
|
||||||
AgeGroup = Math.Abs(id % 10)
|
AgeGroup = Math.Abs(id % 10)
|
||||||
});
|
});
|
||||||
|
userModInts.Add(new SysUserModInt()
|
||||||
|
{
|
||||||
|
Id = id,
|
||||||
|
Age = id,
|
||||||
|
Name = $"name_{id}",
|
||||||
|
AgeGroup = Math.Abs(id % 10)
|
||||||
|
});
|
||||||
var tempTime = beginTime;
|
var tempTime = beginTime;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
while (tempTime <= endTime)
|
while (tempTime <= endTime)
|
||||||
|
@ -252,6 +261,7 @@ namespace ShardingCore.Test
|
||||||
using (var tran = virtualDbContext.Database.BeginTransaction())
|
using (var tran = virtualDbContext.Database.BeginTransaction())
|
||||||
{
|
{
|
||||||
await virtualDbContext.AddRangeAsync(userMods);
|
await virtualDbContext.AddRangeAsync(userMods);
|
||||||
|
await virtualDbContext.AddRangeAsync(userModInts);
|
||||||
await virtualDbContext.AddRangeAsync(userSalaries);
|
await virtualDbContext.AddRangeAsync(userSalaries);
|
||||||
await virtualDbContext.AddRangeAsync(orders);
|
await virtualDbContext.AddRangeAsync(orders);
|
||||||
await virtualDbContext.AddRangeAsync(logDays);
|
await virtualDbContext.AddRangeAsync(logDays);
|
||||||
|
|
|
@ -1009,6 +1009,9 @@ namespace ShardingCore.Test2x
|
||||||
Assert.Equal(10, page1.Data.Count);
|
Assert.Equal(10, page1.Data.Count);
|
||||||
Assert.Equal(31, page1.Total);
|
Assert.Equal(31, page1.Total);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// [Fact]
|
// [Fact]
|
||||||
// public void Group_API_Test()
|
// public void Group_API_Test()
|
||||||
// {
|
// {
|
||||||
|
|
Loading…
Reference in New Issue