@@ -14,5 +14,17 @@ namespace Discord.Tests.Framework.Mocks.Rest | |||||
Verified = true, | Verified = true, | ||||
Avatar = "cdd7ae679ef37ce03e097221c70aeed6" | Avatar = "cdd7ae679ef37ce03e097221c70aeed6" | ||||
}; | }; | ||||
public static User BotSelfUser => new User() | |||||
{ | |||||
Id = 145584102551060480, | |||||
Username = "foxboat", | |||||
Discriminator = "8888", | |||||
Email = null, | |||||
MfaEnabled = true, | |||||
Verified = true, | |||||
Avatar = "5f0be46cea584d2225e6c15e8418fb52", | |||||
Bot = true | |||||
}; | |||||
} | } | ||||
} | } |
@@ -16,8 +16,14 @@ namespace Discord.Tests.Framework.Routes | |||||
public static object Me(string json, IReadOnlyDictionary<string, string> requestHeaders) | public static object Me(string json, IReadOnlyDictionary<string, string> requestHeaders) | ||||
{ | { | ||||
if (!requestHeaders.ContainsKey("authorization")) throw new HttpException(HttpStatusCode.Forbidden); | if (!requestHeaders.ContainsKey("authorization")) throw new HttpException(HttpStatusCode.Forbidden); | ||||
if (requestHeaders["authorization"] != UserToken) throw new HttpException(HttpStatusCode.Forbidden); | |||||
return UserMocks.SelfUser; | |||||
if (requestHeaders["authorization"] != UserToken | |||||
&& requestHeaders["authorization"] != $"Bot {BotToken}" | |||||
&& requestHeaders["authorization"] != $"Bearer {BearerToken}") throw new HttpException(HttpStatusCode.Forbidden); | |||||
if (requestHeaders["authorization"] == UserToken || requestHeaders["authorization"] == $"Bearer {BearerToken}") | |||||
return UserMocks.SelfUser; | |||||
else | |||||
return UserMocks.BotSelfUser; | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -31,5 +31,29 @@ namespace Discord.Tests.Rest | |||||
var client = fixture.Client; | var client = fixture.Client; | ||||
await Assert.ThrowsAsync<ArgumentException>(async () => await client.LoginAsync(TokenType.User, "token.invalid")); | await Assert.ThrowsAsync<ArgumentException>(async () => await client.LoginAsync(TokenType.User, "token.invalid")); | ||||
} | } | ||||
[Fact] | |||||
public async Task LoginAsBot() | |||||
{ | |||||
var client = fixture.Client; | |||||
await client.LoginAsync(TokenType.Bot, Routes.BotToken); | |||||
} | |||||
[Fact] | |||||
public async Task LoginAsBotWithInvalidToken() | |||||
{ | |||||
var client = fixture.Client; | |||||
await Assert.ThrowsAsync<ArgumentException>(async () => await client.LoginAsync(TokenType.Bot, "token.invalid")); | |||||
} | |||||
[Fact] | |||||
public async Task LoginAsBearer() | |||||
{ | |||||
var client = fixture.Client; | |||||
await client.LoginAsync(TokenType.Bearer, Routes.BearerToken); | |||||
} | |||||
[Fact] | |||||
public async Task LoginAsBearerWithInvalidToken() | |||||
{ | |||||
var client = fixture.Client; | |||||
await Assert.ThrowsAsync<ArgumentException>(async () => await client.LoginAsync(TokenType.Bearer, "token.invalid")); | |||||
} | |||||
} | } | ||||
} | } |