test: 完善单元测试

This commit is contained in:
陈淳
2024-04-29 17:50:51 +08:00
parent 32aca8c6a8
commit 29ee0b5945
16 changed files with 509 additions and 28 deletions

View File

@@ -0,0 +1,109 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Shouldly;
using Volo.Abp.Domain.Repositories;
using Xunit;
using Yi.Framework.Rbac.Application.Contracts.Dtos.Account;
using Yi.Framework.Rbac.Application.Contracts.Dtos.User;
using Yi.Framework.Rbac.Application.Contracts.IServices;
using Yi.Framework.Rbac.Application.Services.System;
using Yi.Framework.Rbac.Domain.Entities;
using Yi.Framework.Rbac.Domain.Shared.Consts;
using Yi.Framework.Rbac.Test;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Rbac.Test.System
{
public class Account_Test : YiTestWebBase
{
private IAccountService _accountService;
private ISqlSugarRepository<UserEntity> _userRepository;
public Account_Test()
{
_accountService = GetRequiredService<IAccountService>();
_userRepository = GetRequiredService<ISqlSugarRepository<UserEntity>>();
}
/// <summary>
/// 注册
/// </summary>
[Fact]
public async Task Register_Test()
{
await _accountService.PostRegisterAsync(new RegisterDto() { UserName = "RegisterTest", Password = "123456", Phone = 15945645645 });
var user = await _userRepository._DbQueryable.Where(user => user.UserName == "RegisterTest").FirstAsync();
user.ShouldNotBeNull();
user.JudgePassword("123456").ShouldBeTrue();
}
/// <summary>
/// 用户名重复注册
/// </summary>
/// <returns></returns>
[Fact]
public async Task Register_UserNameRepeat_Error_Test()
{
try
{
await _accountService.PostRegisterAsync(new RegisterDto() { UserName = "RegisterUserNameRepeatErrorTest", Password = "123456", Phone = 15945645641 });
await _accountService.PostRegisterAsync(new RegisterDto() { UserName = "RegisterUserNameRepeatErrorTest", Password = "123456", Phone = 15945645642 });
}
catch (UserFriendlyException ex)
{
ex.Message.ShouldBe(UserConst.User_Exist);
}
}
/// <summary>
/// 电话号码重复注册
/// </summary>
/// <returns></returns>
[Fact]
public async Task Register_PhoneRepeat_Error_Test()
{
try
{
await _accountService.PostRegisterAsync(new RegisterDto() { UserName = "RegisterPhoneRepeatErrorTest1", Password = "123456", Phone = 15945645633 });
await _accountService.PostRegisterAsync(new RegisterDto() { UserName = "RegisterPhoneRepeatErrorTest2", Password = "123456", Phone = 15945645633 });
}
catch (UserFriendlyException ex)
{
ex.Message.ShouldBe(UserConst.Phone_Repeat);
}
}
/// <summary>
/// 登录测试
/// </summary>
/// <returns></returns>
[Fact]
public async Task Login_Test()
{
await _accountService.PostRegisterAsync(new RegisterDto() { UserName = "LoginTest", Password = "123456", Phone = 13845645645 });
var result = await _accountService.PostLoginAsync(new LoginInputVo { UserName = "LoginTest", Password = "123456" });
result.GetType().GetProperty("Token").GetValue(result, null).ToString().ShouldNotBeNull();
result.GetType().GetProperty("RefreshToken").GetValue(result, null).ToString().ShouldNotBeNull();
}
/// <summary>
/// 重置密码
/// </summary>
/// <returns></returns>
[Fact]
public async Task Reset_Passworld_Test()
{
await _accountService.PostRegisterAsync(new RegisterDto() { UserName = "ResetPassworldTest", Password = "123456", Phone = 15945645555 });
var user = await _userRepository._DbQueryable.Where(user => user.UserName == "ResetPassworldTest").FirstAsync();
await _accountService.RestPasswordAsync(user.Id, new RestPasswordDto { Password = "654321abc" });
var result = await _accountService.PostLoginAsync(new LoginInputVo { UserName = "ResetPassworldTest", Password = "654321abc" });
}
}
}

View File

@@ -0,0 +1,84 @@
using Microsoft.Extensions.DependencyInjection;
using Shouldly;
using TencentCloud.Ame.V20190916.Models;
using TencentCloud.Tiw.V20190919.Models;
using Volo.Abp.Domain.Repositories;
using Xunit;
using Yi.Framework.Rbac.Application.Contracts.Dtos.User;
using Yi.Framework.Rbac.Application.Contracts.IServices;
using Yi.Framework.Rbac.Domain.Entities;
using Yi.Framework.Rbac.Domain.Shared.Consts;
using Yi.Framework.Rbac.Domain.Shared.Enums;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Rbac.Test.System
{
public class User_Test : YiTestBase
{
private IUserService _userService;
private ISqlSugarRepository<UserEntity> _repository;
public User_Test()
{
_userService = ServiceProvider.GetRequiredService<IUserService>();
_repository = ServiceProvider.GetRequiredService<ISqlSugarRepository<UserEntity>>();
}
/// <summary>
/// 查询用户
/// </summary>
/// <returns></returns>
[Fact]
public async Task Get_User_Test()
{
var user = await _userService.GetListAsync(new UserGetListInputVo { UserName = UserConst.Admin });
user.ShouldNotBeNull();
}
/// <summary>
/// 创建用户
/// </summary>
/// <returns></returns>
[Fact]
public async Task Create_User_Test()
{
await _userService.CreateAsync(new UserCreateInputVo { UserName = "CreateUserTest", Password = "654321" });
var user = await _userService.GetListAsync(new UserGetListInputVo { UserName = "CreateUserTest" });
user.ShouldNotBeNull();
}
/// <summary>
/// 更新用户
/// </summary>
/// <returns></returns>
[Fact]
public async Task Update_User_Test()
{
var createdUser = await _userService.CreateAsync(new UserCreateInputVo { Nick = "nickTest", Sex = SexEnum.Woman, UserName = "UpdateUserTest", Password = "654321" });
await _userService.UpdateAsync(createdUser.Id, new UserUpdateInputVo { Nick = "nickTest2", Sex = SexEnum.Woman, UserName = "UpdateUserTest", Password = "123456888abc" });
var user = await _repository._DbQueryable.Where(user => user.UserName == "UpdateUserTest").FirstAsync();
user.ShouldNotBeNull();
user.Nick.ShouldBe("nickTest2");
user.Sex.ShouldBe(SexEnum.Woman);
user.JudgePassword("123456888abc");
}
/// <summary>
/// 删除用户
/// </summary>
/// <returns></returns>
[Fact]
public async Task Delete_User_Test()
{
var createdUser = await _userService.CreateAsync(new UserCreateInputVo { UserName = "DeleteUserTest", Password = "123456" });
var user1 = await _repository._DbQueryable.Where(user => user.UserName == "DeleteUserTest").FirstAsync();
user1.ShouldNotBeNull();
await _userService.DeleteAsync(new List<Guid> { createdUser.Id });
var user2 = await _repository._DbQueryable.Where(user => user.UserName == "DeleteUserTest").FirstAsync();
user2.ShouldBeNull();
}
}
}