using System; using System.Data.Common; using Abp.TestBase; using Castle.MicroKernel.Registration; using EntityFramework.DynamicFilters; using WePlatform.EF; using WePlatform.SeedData; namespace WePlatform { /// /// 这是所有测试类的基础类。 /// 它准备了ABP系统,模块和一个伪造的内存数据库。 /// 具有初始数据的种子数据库( public abstract class WeEngineTestBase : AbpIntegratedTestBase { protected WeEngineTestBase() { //种子初始数据 //UsingDbContext(context => new TestDataBuilder(context).Create()); } protected override void PreInitialize() { //假DbConnection使用Effort! LocalIocManager.IocContainer.Register( Component.For() .UsingFactoryMethod(Effort.DbConnectionFactory.CreateTransient) .LifestyleSingleton() ); base.PreInitialize(); } public void UsingDbContext(Action action) { using (var context = LocalIocManager.Resolve()) { context.DisableAllFilters(); action(context); context.SaveChanges(); } } public T UsingDbContext(Func func) { T result; using (var context = LocalIocManager.Resolve()) { context.DisableAllFilters(); result = func(context); context.SaveChanges(); } return result; } } }