refactor: AdminApi 剔除租户侧能力

This commit is contained in:
2026-01-29 23:24:44 +00:00
parent 71e5a9dc29
commit 4f8424adb6
139 changed files with 622 additions and 4691 deletions

View File

@@ -13,12 +13,15 @@ using TakeoutSaaS.Shared.Abstractions.Exceptions;
namespace TakeoutSaaS.Integration.Tests.App.Tenants;
/// <summary>
/// 公告工作流集成测试。
/// </summary>
public sealed class AnnouncementWorkflowTests
{
[Fact]
public async Task GivenDraftAnnouncement_WhenPublish_ThenStatusIsPublishedAndActive()
{
// Arrange
// 1. 准备
using var database = new SqliteTestDatabase();
using var context = database.CreateContext(tenantId: 100, userId: 11);
@@ -28,18 +31,18 @@ public sealed class AnnouncementWorkflowTests
context.ChangeTracker.Clear();
var repository = new EfTenantAnnouncementRepository(context);
var tenantProvider = new TestTenantProvider(100);
var eventPublisher = new Mock<IEventPublisher>();
var handler = new PublishAnnouncementCommandHandler(repository, tenantProvider, eventPublisher.Object);
var handler = new PublishAnnouncementCommandHandler(repository, eventPublisher.Object);
// Act
// 2. (空行后) 执行
var result = await handler.Handle(new PublishAnnouncementCommand
{
TenantId = 100,
AnnouncementId = announcement.Id,
RowVersion = announcement.RowVersion
}, CancellationToken.None);
// Assert
// 3. (空行后) 断言
result.Should().NotBeNull();
result!.Status.Should().Be(AnnouncementStatus.Published);
result.IsActive.Should().BeTrue();
@@ -53,7 +56,7 @@ public sealed class AnnouncementWorkflowTests
[Fact]
public async Task GivenPublishedAnnouncement_WhenRevoke_ThenStatusIsRevokedAndInactive()
{
// Arrange
// 1. 准备
using var database = new SqliteTestDatabase();
using var context = database.CreateContext(tenantId: 200, userId: 11);
@@ -64,18 +67,18 @@ public sealed class AnnouncementWorkflowTests
context.ChangeTracker.Clear();
var repository = new EfTenantAnnouncementRepository(context);
var tenantProvider = new TestTenantProvider(200);
var eventPublisher = new Mock<IEventPublisher>();
var handler = new RevokeAnnouncementCommandHandler(repository, tenantProvider, eventPublisher.Object);
var handler = new RevokeAnnouncementCommandHandler(repository, eventPublisher.Object);
// Act
// 2. (空行后) 执行
var result = await handler.Handle(new RevokeAnnouncementCommand
{
TenantId = 200,
AnnouncementId = announcement.Id,
RowVersion = announcement.RowVersion
}, CancellationToken.None);
// Assert
// 3. (空行后) 断言
result.Should().NotBeNull();
result!.Status.Should().Be(AnnouncementStatus.Revoked);
result.IsActive.Should().BeFalse();
@@ -89,7 +92,7 @@ public sealed class AnnouncementWorkflowTests
[Fact]
public async Task GivenRevokedAnnouncement_WhenPublish_ThenRepublishAndClearRevokedAt()
{
// Arrange
// 1. 准备
using var database = new SqliteTestDatabase();
using var context = database.CreateContext(tenantId: 300, userId: 11);
@@ -101,18 +104,18 @@ public sealed class AnnouncementWorkflowTests
context.ChangeTracker.Clear();
var repository = new EfTenantAnnouncementRepository(context);
var tenantProvider = new TestTenantProvider(300);
var eventPublisher = new Mock<IEventPublisher>();
var handler = new PublishAnnouncementCommandHandler(repository, tenantProvider, eventPublisher.Object);
var handler = new PublishAnnouncementCommandHandler(repository, eventPublisher.Object);
// Act
// 2. (空行后) 执行
var result = await handler.Handle(new PublishAnnouncementCommand
{
TenantId = 300,
AnnouncementId = announcement.Id,
RowVersion = announcement.RowVersion
}, CancellationToken.None);
// Assert
// 3. (空行后) 断言
result.Should().NotBeNull();
result!.Status.Should().Be(AnnouncementStatus.Published);
result.IsActive.Should().BeTrue();