public async Task GetSurvey_InvalidId_ReturnsNotFound() { var id = "123"; var mockRepository = Substitute.For <ISurveyRepository>(); mockRepository.GetSurveyAsync(id).Returns(OptionAsync <Survey> .None); var controller = new SurveyController(mockRepository); var response = await controller.GetSurveyAsync(id); response.Should().NotBeNull(); response.Should().BeOfType <NotFoundResult>() .Which.StatusCode.Should().Be((int)HttpStatusCode.NotFound); await mockRepository.Received().GetSurveyAsync(id); }
public async Task GetSurvey_ValidId_ReturnsOk() { var survey = RandomEntitiesGenerator.PredefinedSurveys.First(); var mockRepository = Substitute.For <ISurveyRepository>(); mockRepository.GetSurveyAsync(survey.Id).Returns(survey); var controller = new SurveyController(mockRepository); var response = await controller.GetSurveyAsync(survey.Id); response.Should().NotBeNull(); response.Should().BeOfType <OkObjectResult>() .Which.StatusCode.Should().Be((int)HttpStatusCode.OK); var ok = response as OkObjectResult; ok.Value.Should().BeAssignableTo <Survey>(); ok.Value.Should().BeEquivalentTo(survey, opt => opt.IgnoringCyclicReferences()); await mockRepository.Received().GetSurveyAsync(survey.Id); }