Ejemplo n.º 1
0
        public void GetExpensesByFiscalYearTest()
        {
            // arrange

            //add more items if you want.
            var data = new List <Data.Models.Expenses>
            {
                new Data.Models.Expenses {
                    Description = "AAAAA", Amount = 1000, Date = new DateTime(2016, 02, 14)
                },
                new Data.Models.Expenses {
                    Description = "bbbbbb", Amount = 2000, Date = new DateTime(2017, 02, 14)
                },
                new Data.Models.Expenses {
                    Description = "cccccc", Amount = 3000, Date = new DateTime(2018, 02, 14)
                },
                new Data.Models.Expenses {
                    Description = "DDDDDD", Amount = 4000, Date = new DateTime(2018, 02, 20)
                },
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Data.Models.Expenses> >();

            mockSet.As <IQueryable <Data.Models.Expenses> >().Setup(m => m.Provider).Returns(data.Provider);
            mockSet.As <IQueryable <Data.Models.Expenses> >().Setup(m => m.Expression).Returns(data.Expression);
            mockSet.As <IQueryable <Data.Models.Expenses> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockSet.As <IQueryable <Data.Models.Expenses> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            var mockContext = new Mock <ExpensesDbContext>();

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

            var service = new ExpensesServices(mockContext.Object);
            // act

            var item = service.GetExpensesByFiscalYear(2017);// if the fiscal year is 2017, the list should be all the records where the date between Aplil 1, 2017 and  March 31 2018

            // assert
            Assert.AreEqual(2, item.Count);                 // if the test is correct with the initialized data,we expect 2 rows
            Assert.AreEqual(7000, item.Sum(x => x.Amount)); //the amount sum should be 7000(with the initialized data)
        }
Ejemplo n.º 2
0
        public void AddItemTest()
        {
            // arrange
            var ExpensesItem = new Data.Models.Expenses
            {
                Amount      = 963,
                Description = "This a Unit test for insert record on January 30",
                Date        = System.DateTime.Now,
            };
            var mockSet = new Mock <DbSet <Data.Models.Expenses> >();

            var mockContext = new Mock <ExpensesDbContext>();

            mockContext.Setup(m => m.Expenses).Returns(mockSet.Object);

            var service = new ExpensesServices(mockContext.Object);

            service.AddItem(ExpensesItem);

            // the test verifies that the service added a new Expense and called SaveChanges on the context.
            mockSet.Verify(m => m.Add(It.IsAny <Data.Models.Expenses>()), Times.Once());
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }