private async Task should_return_stream( Mock <IWebSocketClient> webSocket, SlackConnection slackConnection, string slackKey, Fixture fixture) { using (var httpTest = new HttpTest()) { // given var downloadUri = new Uri($"https://files.slack.com/{fixture.Create<string>()}"); var connectionInfo = new ConnectionInformation { WebSocket = webSocket.Object, SlackKey = slackKey }; await slackConnection.Initialise(connectionInfo); httpTest .RespondWithJson(new { fakeObject = true }); // when var result = await slackConnection.DownloadFile(downloadUri); // then result.ShouldNotBeNull(); httpTest .ShouldHaveCalled(downloadUri.AbsoluteUri) .WithOAuthBearerToken(slackKey); } }
public async Task should_download_file() { // given var uri = new Uri("https://files.slack.com/files-pri/T3NFBGBAS-FBUSTA0P4/fuuuu.gif"); // when var download = await SlackConnection.DownloadFile(uri); // then using (download) { download.ShouldNotBeNull(); download.Length.ShouldBeGreaterThan(0); var image = Image.Load(download); image.Width.ShouldBe(43); image.Height.ShouldBe(29); } }
private async Task throws_exception_if_uri_isnt_slack( Mock <IWebSocketClient> webSocket, SlackConnection slackConnection, string slackKey, Fixture fixture) { // given var downloadUri = new Uri($"https://something.com/{fixture.Create<string>()}"); var connectionInfo = new ConnectionInformation { WebSocket = webSocket.Object, SlackKey = slackKey }; await slackConnection.Initialise(connectionInfo); // when var exception = Should.Throw <ArgumentException>(async() => await slackConnection.DownloadFile(downloadUri)); // then exception.ShouldNotBeNull(); exception.Message.ShouldContain("Invalid uri"); }