private Task <IResult> IsValidAsync(GetScreenshotsQuery query) { return(_validator .Require <GameExistsRule>() .WithOptions(x => x.StopIfFailed()) .WithData(query.GameId) .ValidateAsync()); }
public async Task GivenGetToScreenshots_WhenNoScreenshotsReturned_AnEmptyResponseShouldBeReturned() { GetScreenshotsQuery.Execute(CancellationToken.None).Returns(_screenshots); var response = await Client.GetAsync("/api/screenshots"); response.StatusCode.ShouldBe(HttpStatusCode.OK); var screenshotResponse = await DeserializeResponse <ScreenshotsResponse>(response); screenshotResponse.Screenshots.ShouldBeEmpty(); screenshotResponse.Count.ShouldBe(0); }
public async Task GivenGetToScreenshots_WhenScreenshotsReturned_ResponseShouldContainScreenshots() { _screenshots.Add(CreateScreenshot(new byte[] { 1 }, "http://abc.se")); _screenshots.Add(CreateScreenshot(new byte[] { 2 }, "http://def.gh")); GetScreenshotsQuery.Execute(CancellationToken.None).Returns(_screenshots); var response = await Client.GetAsync("/api/screenshots"); response.StatusCode.ShouldBe(HttpStatusCode.OK); var screenshotResponse = await DeserializeResponse <ScreenshotsResponse>(response); var screenshots = screenshotResponse.Screenshots.ToList(); screenshots.Count.ShouldBe(_screenshots.Count); screenshots[0].Data.ShouldBe(_screenshots[0].Data); screenshots[0].Url.ShouldBe(_screenshots[0].Url); screenshots[1].Data.ShouldBe(_screenshots[1].Data); screenshots[1].Url.ShouldBe(_screenshots[1].Url); screenshotResponse.Count.ShouldBe(_screenshots.Count); }
public async Task <IResult <IReadOnlyCollection <ScreenShotResponse> > > HandleAsync(GetScreenshotsQuery query) { var validationResult = await IsValidAsync(query); if (validationResult.HasFailed()) { return(validationResult.Map <IReadOnlyCollection <ScreenShotResponse> >()); } var screenshots = await _gameService.GetScreenshots(query.GameId); return(screenshots.ToSuccessfulResult()); }