using System.Net; using Discord.API.Rest; using RichardSzalay.MockHttp; namespace Discord.API.Tests; public class RestClientTests{ [Fact] public async void GetGatewayTest(){ // Arrange var mock = new MockHttpMessageHandler(); mock.Expect(HttpMethod.Get, "https://localhost/gateway").Respond(HttpStatusCode.OK,"application/json", """ {"url":"wss://test.gateway.api/"} """); // Act var rest_client = new RestClient("https://localhost/", "api_key", mock); var res = await rest_client.GetGateway(); // Assert Assert.IsType>(res); Assert.True(res.Success); Assert.Equal("wss://test.gateway.api/", res.Value.Url); mock.VerifyNoOutstandingExpectation(); } [Fact] public async void GetGatewayErrorTest(){ // Arrange var mock = new MockHttpMessageHandler(); mock.Expect(HttpMethod.Get, "https://localhost/gateway").Respond(HttpStatusCode.TooManyRequests,"application/json", """ { "message": "You are being rate limited.", "retry_after": 64.57, "global": false } """); // Act var rest_client = new RestClient("https://localhost/", "api_key", mock); var res = await rest_client.GetGateway(); // Assert Assert.IsType>(res); Assert.False(res.Success); Assert.Equal("You are being rate limited.", res.Error.Message); mock.VerifyNoOutstandingExpectation(); } }