Browse Source

Message Unit Tests

Test Events for Send/Update/Delete Message
Test Exceptions for:
- Send to a Deleted Channel
- Send to a Channel with No Perms
- Update a Deleted Message
pull/42/head
Christopher F 9 years ago
parent
commit
75ee7b0913
1 changed files with 57 additions and 36 deletions
  1. +57
    -36
      test/Discord.Net.Tests/Tests.cs

+ 57
- 36
test/Discord.Net.Tests/Tests.cs View File

@@ -17,47 +17,16 @@ namespace Discord.Tests
private static DiscordClient _hostClient, _targetBot, _observerBot;
private static Server _testServer;
private static Channel _testServerChannel;
private static Channel _permRestrictedChannel;
private static Random _random;
private static Invite _testServerInvite;

private static TestContext _context;

[ClassInitialize]
public async static void Initialize(TestContext testContext)
public static void Initialize(TestContext testContext)
{
_context = testContext;

/*_context.WriteLine("Initializing.");

var settings = Settings.Instance;
_random = new Random();

_hostClient = new DiscordClient();
_targetBot = new DiscordClient();
_observerBot = new DiscordClient();

await _hostClient.Connect(settings.User1.Email, settings.User1.Password);
await _targetBot.Connect(settings.User2.Email, settings.User2.Password);
await _observerBot.Connect(settings.User3.Email, settings.User3.Password);

await Task.Delay(1000);

//Cleanup existing servers
WaitMany(
_hostClient.Servers.Select(x => x.IsOwner ? x.Delete() : x.Leave()),
_targetBot.Servers.Select(x => x.IsOwner ? x.Delete() : x.Leave()),
_observerBot.Servers.Select(x => x.IsOwner ? x.Delete() : x.Leave()));
//Create new server and invite the other bots to it

_testServer = await _hostClient.CreateServer("Discord.Net Testing", _hostClient.Regions.First());
_testServerChannel = _testServer.DefaultChannel;

await Task.Delay(1000);

Invite invite = await _testServer.CreateInvite(60, 3, false, false);
WaitAll(
(await _targetBot.GetInvite(invite.Code)).Accept(),
(await _observerBot.GetInvite(invite.Code)).Accept());*/
}

[TestMethod]
@@ -116,6 +85,8 @@ namespace Discord.Tests
_targetBot.Servers.Select(x => x.IsOwner ? x.Delete() : x.Leave());
}

// Servers

[TestMethod]
[Priority(3)]
public void TestJoinedServer()
@@ -179,14 +150,64 @@ namespace Discord.Tests

//Messages
[TestMethod]
public void TestMessageReceived()
public void TestMessageEvents()
{
string name = $"test_{_random.Next()}";
var channel = _testServer.CreateChannel(name, ChannelType.Text).Result;
_context.WriteLine($"Channel Name: {channel.Name} / {channel.Server.Name}");
string text = $"test_{_random.Next()}";
Message message = null;
AssertEvent<MessageEventArgs>(
"MessageCreated event never received",
() => _testServerChannel.SendMessage(text),
async () => message = await channel.SendMessage(text),
x => _targetBot.MessageReceived += x,
x => _targetBot.MessageReceived -= x);
x => _targetBot.MessageReceived -= x,
(s, e) => e.Message.Text == text);

AssertEvent<MessageUpdatedEventArgs>(
"MessageUpdated event never received",
async () => await message.Edit(text + " updated"),
x => _targetBot.MessageUpdated += x,
x => _targetBot.MessageUpdated -= x,
(s, e) => e.Before.Text == text && e.After.Text == text + " updated");

AssertEvent<MessageEventArgs>(
"MessageDeleted event never received",
async () => await message.Delete(),
x => _targetBot.MessageDeleted += x,
x => _targetBot.MessageDeleted -= x,
(s, e) => e.Message.Id == message.Id);
}

[TestMethod]
[ExpectedException(typeof(Net.HttpException))]
public async Task TestSendMessage_InvalidChannel()
{
string name = $"test_{_random.Next()}";
var channel = await _testServer.CreateChannel(name, ChannelType.Text);
await channel.Delete();
await channel.SendMessage($"test_{_random.Next()}");
}
[TestMethod]
[ExpectedException(typeof(Net.HttpException))]
public async Task TestSendMessage_NoPermissions()
{
string name = $"test_{_random.Next()}";
var channel = await _testServer.CreateChannel(name, ChannelType.Text);
var user = _testServer.GetUser(_targetBot.CurrentUser.Id);
var overwrite = new ChannelPermissionOverrides(sendMessages: PermValue.Deny);
await channel.AddPermissionsRule(user, overwrite);
await _targetBot.Servers.FirstOrDefault().GetChannel(channel.Id).SendMessage($"test_{_random.Next()}");
}
[TestMethod]
[ExpectedException(typeof(Net.HttpException))]
public async Task TestUpdateMessage_DeletedMessage()
{
string name = $"test_{_random.Next()}";
var channel = await _testServer.CreateChannel(name, ChannelType.Text);
var m = await channel.SendMessage($"test_{_random.Next()}");
await m.Delete();
await m.Edit($"test_{_random.Next()}");
}

[ClassCleanup]


Loading…
Cancel
Save