61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Threading.Tasks;
 | |
| using Microsoft.Extensions.DependencyInjection;
 | |
| using Volo.Abp;
 | |
| using Volo.Abp.Modularity;
 | |
| using Volo.Abp.Testing;
 | |
| using Volo.Abp.Uow;
 | |
| 
 | |
| namespace KonSoft.Dispatch;
 | |
| 
 | |
| /* All test classes are derived from this class, directly or indirectly.
 | |
|  */
 | |
| public abstract class DispatchTestBase<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;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |