public async Task Then_The_Request_Is_Passed_To_Mediator_And_Data_Returned() { _mediator.Setup(x => x.SendAsync(It.Is <GetTrainingProgrammeQuery>(c => c.Id.Equals(_trainingCode)))) .ReturnsAsync(_queryResult); var actual = await _controller.GetTrainingProgramme(_trainingCode) as OkNegotiatedContentResult <GetTrainingProgrammeResponse>;; //actual Assert.IsNotNull(actual); actual.Content.TrainingProgramme.ShouldBeEquivalentTo(_queryResult.TrainingProgramme); }
public async Task Then_If_There_Is_An_Error_A_Bad_Request_Is_Returned( [Frozen] Mock <IMediator> mediator, TrainingProgrammeController controller) { mediator .Setup(mediator => mediator.Send( It.IsAny <GetTrainingProgrammeQuery>(), It.IsAny <CancellationToken>())) .Throws <InvalidOperationException>(); var controllerResult = await controller.GetTrainingProgramme("1") as StatusCodeResult; controllerResult.StatusCode.Should().Be((int)HttpStatusCode.BadRequest); }
public async Task Then_If_The_Course_Is_Not_Found_Then_A_NotFound_Result_Is_Returned( [Frozen] Mock <IMediator> mediator, TrainingProgrammeController controller) { mediator .Setup(mediator => mediator.Send( It.IsAny <GetTrainingProgrammeQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new GetTrainingProgrammeQueryResult { TrainingProgramme = null }); var controllerResult = await controller.GetTrainingProgramme("1") as StatusCodeResult; controllerResult.StatusCode.Should().Be((int)HttpStatusCode.NotFound); }
public async Task Then_The_Request_Is_Passed_To_Mediator_And_Data_Returned( string id, GetTrainingProgrammeQueryResult result, [Frozen] Mock <IMediator> mediator, TrainingProgrammeController controller) { mediator.Setup(x => x.Send(It.Is <GetTrainingProgrammeQuery>(c => c.Id.Equals(id)), CancellationToken.None)).ReturnsAsync(result); var actual = await controller.GetTrainingProgramme(id) as OkObjectResult;; //actual Assert.IsNotNull(actual); var model = actual.Value as GetTrainingProgrammeResponse; Assert.IsNotNull(model); model.TrainingProgramme.Should().BeEquivalentTo(result.TrainingProgramme); }