feat: 基础模块

注册登录
用户管理
角色管理
部门管理
消息管理
接口管理
菜单管理
字典管理
缓存管理
请求日志
系统设置
版本信息
代码生成
This commit is contained in:
tk
2023-11-17 18:54:31 +08:00
parent 18b4d7547a
commit d26e4c77cc
755 changed files with 30416 additions and 42743 deletions

View File

@@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="../NetAdmin.Host/NetAdmin.Host.csproj"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="xunit" Version="2.6.1"/>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.0"/>
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,43 @@
using System.Net.Http.Headers;
using System.Net.Http.Json;
using Microsoft.AspNetCore.Mvc.Testing;
using NetAdmin.Domain.Dto;
using NetAdmin.Domain.Dto.Sys.User;
using Xunit;
using Xunit.Abstractions;
namespace NetAdmin.Tests;
/// <summary>
/// WebApi 测试用例基类
/// </summary>
public abstract class WebApiTestBase<T>
(WebApplicationFactory<T> factory, ITestOutputHelper testOutputHelper) : IClassFixture<WebApplicationFactory<T>>
where T : AppStartup
{
private const string _ACCOUNT = "root";
private const string _API_SYS_USER_LOGIN_BY_PWD = "/api/sys/user/login.by.pwd";
private const string _AUTH_SCHEMA = "Bearer";
private const string _PASSWORD = "1234qwer";
private string _accessToken;
/// <summary>
/// Post请求
/// </summary>
protected async Task<HttpResponseMessage> PostAsync(string url, HttpContent content)
{
var client = factory.CreateClient();
if (_accessToken == null) {
var loginRsp = await client.PostAsync(_API_SYS_USER_LOGIN_BY_PWD
, JsonContent.Create(
new LoginByPwdReq { Password = _PASSWORD, Account = _ACCOUNT }));
var loginRspObj = (await loginRsp.Content.ReadAsStringAsync()).ToObject<RestfulInfo<LoginRsp>>();
_accessToken = loginRspObj.Data.AccessToken;
}
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(_AUTH_SCHEMA, _accessToken);
var ret = await client.PostAsync(url, content);
testOutputHelper.WriteLine(await ret.Content.ReadAsStringAsync());
return ret;
}
}