コード例 #1
0
        public async Task VerifyCreatingReviewCallsApiWhenDataIsFilled()
        {
            var          book         = new DetailedBookDto();
            var          authService  = new Mock <IAuthenticationService>();
            AccountModel loggedOnUser = new AccountModel(new AuthTokenDto
            {
                Person = new PersonDto()
            });

            authService.SetupGet(s => s.LoggedOnAccount).Returns(() => loggedOnUser);
            var feedbackService = new Mock <IFeedbackService>();

            var viewModel = new CreateReviewViewModel(book, authService.Object, feedbackService.Object);

            await Should.ThrowAsync <InvalidOperationException>(async() => await viewModel.CreateReview());

            feedbackService.Verify(s => s.CreateFeedback(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()), Times.Never);

            viewModel.Rating = 3;
            await Should.ThrowAsync <InvalidOperationException>(async() => await viewModel.CreateReview());

            feedbackService.Verify(s => s.CreateFeedback(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()), Times.Never);

            viewModel.Message = "Message";
            var dto = await viewModel.CreateReview();

            feedbackService.Verify(s => s.CreateFeedback(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()), Times.Once);
        }
コード例 #2
0
        public async Task VerifyValidCreateCallsApi()
        {
            var book = new DetailedBookDto {
                Id = 5
            };
            var          authService  = new Mock <IAuthenticationService>();
            AccountModel loggedOnUser = new AccountModel(new AuthTokenDto
            {
                Person = new PersonDto()
            });

            authService.SetupGet(s => s.LoggedOnAccount).Returns(() => loggedOnUser);
            var feedbackService = new Mock <IFeedbackService>();

            var viewModel = new CreateReviewViewModel(book, authService.Object, feedbackService.Object)
            {
                Message = "test",
                Rating  = 2
            };

            var feedback = new BookFeedbackDto();

            feedbackService.Setup(s => s.CreateFeedback(5, 2, "test")).ReturnsAsync(feedback);
            var dto = await viewModel.CreateReview();

            dto.ShouldBe(feedback);
            feedbackService.Verify(s => s.CreateFeedback(5, 2, "test"), Times.Once);
        }