Ejemplo n.º 1
0
            public async Task ReturnBadRequest_WhenInvalidFilterIsProvided()
            {
                var rawFilter = new RawFilter
                {
                    MinRating = 2,
                    MaxRating = 1
                };

                var expectedError = new Error
                {
                    Type    = ErrorType.MinRatingGreaterThanMax.ToString(),
                    Message = ErrorMessage.Create(ErrorType.MinRatingGreaterThanMax)
                };

                _mockQueryHandler
                .Setup(handler => handler.GetLatestFeedBack(It.IsAny <RawFilter>()))
                .ReturnsAsync(Result.Fail <IReadOnlyCollection <PlayerFeedbackDto> >(expectedError));

                var controller =
                    new PlayerFeedbackController(_mockQueryHandler.Object, _mockFeedbackSender.Object, _mockClock.Object);

                var responseResult = await controller.Get(rawFilter);

                var response      = Assert.IsType <BadRequestObjectResult>(responseResult.Result);
                var receivedError = Assert.IsAssignableFrom <Error>(response.Value);

                Assert.Equal(StatusCodes.Status400BadRequest, response.StatusCode);
                Assert.Equal(expectedError, receivedError);
            }
Ejemplo n.º 2
0
            public async Task ReturnOkWithFeedbacks_WhenValidFilterIsProvided()
            {
                var rawFilter = new RawFilter
                {
                    MinRating = 2,
                    MaxRating = 3
                };

                var feedbacks = Array.AsReadOnly(new[] { _defaultPlayerFeedbackDto });

                _mockQueryHandler
                .Setup(handler => handler.GetLatestFeedBack(It.IsAny <RawFilter>()))
                .ReturnsAsync(Result.Ok <IReadOnlyCollection <PlayerFeedbackDto> >(new[] { _defaultPlayerFeedbackDto }));

                var controller =
                    new PlayerFeedbackController(_mockQueryHandler.Object, _mockFeedbackSender.Object, _mockClock.Object);

                var responseResult = await controller.Get(rawFilter);

                var expectedPlayerFeedback = new PlayerFeedbackResponse
                {
                    SessionId = _defaultPlayerFeedbackDto.SessionId,
                    PlayerId  = _defaultPlayerFeedbackDto.PlayerId,
                    Rating    = _defaultPlayerFeedbackDto.Rating,
                    Comment   = _defaultPlayerFeedbackDto.Comment,
                    Timestamp = _defaultPlayerFeedbackDto.Timestamp
                };

                var response          = Assert.IsType <OkObjectResult>(responseResult.Result);
                var receivedFeedbacks = Assert.IsAssignableFrom <IEnumerable <PlayerFeedbackResponse> >(response.Value);

                Assert.Equal(StatusCodes.Status200OK, response.StatusCode);
                Assert.Equal(expectedPlayerFeedback, receivedFeedbacks.First());
            }