예제 #1
0
        public void GetAllNamesCategories_ReturnsAsACorrectListOfAllCategoryNames()
        {
            // Arrange
            var categories = new List <Category>
            {
                new Category {
                    Name = "TestCategory1", Id = 1
                },
                new Category {
                    Name = "TestCategory2", Id = 2
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Category> >();

            mockSet.As <IQueryable <Category> >().Setup(m => m.Provider).Returns(categories.Provider);
            mockSet.As <IQueryable <Category> >().Setup(m => m.Expression).Returns(categories.Expression);
            mockSet.As <IQueryable <Category> >().Setup(m => m.ElementType).Returns(categories.ElementType);
            mockSet.As <IQueryable <Category> >().Setup(m => m.GetEnumerator()).Returns(categories.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Categories).Returns(mockSet.Object);

            var categoryBusiness = new CategoryBusiness(mockContext.Object);

            // Act
            string expectedFirstName  = "TestCategory1";
            string expectedSecondName = "TestCategory2";
            var    categoryNames      = categoryBusiness.GetAllNames();

            // Assert
            Assert.AreEqual(expectedFirstName, categoryNames[0], "First category name does not match.");
            Assert.AreEqual(expectedSecondName, categoryNames[1], "First category name does not match.");
        }