public async Task ReturnBadRequest_WhenUbiUserIdHeaderIsMissing() { var requestBody = new PlayerFeedBackRequest { SessionId = new Guid("906733a4-f2c9-44c1-9e03-b8a8c5393e18"), Rating = 5, Comment = "" }; var controller = new PlayerFeedbackController(_mockQueryHandler.Object, _mockFeedbackSender.Object, _mockClock.Object); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var responseResult = await controller.Post(requestBody); var response = Assert.IsType <BadRequestObjectResult>(responseResult); var receivedError = Assert.IsAssignableFrom <Error>(response.Value); var expectedError = new Error { Type = UbiUserIdHeader.UbiUserIdMissingError, Message = UbiUserIdHeader.UbiUserIdMissingErrorMessage }; Assert.Equal(StatusCodes.Status400BadRequest, response.StatusCode); Assert.Equal(expectedError, receivedError); }
public async Task ReturnOk_WhenValidFeedbackIsGivenWithUbiUserIdHeader_And_FeedbackIsSuccessfullySent() { var ubiUserId = "player-id-1"; var requestBody = new PlayerFeedBackRequest { SessionId = new Guid("906733a4-f2c9-44c1-9e03-b8a8c5393e18"), Rating = 5, Comment = "" }; _mockFeedbackSender .Setup(sender => sender.Send(It.IsAny <PlayerFeedbackDto>())) .ReturnsAsync(Result.Ok()); var controller = new PlayerFeedbackController(_mockQueryHandler.Object, _mockFeedbackSender.Object, _mockClock.Object); controller.ControllerContext.HttpContext = new DefaultHttpContext(); UbiUserIdHeaderHelper.AddUbiUserIdsToRequestHeader( controller.ControllerContext.HttpContext.Request, ubiUserId ); var responseResult = await controller.Post(requestBody); var response = Assert.IsType <OkResult>(responseResult); Assert.Equal(StatusCodes.Status200OK, response.StatusCode); }
public async Task ReturnBadRequest_WhenUbiUserIdIsGiven_But_InvalidFeedbackIsGiven() { var ubiUserId = "player-id-1"; var requestBody = new PlayerFeedBackRequest { SessionId = new Guid("906733a4-f2c9-44c1-9e03-b8a8c5393e18"), Rating = -1, Comment = "" }; var expectedError = new Error { Type = ErrorType.RatingOutOfRange.ToString(), Message = ErrorMessage.RatingOutOfRangeMessage }; _mockFeedbackSender .Setup(sender => sender.Send(It.IsAny <PlayerFeedbackDto>())) .ReturnsAsync(Result.Fail(expectedError)); var controller = new PlayerFeedbackController(_mockQueryHandler.Object, _mockFeedbackSender.Object, _mockClock.Object); controller.ControllerContext.HttpContext = new DefaultHttpContext(); UbiUserIdHeaderHelper.AddUbiUserIdsToRequestHeader( controller.ControllerContext.HttpContext.Request, ubiUserId ); var responseResult = await controller.Post(requestBody); var response = Assert.IsType <BadRequestObjectResult>(responseResult); var receivedError = Assert.IsAssignableFrom <Error>(response.Value); Assert.Equal(StatusCodes.Status400BadRequest, response.StatusCode); Assert.Equal(expectedError, receivedError); }