单元测试近70%
This commit is contained in:
parent
9e287be7e3
commit
788ef79634
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
|
@ -17,6 +18,7 @@ using ShardingCore.TableCreator;
|
|||
|
||||
namespace ShardingCore.VirtualRoutes.Abstractions
|
||||
{
|
||||
[ExcludeFromCodeCoverage]
|
||||
public abstract class AbstractShardingAutoCreateOperatorVirtualTableRoute<TEntity, TKey> : AbstractShardingOperatorVirtualTableRoute<TEntity, TKey>, IJob where TEntity : class
|
||||
{
|
||||
private readonly ILogger<AbstractShardingAutoCreateOperatorVirtualTableRoute<TEntity, TKey>> _logger;
|
||||
|
@ -43,7 +45,6 @@ namespace ShardingCore.VirtualRoutes.Abstractions
|
|||
public virtual bool DoLogError => false;
|
||||
|
||||
public abstract string[] GetCronExpressions();
|
||||
|
||||
public Task ExecuteAsync()
|
||||
{
|
||||
var virtualTableManager = (IVirtualTableManager)ShardingContainer.GetService(typeof(IVirtualTableManager<>).GetGenericType0(EntityMetadata.ShardingDbContextType));
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ShardingCore.Test.Domain.Entities
|
||||
{
|
||||
public class LogYearLong
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public string LogBody { get; set; }
|
||||
public long LogTime { 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 LogYearLongMap:IEntityTypeConfiguration<LogYearLong>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<LogYearLong> builder)
|
||||
{
|
||||
|
||||
builder.HasKey(o => o.Id);
|
||||
builder.Property(o => o.Id).IsRequired().IsUnicode(false).HasMaxLength(50);
|
||||
builder.Property(o => o.LogBody).HasMaxLength(128);
|
||||
builder.ToTable(nameof(LogYearLong));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -31,6 +31,7 @@ namespace ShardingCore.Test
|
|||
modelBuilder.ApplyConfiguration(new LogYearDateTimeMap());
|
||||
modelBuilder.ApplyConfiguration(new LogNoShardingMap());
|
||||
modelBuilder.ApplyConfiguration(new LogMonthLongMap());
|
||||
modelBuilder.ApplyConfiguration(new LogYearLongMap());
|
||||
}
|
||||
|
||||
public IRouteTail RouteTail { get; set; }
|
||||
|
|
|
@ -1091,6 +1091,38 @@ namespace ShardingCore.Test
|
|||
Assert.Equal(31, page1.Total);
|
||||
}
|
||||
[Fact]
|
||||
public async Task LogYearLongCountTest()
|
||||
{
|
||||
var countAsync = await _virtualDbContext.Set<LogYearLong>().CountAsync();
|
||||
Assert.Equal(300, countAsync);
|
||||
var fourBegin = ShardingCoreHelper.ConvertDateTimeToLong(new DateTime(2021, 4, 1).Date);
|
||||
var fiveBegin = ShardingCoreHelper.ConvertDateTimeToLong(new DateTime(2021, 5, 1).Date);
|
||||
var fourCount = await _virtualDbContext.Set<LogYearLong>().Where(o => o.LogTime >= fourBegin && o.LogTime < fiveBegin).CountAsync();
|
||||
Assert.Equal(30, fourCount);
|
||||
using (_shardingRouteManager.CreateScope())
|
||||
{
|
||||
_shardingRouteManager.Current.TryCreateOrAddMustTail<LogYearLong>("2021");
|
||||
var countAsync1 = await _virtualDbContext.Set<LogYearLong>().CountAsync();
|
||||
Assert.Equal(300, countAsync1);
|
||||
}
|
||||
Assert.Null(_shardingRouteManager.Current);
|
||||
}
|
||||
[Fact]
|
||||
public async Task LogYearLongShardingPage()
|
||||
{
|
||||
var fourBegin = ShardingCoreHelper.ConvertDateTimeToLong(new DateTime(2021, 4, 1).Date);
|
||||
var fiveBegin = ShardingCoreHelper.ConvertDateTimeToLong(new DateTime(2021, 5, 1).Date);
|
||||
var page = await _virtualDbContext.Set<LogWeekTimeLong>().Where(o => o.LogTime >= fourBegin && o.LogTime <= fiveBegin).OrderBy(o => o.LogTime)
|
||||
.ToShardingPageAsync(2, 10);
|
||||
Assert.Equal(10, page.Data.Count);
|
||||
Assert.Equal(31, page.Total);
|
||||
|
||||
var page1 = await _virtualDbContext.Set<LogWeekTimeLong>().Where(o => o.LogTime >= fourBegin && o.LogTime <= fiveBegin)
|
||||
.ToShardingPageAsync(2, 10);
|
||||
Assert.Equal(10, page1.Data.Count);
|
||||
Assert.Equal(31, page1.Total);
|
||||
}
|
||||
[Fact]
|
||||
public async Task CrudTest()
|
||||
{
|
||||
var logNoSharding = new LogNoSharding()
|
||||
|
|
|
@ -1050,6 +1050,38 @@ namespace ShardingCore.Test
|
|||
Assert.Equal(10, page1.Data.Count);
|
||||
Assert.Equal(31, page1.Total);
|
||||
}
|
||||
[Fact]
|
||||
public async Task LogYearLongCountTest()
|
||||
{
|
||||
var countAsync = await _virtualDbContext.Set<LogYearLong>().CountAsync();
|
||||
Assert.Equal(300, countAsync);
|
||||
var fourBegin = ShardingCoreHelper.ConvertDateTimeToLong(new DateTime(2021, 4, 1).Date);
|
||||
var fiveBegin = ShardingCoreHelper.ConvertDateTimeToLong(new DateTime(2021, 5, 1).Date);
|
||||
var fourCount = await _virtualDbContext.Set<LogYearLong>().Where(o => o.LogTime >= fourBegin && o.LogTime < fiveBegin).CountAsync();
|
||||
Assert.Equal(30, fourCount);
|
||||
using (_shardingRouteManager.CreateScope())
|
||||
{
|
||||
_shardingRouteManager.Current.TryCreateOrAddMustTail<LogYearLong>("2021");
|
||||
var countAsync1 = await _virtualDbContext.Set<LogYearLong>().CountAsync();
|
||||
Assert.Equal(300, countAsync1);
|
||||
}
|
||||
Assert.Null(_shardingRouteManager.Current);
|
||||
}
|
||||
[Fact]
|
||||
public async Task LogYearLongShardingPage()
|
||||
{
|
||||
var fourBegin = ShardingCoreHelper.ConvertDateTimeToLong(new DateTime(2021, 4, 1).Date);
|
||||
var fiveBegin = ShardingCoreHelper.ConvertDateTimeToLong(new DateTime(2021, 5, 1).Date);
|
||||
var page = await _virtualDbContext.Set<LogWeekTimeLong>().Where(o => o.LogTime >= fourBegin && o.LogTime <= fiveBegin).OrderBy(o => o.LogTime)
|
||||
.ToShardingPageAsync(2, 10);
|
||||
Assert.Equal(10, page.Data.Count);
|
||||
Assert.Equal(31, page.Total);
|
||||
|
||||
var page1 = await _virtualDbContext.Set<LogWeekTimeLong>().Where(o => o.LogTime >= fourBegin && o.LogTime <= fiveBegin)
|
||||
.ToShardingPageAsync(2, 10);
|
||||
Assert.Equal(10, page1.Data.Count);
|
||||
Assert.Equal(31, page1.Total);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CrudTest()
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ShardingCore.Core.EntityMetadatas;
|
||||
using ShardingCore.Extensions;
|
||||
using ShardingCore.Test.Domain.Entities;
|
||||
using ShardingCore.VirtualRoutes.Years;
|
||||
|
||||
namespace ShardingCore.Test.Shardings
|
||||
{
|
||||
public class LogYearLongVirtualRoute:AbstractSimpleShardingYearKeyLongVirtualTableRoute<LogYearLong>
|
||||
{
|
||||
protected override bool EnableHintRoute => true;
|
||||
|
||||
public override void Configure(EntityMetadataTableBuilder<LogYearLong> builder)
|
||||
{
|
||||
builder.ShardingProperty(o => o.LogTime);
|
||||
}
|
||||
|
||||
public override bool AutoCreateTableByTime()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override DateTime GetBeginTime()
|
||||
{
|
||||
return new DateTime(2021, 1, 1);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -69,6 +69,7 @@ namespace ShardingCore.Test
|
|||
op.AddShardingTableRoute<LogWeekTimeLongVirtualTableRoute>();
|
||||
op.AddShardingTableRoute<LogYearDateTimeVirtualRoute>();
|
||||
op.AddShardingTableRoute<LogMonthLongvirtualRoute>();
|
||||
op.AddShardingTableRoute<LogYearLongVirtualRoute>();
|
||||
}).AddReadWriteSeparation(sp =>
|
||||
{
|
||||
return new Dictionary<string, ISet<string>>()
|
||||
|
@ -236,6 +237,18 @@ namespace ShardingCore.Test
|
|||
begin5 = begin5.AddDays(1);
|
||||
}
|
||||
|
||||
List<LogYearLong> logYearkLongs = new List<LogYearLong>(300);
|
||||
var begin6 = new DateTime(2021, 1, 1);
|
||||
for (int i = 0; i < 300; i++)
|
||||
{
|
||||
logYearkLongs.Add(new LogYearLong()
|
||||
{
|
||||
Id = Guid.NewGuid().ToString("n"),
|
||||
LogBody = $"body_{i}",
|
||||
LogTime = ShardingCoreHelper.ConvertDateTimeToLong(begin6)
|
||||
});
|
||||
begin6 = begin6.AddDays(1);
|
||||
}
|
||||
using (var tran = virtualDbContext.Database.BeginTransaction())
|
||||
{
|
||||
await virtualDbContext.AddRangeAsync(userMods);
|
||||
|
@ -246,6 +259,7 @@ namespace ShardingCore.Test
|
|||
await virtualDbContext.AddRangeAsync(logWeekLongs);
|
||||
await virtualDbContext.AddRangeAsync(logYears);
|
||||
await virtualDbContext.AddRangeAsync(logMonthLongs);
|
||||
await virtualDbContext.AddRangeAsync(logYearkLongs);
|
||||
|
||||
await virtualDbContext.SaveChangesAsync();
|
||||
tran.Commit();
|
||||
|
|
Loading…
Reference in New Issue