Login Tests + Login as User with Token + Login as User with Invalid Token + Login as Bot with Token + Login as Bot with Invalid Tokenpull/62/head
| @@ -0,0 +1,56 @@ | |||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using System.Threading.Tasks; | |||
| using Discord.Rest; | |||
| namespace Discord.Tests.Rest | |||
| { | |||
| [TestClass] | |||
| public class LoginTests | |||
| { | |||
| public static TestContext Context; | |||
| private static DiscordClient _client; | |||
| [ClassInitialize] | |||
| public static void Initialize(TestContext context) | |||
| { | |||
| Context = context; | |||
| _client = new DiscordClient(new DiscordConfig() { RestClientProvider = (url, ct) => new TestRestClient(url, ct) }); | |||
| if (EndpointHandler.Instance == null) EndpointHandler.Instance = new EndpointHandler(); | |||
| } | |||
| [TestMethod] | |||
| [TestCategory("Login")] | |||
| public async Task Test_Login_As_User() | |||
| { | |||
| Responses.Users.UserHandlers.Mode = Rest.Responses.Users.TestMode.User; | |||
| await _client.Login(TokenType.User, "UserToken_Voltana"); | |||
| } | |||
| [TestMethod] | |||
| [ExpectedException(typeof(Net.HttpException))] | |||
| [TestCategory("Login")] | |||
| public async Task Test_Login_As_User_With_Invalid_Token() | |||
| { | |||
| Responses.Users.UserHandlers.Mode = Rest.Responses.Users.TestMode.User; | |||
| await _client.Login(TokenType.User, "UserToken-NotVoltana"); | |||
| } | |||
| [TestMethod] | |||
| [TestCategory("Login")] | |||
| public async Task Test_Login_As_Bot() | |||
| { | |||
| Responses.Users.UserHandlers.Mode = Rest.Responses.Users.TestMode.Bot; | |||
| await _client.Login(TokenType.Bot, "UserToken_VoltanaBot"); | |||
| } | |||
| [TestMethod] | |||
| [ExpectedException(typeof(Net.HttpException))] | |||
| [TestCategory("Login")] | |||
| public async Task Test_Login_As_Bot_With_Invalid_Token() | |||
| { | |||
| Responses.Users.UserHandlers.Mode = Rest.Responses.Users.TestMode.Bot; | |||
| await _client.Login(TokenType.Bot, "UserToken-NotVoltanaBot"); | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,38 @@ | |||
| using Newtonsoft.Json; | |||
| namespace Discord.Tests.Rest.Responses.Users | |||
| { | |||
| public class Mock_Me_User_Valid | |||
| { | |||
| [JsonProperty("id")] | |||
| public string Id => "66078337084162048"; | |||
| [JsonProperty("username")] | |||
| public string Username => "Voltana"; | |||
| [JsonProperty("discriminator")] | |||
| public ushort Discriminator => 0001; | |||
| [JsonProperty("avatar")] | |||
| public string Avatar => "ec2b259bfe24686bf9d214b6bebe0834"; | |||
| [JsonProperty("verified")] | |||
| public bool IsVerified => true; | |||
| [JsonProperty("email")] | |||
| public string Email => "hello-i-am-not-real@foxbot.me"; | |||
| } | |||
| public class Mock_Me_Token_Valid | |||
| { | |||
| [JsonProperty("id")] | |||
| public string Id => "66078337084162048"; | |||
| [JsonProperty("username")] | |||
| public string Username => "foxboat"; | |||
| [JsonProperty("discriminator")] | |||
| public ushort Discriminator => 0005; | |||
| [JsonProperty("avatar")] | |||
| public string Avatar => "ec2b259bfe24686bf9d214b6bebe0834"; | |||
| [JsonProperty("verified")] | |||
| public bool IsVerified => true; | |||
| [JsonProperty("email")] | |||
| public string Email => "hello-i-am-not-real@foxbot.me"; | |||
| [JsonProperty("bot")] | |||
| public bool Bot => true; | |||
| } | |||
| } | |||
| @@ -0,0 +1,46 @@ | |||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |||
| using Newtonsoft.Json; | |||
| using Discord.Net; | |||
| using System.Net; | |||
| using System; | |||
| namespace Discord.Tests.Rest.Responses.Users | |||
| { | |||
| public static class UserHandlers | |||
| { | |||
| public static TestMode Mode; | |||
| public static string Me_Handler(string method, string json) | |||
| { | |||
| switch (Mode) | |||
| { | |||
| case TestMode.User: | |||
| return Me_User_Valid(method, json); | |||
| case TestMode.Bot: | |||
| return Me_Bot_Valid(method, json); | |||
| default: | |||
| throw new ArgumentException("TestMode was set incorrectly."); | |||
| } | |||
| } | |||
| public static string Me_User_Valid(string method, string json) | |||
| { | |||
| Assert.AreEqual("GET", method, "Expected method to '/users/@me' is GET."); | |||
| if (TestRestClient.Headers["authorization"] != "UserToken_Voltana") throw new HttpException((HttpStatusCode)401); | |||
| return JsonConvert.SerializeObject(new Mock_Me_User_Valid()); | |||
| } | |||
| public static string Me_Bot_Valid(string method, string json) | |||
| { | |||
| Assert.AreEqual("GET", method, "Expected method to '/users/@me' is GET."); | |||
| if (TestRestClient.Headers["authorization"] != "Bot UserToken_VoltanaBot") throw new HttpException((HttpStatusCode)401); | |||
| return JsonConvert.SerializeObject(new Mock_Me_User_Valid()); | |||
| } | |||
| } | |||
| public enum TestMode | |||
| { | |||
| User, | |||
| Bot | |||
| } | |||
| } | |||
| @@ -0,0 +1,40 @@ | |||
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Linq; | |||
| using System.Text; | |||
| using System.Threading.Tasks; | |||
| using Discord.Rest; | |||
| namespace Discord.Tests.Rest | |||
| { | |||
| [TestClass] | |||
| public class UserTests | |||
| { | |||
| public static TestContext Context; | |||
| private static DiscordClient _client; | |||
| [ClassInitialize] | |||
| public static async Task Initialize(TestContext context) | |||
| { | |||
| Context = context; | |||
| _client = new DiscordClient(new DiscordConfig() { RestClientProvider = (url, ct) => new TestRestClient(url, ct) }); | |||
| if (EndpointHandler.Instance == null) EndpointHandler.Instance = new EndpointHandler(); | |||
| Responses.Users.UserHandlers.Mode = Rest.Responses.Users.TestMode.User; | |||
| await _client.Login(TokenType.User, "UserToken_Voltana"); | |||
| } | |||
| [TestMethod] | |||
| [TestCategory("Users")] | |||
| public static async Task Test_Get_Current_User() | |||
| { | |||
| var currentUser = await _client.GetCurrentUser(); | |||
| Assert.AreEqual(66078337084162048, currentUser.Id, "Expected Id '66078337084162048'"); | |||
| Assert.AreEqual("Voltana", currentUser.Username, "Expected Name 'Voltana'"); | |||
| Assert.AreEqual(0001, currentUser.Discriminator, "Expected Discriminator '0001'"); | |||
| // Cannot Test Avatar URLs, Avatar ID not exposed publicly. | |||
| Assert.AreEqual(true, currentUser.IsVerified, "Expected Verified 'true'"); | |||
| Assert.AreEqual("hello-i-am-not-real@foxbot.me", currentUser.Email, "Expected Email 'hello-i-am-not-real@foxbot.me'"); | |||
| } | |||
| } | |||
| } | |||