コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }