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.
abp/test/Volo.Abp.Identity.Applicati.../Volo/Abp/Identity/IdentityRoleAppService_Test...

126 lines
3.1 KiB

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<IIdentityRoleAppService>();
_roleRepository = ServiceProvider.GetRequiredService<IIdentityRoleRepository>();
}
[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<IdentityRole> GetRoleAsync(string roleName)
{
return (await _roleRepository.GetListAsync()).First(u => u.Name == roleName);
}
private async Task<IdentityRole> FindRoleAsync(string roleName)
{
return (await _roleRepository.GetListAsync()).FirstOrDefault(u => u.Name == roleName);
}
}
}