Beispiel #1
0
        public async Task AddReview_When_ValidValuesArePassed()
        {
            var options = TestUtilities.GetOptions(nameof(AddReview_When_ValidValuesArePassed));

            barFactoryMoq.Setup(b => b.CreateNewBarReview(createReviewForTest.Grade, createReviewForTest.Comment,
                                                          createReviewForTest.UserId, createReviewForTest.BarId, createReviewForTest.CreatedOn))
            .Returns(createReviewForTest);
            using (var arrangeContext = new CMContext(options))
            {
                arrangeContext.Bars.Add(barTwoTest);
                arrangeContext.Bars.Add(barForTest);
                arrangeContext.Users.Add(userForTests);
                await arrangeContext.SaveChangesAsync();
            }



            using (var assertContext = new CMContext(options))
            {
                var sut = new BarManager(assertContext, cocktailManagerMoq.Object, barFactoryMoq.Object);
                barFactoryMoq.Setup(b => b.CreateNewBarReview(3.5d, "Comment", "TheOne", "Two", DateTime.MinValue)).Returns(createReviewForTest);
                await sut.CreateBarReviewAsync(createReviewForTest.ToDTO());

                Assert.AreEqual(1, assertContext.BarReviews.Count());
            }
        }
Beispiel #2
0
        public async Task ThrowInvalidOperationException_When_NoRatingIsGiven()
        {
            var options = TestUtilities.GetOptions(nameof(ThrowInvalidOperationException_When_NoRatingIsGiven));

            var barReviewTest = new BarReview()
            {
                Bar       = barForTest,
                BarId     = barForTest.BarId,
                Comment   = "Message",
                CreatedOn = DateTime.MinValue,
                Grade     = 0d,
                User      = userForTests,
                UserId    = userForTests.Id
            };

            //using (var arrangeContext = new CMContext(options))
            //{
            //    arrangeContext.Bars.Add(barForTest);
            //    arrangeContext.Users.Add(userForTests);
            //    await arrangeContext.SaveChangesAsync();
            //}

            using (var assertContext = new CMContext(options))
            {
                var sut = new BarManager(assertContext, cocktailManagerMoq.Object, barFactoryMoq.Object);

                await Assert.ThrowsExceptionAsync <InvalidOperationException>(() => sut.CreateBarReviewAsync(barReviewTest.ToDTO()));
            }
        }
Beispiel #3
0
        public async Task ShowCorrectMessage_When_ThrowsInvalidOperationException()
        {
            var options = TestUtilities.GetOptions(nameof(ShowCorrectMessage_When_ThrowsInvalidOperationException));

            var message       = "Cannot comment a Bar without giving it a rating!";
            var barReviewTest = new BarReview()
            {
                Bar       = barForTest,
                BarId     = barForTest.BarId,
                Comment   = "Message",
                CreatedOn = DateTime.MinValue,
                Grade     = 0d,
                User      = userForTests,
                UserId    = userForTests.Id
            };

            using (var arrangeContext = new CMContext(options))
            {
                arrangeContext.Bars.Add(barForTest);
                arrangeContext.Users.Add(userForTests);
                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CMContext(options))
            {
                var sut = new BarManager(assertContext, cocktailManagerMoq.Object, barFactoryMoq.Object);

                var ex = await Assert.ThrowsExceptionAsync <InvalidOperationException>(() => sut.CreateBarReviewAsync(barReviewTest.ToDTO()));

                Assert.AreEqual(message, ex.Message);
            }
        }