public void GetBudgetsByCategorySummary_Tests() { #region Data int channelid = 1, mrmUserId = 25; string fy = "2016", budgettype = "On Air,Off Air,Paid Media", networkLogin = "******"; string[] total = budgettype.Split(',').ToArray(); BudgetByCategorySumViewModel summarylist1 = new BudgetByCategorySumViewModel { Category = "ABC", ActualAmount = 5256, CommittedAmount = 3000, AllocatedBudgetAmount = 2500, BudgetAmount = 4000, EstimateToComplete = 4500, EstimatedFinalCost = 5000, OverUnder = 50 }; BudgetByCategorySumViewModel summarylist2 = new BudgetByCategorySumViewModel { Category = "Aquired Movies", ActualAmount = 6456, CommittedAmount = 4000, AllocatedBudgetAmount = 3500, BudgetAmount = 5000, EstimateToComplete = 5500, EstimatedFinalCost = 4000, OverUnder = 100 }; List <BudgetbyCategoryRollup> rollups = new List <BudgetbyCategoryRollup>(); rollups.Add(new BudgetbyCategoryRollup { ActualAmount = 5254, CategoryName = "ABC", CategoryId = 1, BudgetTypeName = "On Air" }); rollups.Add(new BudgetbyCategoryRollup { ActualAmount = 4250, CategoryName = "Aquired Movies", CategoryId = 2, BudgetTypeName = "Off Air" }); rollups.Add(new BudgetbyCategoryRollup { ActualAmount = 6250, CategoryName = "Aquired Series", CategoryId = 3, BudgetTypeName = "On Air" }); rollups.Add(new BudgetbyCategoryRollup { ActualAmount = 7285, CategoryName = "Ad Sales", CategoryId = 4, BudgetTypeName = "Paid Media" }); List <TypeOfWorkBudgetModel> BudgetTypes = new List <TypeOfWorkBudgetModel>(); BudgetTypes.Add(new TypeOfWorkBudgetModel { BudgetTypeId = 1, BudgetTypeName = "On Air" }); BudgetTypes.Add(new TypeOfWorkBudgetModel { BudgetTypeId = 2, BudgetTypeName = "Off Air" }); BudgetTypes.Add(new TypeOfWorkBudgetModel { BudgetTypeId = 3, BudgetTypeName = "Paid Media" }); BudgetTypes.Add(new TypeOfWorkBudgetModel { BudgetTypeId = 4, BudgetTypeName = "Brain Design" }); List <BudgetByCategorySumViewModel> categorysummary = new List <BudgetByCategorySumViewModel>(); categorysummary.Add(summarylist1); categorysummary.Add(summarylist2); List <BudgetbyCategoryRollup> Categoryrollup = new List <BudgetbyCategoryRollup>(); Categoryrollup.Add(new BudgetbyCategoryRollup { ActualAmount = 5241, BudgetAmount = 450, BudgetTypeId = 1, BudgetTypeName = "On Air", CategoryId = 1, CategoryName = "ABC" }); Categoryrollup.Add(new BudgetbyCategoryRollup { ActualAmount = 3250, BudgetAmount = 350, BudgetTypeId = 1, BudgetTypeName = "On Air", CategoryId = 2, CategoryName = "XYZ" }); Categoryrollup.Add(new BudgetbyCategoryRollup { ActualAmount = 4250, BudgetAmount = 300, BudgetTypeId = 2, BudgetTypeName = "Off Air", CategoryId = 3, CategoryName = "PQR" }); Categoryrollup.Add(new BudgetbyCategoryRollup { ActualAmount = 3525, BudgetAmount = 200, BudgetTypeId = 3, BudgetTypeName = "Paid Media", CategoryId = 4, CategoryName = "MNO" }); IQueryable <BudgetbyCategoryRollup> rollupslist = Categoryrollup.AsQueryable(); #endregion #region Mock mockbudgetService.Setup(x => x.GetBudgetsByCategory(It.IsAny <int>(), It.IsAny <string>())).Returns(rollups); mockbudgetService.Setup(x => x.GetTypeOfWorkBudgets()).Returns(BudgetTypes); mockBudgetByCategoryRepository.Setup(x => x.GetMany(It.IsAny <Expression <Func <BudgetbyCategoryRollup, bool> > >())).Returns(rollupslist); mocktypeOfWorkRepository.Setup(x => x.GetTypeOfWorkBudgets()).Returns(BudgetTypes); //Budget Service Mock var budgetService = new BudgetServiceMock(iTypeOfWork: mocktypeOfWorkRepository.Object, budgetByCategory: mockBudgetByCategoryRepository.Object); var BudgetController = new BudgetControllerMock(budgetservice: budgetService); #endregion //Assertions #region Assertions Assert.IsNotNull(BudgetTypes); Assert.IsTrue(BudgetTypes.Count == 4); Assert.IsTrue(BudgetTypes.ElementAt(0).BudgetTypeId == 1); Assert.IsTrue(BudgetTypes.ElementAt(1).BudgetTypeName == "Off Air"); Assert.IsTrue(BudgetTypes.ElementAt(2).BudgetTypeId == 3); Assert.IsNotNull(categorysummary); var rollupsresult = budgetService.GetBudgetsByCategory(channelid, fy); Assert.IsNotNull(rollupsresult); mockbudgetService.Verify(); mockBudgetByCategoryRepository.Verify(); rollupsresult = rollupsresult.Where(p => total.Contains(p.BudgetTypeName)).ToList(); Assert.IsNotNull(rollupsresult); categorysummary = BudgetController.GetBudgetsByCategorySummary(1, budgettype, fy, mrmUserId, networkLogin); Assert.IsNotNull(categorysummary); categorysummary = BudgetController.GetBudgetsByCategorySummary(1, budgettype, fy, mrmUserId, networkLogin); Assert.IsNotNull(categorysummary); #endregion }