Files
libremetaverse/LibreMetaverse.RLV.Tests/Exceptions/RedirChatExceptionTests.cs
nooperation d905210ecf Initial commit of LibreMetaverse.RLV and LibreMetaverse.RLV.Tests.
This library provides RLV command processing and ease of use for checking current RLV permissions and restrictions
2025-08-17 19:55:33 -04:00

102 lines
3.1 KiB
C#

namespace LibreMetaverse.RLV.Tests.Exceptions
{
public class RedirChatExceptionTests : RestrictionsBase
{
#region @redirchat:<channel_number>=<rem/add>
[Fact]
public async Task IsRedirChat()
{
await _rlv.ProcessMessage("@redirchat:1234=add", _sender.Id, _sender.Name);
Assert.True(_rlv.Permissions.TryGetRedirChatChannels(out var channels));
var expected = new List<int>
{
1234,
};
Assert.Equal(expected, channels);
}
[Fact]
public async Task IsRedirChat_Removed()
{
await _rlv.ProcessMessage("@redirchat:1234=add", _sender.Id, _sender.Name);
await _rlv.ProcessMessage("@redirchat:1234=rem", _sender.Id, _sender.Name);
Assert.False(_rlv.Permissions.TryGetRedirChatChannels(out var channels));
}
[Fact]
public async Task IsRedirChat_MultipleChannels()
{
await _rlv.ProcessMessage("@redirchat:1234=add", _sender.Id, _sender.Name);
await _rlv.ProcessMessage("@redirchat:12345=add", _sender.Id, _sender.Name);
Assert.True(_rlv.Permissions.TryGetRedirChatChannels(out var channels));
var expected = new List<int>
{
1234,
12345,
};
Assert.Equal(expected, channels);
}
[Fact]
public async Task IsRedirChat_RedirectChat()
{
var actual = _actionCallbacks.RecordReplies();
await _rlv.ProcessMessage("@redirchat:1234=add", _sender.Id, _sender.Name);
await _rlv.ReportSendPublicMessage("Hello World");
Assert.True(_rlv.Permissions.TryGetRedirChatChannels(out var channels));
var expected = new List<(int Channel, string Text)>
{
(1234, "Hello World"),
};
Assert.Equal(expected, actual);
}
[Fact]
public async Task IsRedirChat_RedirectChatMultiple()
{
var actual = _actionCallbacks.RecordReplies();
await _rlv.ProcessMessage("@redirchat:1234=add", _sender.Id, _sender.Name);
await _rlv.ProcessMessage("@redirchat:5678=add", _sender.Id, _sender.Name);
await _rlv.ReportSendPublicMessage("Hello World");
_rlv.Permissions.TryGetRedirChatChannels(out var channels);
var expected = new List<(int Channel, string Text)>
{
(1234, "Hello World"),
(5678, "Hello World"),
};
Assert.Equal(expected, actual);
}
[Fact]
public async Task IsRedirChat_RedirectChatEmote()
{
var actual = _actionCallbacks.RecordReplies();
await _rlv.ProcessMessage("@redirchat:1234=add", _sender.Id, _sender.Name);
await _rlv.ReportSendPublicMessage("/me says Hello World");
Assert.True(_rlv.Permissions.TryGetRedirChatChannels(out var channels));
Assert.Empty(actual);
}
#endregion
}
}