using System; using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Xunit; using Shouldly; using Volo.Abp.Application.Dtos; namespace Volo.Abp.Identity { public class IdentityRoleAppService_Tests: AbpIdentityApplicationTestBase { private readonly IIdentityRoleAppService _roleAppService; private readonly IIdentityRoleRepository _roleRepository; public IdentityRoleAppService_Tests() { _roleAppService = ServiceProvider.GetRequiredService(); _roleRepository = ServiceProvider.GetRequiredService(); } [Fact] public async Task GetAsync() { //Arrange var moderator = await GetRoleAsync("moderator"); //Act var result = await _roleAppService.GetAsync(moderator.Id); //Assert result.Id.ShouldBe(moderator.Id); } [Fact] public async Task GetListAsync() { //Act var result = await _roleAppService.GetListAsync(new GetIdentityRolesInput()); //Assert result.TotalCount.ShouldBeGreaterThan(0); result.Items.Count.ShouldBeGreaterThan(0); } [Fact] public async Task CreateAsync() { //Arrange var input = new IdentityRoleCreateDto { Name = Guid.NewGuid().ToString("N").Left(8) }; //Act var result = await _roleAppService.CreateAsync(input); //Assert result.Id.ShouldNotBe(Guid.Empty); result.Name.ShouldBe(input.Name); var role = await _roleRepository.GetAsync(result.Id); role.Name.ShouldBe(input.Name); } [Fact] public async Task UpdateAsync() { //Arrange var moderator = await GetRoleAsync("moderator"); var input = new IdentityRoleUpdateDto { Name = Guid.NewGuid().ToString("N").Left(8) }; //Act var result = await _roleAppService.UpdateAsync(moderator.Id, input); //Assert result.Id.ShouldBe(moderator.Id); result.Name.ShouldBe(input.Name); var updatedRole = await _roleRepository.GetAsync(moderator.Id); updatedRole.Name.ShouldBe(input.Name); } [Fact] public async Task DeleteAsync() { //Arrange var moderator = await GetRoleAsync("moderator"); //Act await _roleAppService.DeleteAsync(moderator.Id); //Assert (await FindRoleAsync("moderator")).ShouldBeNull(); } private async Task GetRoleAsync(string roleName) { return (await _roleRepository.GetListAsync()).First(u => u.Name == roleName); } private async Task FindRoleAsync(string roleName) { return (await _roleRepository.GetListAsync()).FirstOrDefault(u => u.Name == roleName); } } }