feat: complete M4 contact and group automation
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
using WxAgent.Core;
|
||||
using Xunit;
|
||||
|
||||
namespace WxAgent.Core.Tests;
|
||||
|
||||
public sealed class WechatManagementTests
|
||||
{
|
||||
[Fact]
|
||||
public void RequireConfirmation_RejectsMissingOrWrongToken()
|
||||
{
|
||||
var missing = Assert.Throws<WxAgentException>(() => WechatOperationPolicy.RequireConfirmation(null, "delete session"));
|
||||
var wrong = Assert.Throws<WxAgentException>(() => WechatOperationPolicy.RequireConfirmation("confirm", "delete session"));
|
||||
|
||||
Assert.Equal(WxAgentErrorCode.InvalidArgument, missing.Code);
|
||||
Assert.Equal(WxAgentErrorCode.InvalidArgument, wrong.Code);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RequireConfirmation_AcceptsExactToken()
|
||||
{
|
||||
WechatOperationPolicy.RequireConfirmation(WechatOperationPolicy.Confirmation, "delete session");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ValidateNames_RequiresAtLeastOneUsableName()
|
||||
{
|
||||
Assert.Throws<WxAgentException>(() => WechatOperationPolicy.ValidateNames([], "members"));
|
||||
Assert.Throws<WxAgentException>(() => WechatOperationPolicy.ValidateNames(["ok", ""], "members"));
|
||||
WechatOperationPolicy.ValidateNames(["one", "two"], "members");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OperationResult_OkHasNoErrorCode()
|
||||
{
|
||||
var result = WechatOperationResult.Ok("done");
|
||||
Assert.True(result.Success);
|
||||
Assert.Null(result.Code);
|
||||
Assert.Equal("done", result.Message);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user