Esempio n. 1
0
        [TestMethod] //A value test
        public void GettingTopFiveReviews_WhenFiveExist_ReturnsFiveInDescendingOrder()
        {
            //Arrange
            var mockContext     = Mock.Create <FruitFinderContext>().PrepareMock();
            var reviews         = new List <Review>();
            var builder         = new FruidFinderDalBuilder().WithContext(mockContext);
            var numberToInclude = 5;

            for (int i = 0; i < numberToInclude * 2; i++)
            {
                var review = builder.MakeReview();
                review.VoteTally = i;
                reviews.Add(review);
            }
            mockContext.Reviews.Bind(reviews);
            var dal = builder.Build();

            //Act
            var result = dal.GetTopReviews(numberToInclude);

            //Assert
            result.Count().Should().Be(numberToInclude,
                                       "the list should have " + numberToInclude + " reviews");
            result.Should().BeInDescendingOrder(x => x.VoteTally,
                                                "the reviews should be in descending order by VoteTally");
        }
Esempio n. 2
0
        [TestMethod] //An interaction test
        public void SavingAReview_WhenSuccessful_CallsContextSaveChanges()
        {
            //Arrange
            var mockContext = Mock.Create <FruitFinderContext>();
            var builder     = new FruidFinderDalBuilder().WithContext(mockContext);
            var dal         = builder.Build();

            Mock.Arrange(() => mockContext.SaveChanges()).OccursOnce();
            var review = builder.MakeReview();

            //Act
            dal.SaveReview(review);

            //Assert
            Mock.Assert(mockContext);
        }
Esempio n. 3
0
        [TestMethod] //A state test
        public void SavingAReview_WhenUpdatingIt_UpdatesTheUpdatedWhenAndBy()
        {
            //Arrange
            var builder         = new FruidFinderDalBuilder();
            var dal             = builder.Build();
            var dateTimeService = builder.GetDateTimeService();
            var review          = builder.MakeReview();

            review.ReviewId    = 1;
            review.UpdatedBy   = FruidFinderDalBuilder.SecurityServiceUserId + 1;
            review.UpdatedWhen = dateTimeService.UtcNow().AddDays(-1);

            //Act
            dal.SaveReview(review);

            //Assert
            review.UpdatedWhen.ShouldBeEquivalentTo(dateTimeService.UtcNow(),
                                                    "the updated date should be set to UtcNow when the review is saved");
            review.UpdatedBy.ShouldBeEquivalentTo(FruidFinderDalBuilder.SecurityServiceUserId,
                                                  "the updated by should be set to the current user when a review is saved");
        }