增加Shop API
This commit is contained in:
1 parent
3769193696
commit
5d017740c6
83 files changed
+4451
-696
No files matched your search
@@ -1,3 +1,4 @@
|
||||
using Store.Users.Contracts.Enums;
|
||||
using MAX.Framework.Commons;
|
||||
using MAX.Framework.DependencyInjection;
|
||||
using MAX.Framework.Mediation;
|
||||
@@ -25,7 +26,7 @@ public sealed class UserAccessTests
|
||||
using var context = new UserTestContext();
|
||||
context.CurrentUser.UserName = actor;
|
||||
var target = await context.Read(targetName);
|
||||
await context.Users.Update(target.Id, new() { Notes = "updated" }, subRoute, default);
|
||||
await context.Users.Update(new() { Id = target.Id, Notes = "updated" }, subRoute, default);
|
||||
Assert.Equal("updated", (await context.Read(targetName)).Notes);
|
||||
Assert.Contains(targetName, context.Sessions.SignedOut);
|
||||
}
|
||||
@@ -39,7 +40,7 @@ public sealed class UserAccessTests
|
||||
using var context = new UserTestContext();
|
||||
context.CurrentUser.UserName = actor;
|
||||
var target = await context.Read(targetName);
|
||||
var error = await Assert.ThrowsAsync<AppException>(() => context.Users.Update(target.Id, new() { Notes = "bad" }, false, default));
|
||||
var error = await Assert.ThrowsAsync<AppException>(() => context.Users.Update(new() { Id = target.Id, Notes = "bad" }, false, default));
|
||||
Assert.Equal(403, error.Code);
|
||||
Assert.Equal("", (await context.Read(targetName)).Notes);
|
||||
}
|
||||
@@ -65,8 +66,7 @@ public sealed class UserAccessTests
|
||||
UserName = "new-child", Password = "password", ParentUserName = "other"
|
||||
}, true, default));
|
||||
Assert.Equal(403, error.Code);
|
||||
Assert.Equal(403, (await Assert.ThrowsAsync<AppException>(() => context.Users.Update(context.Main.Id,
|
||||
new() { SaLevel = 1 }, false, default))).Code);
|
||||
Assert.Equal(403, (await Assert.ThrowsAsync<AppException>(() => context.Users.Update(new() { Id = context.Main.Id, SaLevel = UserAdminLevel.SuperAdmin }, false, default))).Code);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
@@ -125,8 +125,7 @@ public sealed class UserAccessTests
|
||||
{
|
||||
UserName = privilegedChild.UserName, NewPassword = "takeover-password"
|
||||
}, default))).Code);
|
||||
Assert.Equal(403, (await Assert.ThrowsAsync<AppException>(() => context.Users.Update(privilegedChild.Id,
|
||||
new() { Notes = "takeover" }, true, default))).Code);
|
||||
Assert.Equal(403, (await Assert.ThrowsAsync<AppException>(() => context.Users.Update(new() { Id = privilegedChild.Id, Notes = "takeover" }, true, default))).Code);
|
||||
Assert.True(Store.Users.Services.UserPassword.Verify(await context.Read(privilegedChild.UserName), "legacy-password"));
|
||||
}
|
||||
|
||||
@@ -143,8 +142,7 @@ public sealed class UserAccessTests
|
||||
UserName = name, Amount = 10m, Operation = "充值", RequestId = Guid.NewGuid().ToString("N")
|
||||
}, points, default))).Code);
|
||||
var target = await context.Read(name);
|
||||
Assert.Equal(403, (await Assert.ThrowsAsync<AppException>(() => context.Users.Update(target.Id,
|
||||
new() { ShopPointsPerMonth = 45 }, false, default))).Code);
|
||||
Assert.Equal(403, (await Assert.ThrowsAsync<AppException>(() => context.Users.Update(new() { Id = target.Id, ShopPointsPerMonth = 45 }, false, default))).Code);
|
||||
}
|
||||
Assert.Equal(403, (await Assert.ThrowsAsync<AppException>(() => context.Funds.Change(new()
|
||||
{
|
||||
@@ -164,6 +162,8 @@ public sealed class UserAccessTests
|
||||
await context.Db.Update<UserEntity>().Set(u => u.Points, 100m).Where(u => u.Id == context.Child.Id).ExecuteAffrowsAsync();
|
||||
await context.Db.Insert(new ShopEntity { ShopId = "shop", ShopAccount = "shop-account", UserName = "child" }).ExecuteAffrowsAsync();
|
||||
var services = new ServiceCollection();
|
||||
context.CurrentUser.UserName = actor;
|
||||
services.AddSingleton<MAX.Framework.Security.ICurrentUser>(context.CurrentUser);
|
||||
services.AddSingleton(context.Db);
|
||||
services.AddSingleton<UnitOfWorkExecutionContext>();
|
||||
services.AddMediatRAttributedBehaviors(typeof(ShopRenewCommand).Assembly);
|
||||
@@ -171,7 +171,7 @@ public sealed class UserAccessTests
|
||||
typeof(ShopRenewCommand).Assembly.GetType("Store.Users.Commands.ShopRenewCommandHandler", true)!);
|
||||
using var provider = services.BuildServiceProvider();
|
||||
var mediator = provider.GetRequiredService<IMediator>();
|
||||
var command = new ShopRenewCommand("child", "shop", 1, OperatorName: actor);
|
||||
var command = new ShopRenewCommand(new() { UserName = "child", ShopId = "shop", RenewDuration = 1 });
|
||||
if (!allowed)
|
||||
{
|
||||
Assert.Equal(403, (await Assert.ThrowsAsync<AppException>(() => mediator.Send(command))).Code);
|
||||
|
||||
Reference in new issue
Block a user