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 AccountFrameworkRbacTest : YiFrameworkRbacTestWebBase { private IAccountService _accountService; private ISqlSugarRepository _userRepository; public AccountFrameworkRbacTest() { _accountService = GetRequiredService(); _userRepository = GetRequiredService>(); } /// /// 注册 /// [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(); } /// /// 用户名重复注册 /// /// [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.Exist); } } /// /// 电话号码重复注册 /// /// [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); } } /// /// 登录测试 /// /// [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(); } /// /// 重置密码 /// /// [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" }); } } }