mirror of https://github.com/abpframework/abp
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							65 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							65 lines
						
					
					
						
							2.2 KiB
						
					
					
				using System;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using Shouldly;
 | 
						|
using Volo.Abp.Data;
 | 
						|
using Volo.Abp.Domain.Repositories;
 | 
						|
using Volo.Abp.Modularity;
 | 
						|
using Volo.Abp.TestApp.Domain;
 | 
						|
using Xunit;
 | 
						|
 | 
						|
namespace Volo.Abp.TestApp.Testing
 | 
						|
{
 | 
						|
    public abstract class SoftDelete_Tests<TStartupModule> : TestAppTestBase<TStartupModule>
 | 
						|
        where TStartupModule : IAbpModule
 | 
						|
    {
 | 
						|
        protected readonly IRepository<Person, Guid> PersonRepository;
 | 
						|
        protected readonly IDataFilter DataFilter;
 | 
						|
 | 
						|
        protected SoftDelete_Tests()
 | 
						|
        {
 | 
						|
            PersonRepository = GetRequiredService<IRepository<Person, Guid>>();
 | 
						|
            DataFilter = GetRequiredService<IDataFilter>();
 | 
						|
        }
 | 
						|
 | 
						|
        [Fact]
 | 
						|
        public async Task Should_Cancel_Deletion_For_Soft_Delete_Entities()
 | 
						|
        {
 | 
						|
            var douglas = await PersonRepository.GetAsync(TestDataBuilder.UserDouglasId);
 | 
						|
            await PersonRepository.DeleteAsync(douglas);
 | 
						|
 | 
						|
            douglas = await PersonRepository.FindAsync(TestDataBuilder.UserDouglasId);
 | 
						|
            douglas.ShouldBeNull();
 | 
						|
 | 
						|
            using (DataFilter.Disable<ISoftDelete>())
 | 
						|
            {
 | 
						|
                douglas = await PersonRepository.FindAsync(TestDataBuilder.UserDouglasId);
 | 
						|
                douglas.ShouldNotBeNull();
 | 
						|
                douglas.IsDeleted.ShouldBeTrue();
 | 
						|
                douglas.DeletionTime.ShouldNotBeNull();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        [Fact]
 | 
						|
        public async Task Should_Handle_Deletion_On_Update_For_Soft_Delete_Entities()
 | 
						|
        {
 | 
						|
            var douglas = await PersonRepository.GetAsync(TestDataBuilder.UserDouglasId);
 | 
						|
            douglas.Age = 42;
 | 
						|
            douglas.IsDeleted = true;
 | 
						|
 | 
						|
            await PersonRepository.UpdateAsync(douglas);
 | 
						|
 | 
						|
            douglas = await PersonRepository.FindAsync(TestDataBuilder.UserDouglasId);
 | 
						|
            douglas.ShouldBeNull();
 | 
						|
 | 
						|
            using (DataFilter.Disable<ISoftDelete>())
 | 
						|
            {
 | 
						|
                douglas = await PersonRepository.FindAsync(TestDataBuilder.UserDouglasId);
 | 
						|
                douglas.ShouldNotBeNull();
 | 
						|
                douglas.IsDeleted.ShouldBeTrue();
 | 
						|
                douglas.DeletionTime.ShouldNotBeNull();
 | 
						|
                douglas.Age.ShouldBe(42);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |