/
aprogrammer
/
ACme.BookStore
Обзор
Документация
Войти
/
aprogrammer
/
ACme.BookStore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/ACme.BookStore.TestBase/BookStoreTestBase.cs
60 строк
2 KB
nicolaujoao1
Add project files.
29 сен 2022, 16:22
29 сен 2022, 16:22
e371a9d
Код
Авторство
О чём код?
using System; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; using Volo.Abp.Modularity; using Volo.Abp.Uow; using Volo.Abp.Testing; namespace ACme.BookStore; /* All test classes are derived from this class, directly or indirectly. */ public abstract class BookStoreTestBase<TStartupModule> : AbpIntegratedTest<TStartupModule> where TStartupModule : IAbpModule { protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) { options.UseAutofac(); } protected virtual Task WithUnitOfWorkAsync(Func<Task> func) { return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); } protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func<Task> action) { using (var scope = ServiceProvider.CreateScope()) { var uowManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using (var uow = uowManager.Begin(options)) { await action(); await uow.CompleteAsync(); } } } protected virtual Task<TResult> WithUnitOfWorkAsync<TResult>(Func<Task<TResult>> func) { return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); } protected virtual async Task<TResult> WithUnitOfWorkAsync<TResult>(AbpUnitOfWorkOptions options, Func<Task<TResult>> func) { using (var scope = ServiceProvider.CreateScope()) { var uowManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); using (var uow = uowManager.Begin(options)) { var result = await func(); await uow.CompleteAsync(); return result; } } } }