Browse Source

Add tests for Users; Add Mocks/Handlers

+ Test GET /users/@me
+ Test GET /users/:id
pull/62/head
Christopher F 9 years ago
parent
commit
25300d5fa4
6 changed files with 50 additions and 7 deletions
  1. +5
    -3
      test/Discord.Net.Tests/Discord.Net.Tests.csproj
  2. +1
    -0
      test/Discord.Net.Tests/Rest/Framework/EndpointHandler.cs
  3. +0
    -0
      test/Discord.Net.Tests/Rest/Framework/TestRestClient.cs
  4. +6
    -0
      test/Discord.Net.Tests/Rest/Responses/Users/UserHandlers.cs
  5. +16
    -0
      test/Discord.Net.Tests/Rest/Responses/Users/User_Mocks.cs
  6. +22
    -4
      test/Discord.Net.Tests/Rest/UserTests.cs

+ 5
- 3
test/Discord.Net.Tests/Discord.Net.Tests.csproj View File

@@ -55,11 +55,13 @@
</Otherwise>
</Choose>
<ItemGroup>
<Compile Include="Rest.cs" />
<Compile Include="Rest\EndpointHandler.cs" />
<Compile Include="Rest\LoginTests.cs" />
<Compile Include="Rest\Framework\EndpointHandler.cs" />
<Compile Include="Rest\Responses\Users\Me_Mocks.cs" />
<Compile Include="Rest\Responses\Users\UserHandlers.cs" />
<Compile Include="Rest\TestRestClient.cs" />
<Compile Include="Rest\Framework\TestRestClient.cs" />
<Compile Include="Rest\Responses\Users\User_Mocks.cs" />
<Compile Include="Rest\UserTests.cs" />
<Compile Include="Tests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>


test/Discord.Net.Tests/Rest/EndpointHandler.cs → test/Discord.Net.Tests/Rest/Framework/EndpointHandler.cs View File

@@ -20,6 +20,7 @@ namespace Discord.Tests.Rest

// /users Endpoints
Handlers.Add("users/@me", Responses.Users.UserHandlers.Me_Handler);
Handlers.Add("users/96642168176807936", Responses.Users.UserHandlers.Id_User_Valid);
}

public string HandleMessage(string method, string endpoint, string json)

test/Discord.Net.Tests/Rest/TestRestClient.cs → test/Discord.Net.Tests/Rest/Framework/TestRestClient.cs View File


+ 6
- 0
test/Discord.Net.Tests/Rest/Responses/Users/UserHandlers.cs View File

@@ -36,6 +36,12 @@ namespace Discord.Tests.Rest.Responses.Users
if (TestRestClient.Headers["authorization"] != "Bot UserToken_VoltanaBot") throw new HttpException((HttpStatusCode)401);
return JsonConvert.SerializeObject(new Mock_Me_User_Valid());
}

public static string Id_User_Valid(string method, string json)
{
Assert.AreEqual("GET", method, "Expected method to '/users/:id' is GET");
return JsonConvert.SerializeObject(new Mock_ID_PublicUser());
}
}

public enum TestMode


+ 16
- 0
test/Discord.Net.Tests/Rest/Responses/Users/User_Mocks.cs View File

@@ -0,0 +1,16 @@
using Newtonsoft.Json;

namespace Discord.Tests.Rest.Responses.Users
{
class Mock_ID_PublicUser
{
[JsonProperty("id")]
public string Id => "96642168176807936";
[JsonProperty("username")]
public string Username => "Khionu";
[JsonProperty("discriminator")]
public ushort Discriminator => 9999;
[JsonProperty("avatar")]
public string Avatar => "ceeff590f1e0e1ccae0afc89967131ff";
}
}

+ 22
- 4
test/Discord.Net.Tests/Rest/UserTests.cs View File

@@ -15,26 +15,44 @@ namespace Discord.Tests.Rest
private static DiscordClient _client;

[ClassInitialize]
public static async Task Initialize(TestContext context)
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();
Responses.Users.UserHandlers.Mode = Rest.Responses.Users.TestMode.User;
await _client.Login(TokenType.User, "UserToken_Voltana");
_client.Login(TokenType.User, "UserToken_Voltana").Wait();
}
[TestMethod]
[TestCategory("Users")]
public static async Task Test_Get_Current_User()
public async Task Test_Get_Current_User()
{
var currentUser = await _client.GetCurrentUser();
Assert.AreEqual(66078337084162048, currentUser.Id, "Expected Id '66078337084162048'");
Assert.AreEqual((UInt64)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'");
Assert.AreEqual(UserStatus.Unknown, currentUser.Status, "UserStatus should not be populated.");
Assert.AreEqual(false, currentUser.IsBot, "Expected IsBot 'false'");
Assert.AreEqual("<@66078337084162048>", currentUser.Mention, "Expected Mention '<@66078337084162048>'");
Assert.IsNull(currentUser.CurrentGame, "CurrentGame should not be populated.");
Assert.AreEqual(new DateTime(635714215032370000), currentUser.CreatedAt, "Expected Created At '635714215032370000'");
}
[TestMethod]
[TestCategory("Users")]
public async Task Test_Get_User()
{
var user = await _client.GetUser(96642168176807936);
Assert.AreEqual((UInt64)96642168176807936, user.Id, "Expected Id '96642168176807936'");
Assert.AreEqual("Khionu", user.Username, "Expected Name 'Khionu'");
Assert.AreEqual(9999, user.Discriminator, "Expected Discriminator '0001'");
// Cannot Test Avatar URLs, Avatar ID not exposed publicly.
Assert.AreEqual(false, user.IsBot, "Expected IsBot 'false'");
Assert.AreEqual("<@!96642168176807936>", user.NicknameMention, "Expected Mention '<@!96642168176807936>'");
Assert.AreEqual(new DateTime(635787084884180000), user.CreatedAt, "Expected Created At '635787084884180000'");
}
}
}

Loading…
Cancel
Save