示例#1
0
        public async Task Succeed_ReturnCreateReview()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_ReturnCreateReview));

            using (var arrangeContext = new ManagerLogbookContext(options))
            {
                await arrangeContext.BusinessUnits.AddAsync(TestHelperReview.TestBusinessUnit01());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new ManagerLogbookContext(options))
            {
                var mockBusinessValidator = new Mock <IBusinessValidator>();
                var mockReviewEditor      = new Mock <IReviewEditor>();

                var sut = new ReviewService(assertContext, mockBusinessValidator.Object, mockReviewEditor.Object);

                var review = await sut.CreateReviewAsync(TestHelperReview.Review01().OriginalDescription, TestHelperReview.Review01().Rating, TestHelperReview.Review01().BusinessUnitId);

                mockBusinessValidator.Verify(x => x.IsDescriptionInRange("Original Text of Review01"), Times.Exactly(1));
                mockBusinessValidator.Verify(x => x.IsRatingInRange(1), Times.Exactly(1));

                Assert.AreEqual(review.OriginalDescription, "Original Text of Review01");
                Assert.AreEqual(review.Rating, 1);
            }
        }