Beispiel #1
0
 private Task <IResult> IsValidAsync(GetScreenshotsQuery query)
 {
     return(_validator
            .Require <GameExistsRule>()
            .WithOptions(x => x.StopIfFailed())
            .WithData(query.GameId)
            .ValidateAsync());
 }
Beispiel #2
0
        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);
        }
Beispiel #3
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);
        }
Beispiel #4
0
        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());
        }