修改User模块,同步原始代码
This commit is contained in:
1 parent
4a5fada435
commit
78b0c2bb2e
47 files changed
+2939
-193
No files matched your search
@@ -0,0 +1,66 @@
|
||||
using System.Net;
|
||||
using System.Text.Json;
|
||||
using Asp.Versioning;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.TestHost;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace Store.Users.Tests;
|
||||
|
||||
public sealed class VersionedOpenApiTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task MajorAndMinorVersions_GenerateSeparateDocuments()
|
||||
{
|
||||
var builder = WebApplication.CreateBuilder();
|
||||
builder.WebHost.UseTestServer();
|
||||
builder.Logging.ClearProviders();
|
||||
builder.Services.AddControllers().AddApplicationPart(typeof(OpenApiMinorVersionTestController).Assembly);
|
||||
builder.Services.AddApiVersioning(options =>
|
||||
{
|
||||
options.DefaultApiVersion = new ApiVersion(1, 0);
|
||||
options.AssumeDefaultVersionWhenUnspecified = true;
|
||||
options.ApiVersionReader = new UrlSegmentApiVersionReader();
|
||||
}).AddMvc().AddApiExplorer(options =>
|
||||
{
|
||||
options.GroupNameFormat = "'v'VVV";
|
||||
options.SubstituteApiVersionInUrl = true;
|
||||
}).AddOpenApi();
|
||||
|
||||
await using var app = builder.Build();
|
||||
app.MapControllers();
|
||||
app.MapOpenApi().WithDocumentPerVersion();
|
||||
await app.StartAsync();
|
||||
using var client = app.GetTestClient();
|
||||
|
||||
var groups = app.DescribeApiVersions().Select(version => version.GroupName).ToArray();
|
||||
Assert.Contains("v1", groups);
|
||||
Assert.Contains("v1.1", groups);
|
||||
Assert.Equal(groups.Length, groups.Distinct(StringComparer.OrdinalIgnoreCase).Count());
|
||||
|
||||
foreach (var group in new[] { "v1", "v1.1" })
|
||||
{
|
||||
using var response = await client.GetAsync($"/openapi/{group}.json");
|
||||
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
|
||||
using var document = JsonDocument.Parse(await response.Content.ReadAsStringAsync());
|
||||
var paths = document.RootElement.GetProperty("paths");
|
||||
var ownPath = group == "v1" ? "/default-get-tests/Read" : "/openapi-minor-tests/Read";
|
||||
Assert.True(paths.TryGetProperty(ownPath, out _));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[ApiController]
|
||||
[ApiVersion("1.1")]
|
||||
[Route("openapi-minor-tests/[action]")]
|
||||
public sealed class OpenApiMinorVersionTestController : ControllerBase
|
||||
{
|
||||
[HttpPost]
|
||||
public string Read()
|
||||
{
|
||||
return "ok";
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user