public void ReconciliationMethodOfProductionTest() { #region Data WBS_Deliverables wbs_deliverable = new WBS_Deliverables() { DeliverableId = 14000023, FullWBSNumber = "1147614.001.001", MasterVendorId = 1 }; List <WBS_Deliverables> wbs_deliverables = new List <WBS_Deliverables>(); wbs_deliverables.Add(wbs_deliverable); wbs_deliverables.Add(new WBS_Deliverables { FullWBSNumber = "1147614.003.001", DeliverableId = 14000000, MasterVendorId = 2, ProductionMethodTypeId = 5 }); wbs_deliverables.Add(new WBS_Deliverables { FullWBSNumber = "1147614.022.001", DeliverableId = 14000012, MasterVendorId = 2, ProductionMethodTypeId = 6 }); wbs_deliverables.Add(new WBS_Deliverables { FullWBSNumber = "1147614.022.001", DeliverableId = 14000032, MasterVendorId = 2, ProductionMethodTypeId = 4 }); #endregion #region Mock mockfinanceservice.Setup(x => x.ReconciliationMethodOfProduction(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(wbs_deliverables); mockWBS_DeliverablesRepository.Setup(x => x.ReconciliationMethodOfProduction(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())).Returns(wbs_deliverables); //Finance Service Mock var financeservicemock = new FinanceServiceMock(_iWBS_DeliverablesRepository: mockWBS_DeliverablesRepository.Object); //Finance Controller Mock var FinanceController = new FinanceControllerMock(financeServicee: mockFinanceService.Object); #endregion #region service List <WBS_Deliverables> result = financeservicemock.ReconciliationMethodOfProduction(wbs_deliverable.DeliverableId, wbs_deliverable.MasterVendorId ?? default(int), wbs_deliverable.FullWBSNumber); #endregion #region Assertions mockWBS_DeliverablesRepository.Verify(); Assert.IsFalse(result == null); Assert.IsTrue(result.Count > 0); Assert.IsTrue(result.ElementAt(1).MasterVendorId == 2); Assert.IsTrue(result.ElementAt(2).ProductionMethodTypeId == 6); #endregion }
public void GetBudgetActualDetailss_Test() { #region Data TypeOfWork typeOfWork1 = new TypeOfWork() { Id = 88, FiscalYear = 2016 }; WBSElement wBSElement1 = new WBSElement() { Id = 4569, TypeOfWork = typeOfWork1 }; SAPActualsFileRow sAPActualsFileRow1 = new SAPActualsFileRow() { DocumentNumber = "55", OffsettingAccountNo = "778899", NameOfOffsettingAccountGKONT_LTXT = "OffSet 1", CostElement = "CE1", CostElementDescription = "CE1 + Desc", }; TypeOfWork typeOfWork2 = new TypeOfWork() { Id = 99, FiscalYear = 2017 }; WBSElement wBSElement2 = new WBSElement() { Id = 9657, TypeOfWork = typeOfWork2 }; SAPActualsFileRow sAPActualsFileRow2 = new SAPActualsFileRow() { DocumentNumber = "63", OffsettingAccountNo = "112233", NameOfOffsettingAccountGKONT_LTXT = "OffSet 2", CostElement = "CE2", CostElementDescription = "CE2 + Desc", }; ActualsReconciliation actualsReconciliation1 = new ActualsReconciliation() { Id = 1, Name = "Recon 1", PostingDate = DateTime.Now, ActualAmount = 1001, SAPActualsFileRow = sAPActualsFileRow1, WBSElement = wBSElement1 }; ActualsReconciliation actualsReconciliation2 = new ActualsReconciliation() { Id = 2, Name = "Recon 2", PostingDate = DateTime.Now, ActualAmount = 9009, SAPActualsFileRow = sAPActualsFileRow2, WBSElement = wBSElement2 }; List <ActualsReconciliation> actualsReconciliationList = new List <ActualsReconciliation>(); actualsReconciliationList.Add(actualsReconciliation1); actualsReconciliationList.Add(actualsReconciliation2); #endregion #region Mock mockfinanceservice.Setup(x => x.GetActualsByWBS(It.IsAny <int>())) .Returns(actualsReconciliationList); mockfinanceservice.Setup(x => x.GetActualsByDeliverableandWBS(It.IsAny <int>(), It.IsAny <int>())) .Returns(actualsReconciliationList); //Finance Controller Mock var FinanceController = new FinanceControllerMock(financeServicee: mockfinanceservice.Object); #endregion #region Service List <BudgetActualsAmountDetailsViewModel> result = FinanceController.GetBudgetActualDetailss(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()); #endregion #region Assertions Assert.IsFalse(result == null); Assert.IsTrue(result.ElementAt(0).CostElementGLAccount == "CE1"); Assert.IsTrue(result.ElementAt(1).CostElementGLAccount == "CE2"); Assert.IsTrue(result.ElementAt(0).FiscalYear == "2016"); Assert.IsTrue(result.ElementAt(1).FiscalYear == "2017"); Assert.IsTrue(result.ElementAt(0).OffsettingAccountName == "OffSet 1"); Assert.IsTrue(result.ElementAt(1).OffsettingAccountName == "OffSet 2"); Assert.IsTrue(result.ElementAt(0).SAPDocumentNumber == "55"); Assert.IsTrue(result.ElementAt(1).SAPDocumentNumber == "63"); Assert.IsTrue(result.ElementAt(0).OffsettingAccountNumber == "778899"); Assert.IsTrue(result.ElementAt(1).OffsettingAccountNumber == "112233"); #endregion }
public void GetBudgetCommitedDetailsWithInvoiceDates_Test() { #region Data Vendor vendor1 = new Vendor() { Id = 66, Name = "KMP" }; Vendor vendor2 = new Vendor() { Id = 99, Name = "SS" }; InvoiceStatus invoiceStatus = new InvoiceStatus() { Id = 1, Name = "In Process", Code = "INPCC" }; InvoiceHeader invoiceHeader1 = new InvoiceHeader() { Id = 200, InvoiceNumber = "111", InvoiceDate = new DateTime(2016, 9, 1), InvoiceStatus = invoiceStatus, Comments = "UTC Test", Vendor = vendor1 }; InvoiceHeader invoiceHeader2 = new InvoiceHeader() { Id = 100, InvoiceNumber = "222", InvoiceDate = new DateTime(2016, 9, 2), InvoiceStatus = invoiceStatus, Comments = "UTC Test 2", Vendor = vendor2 }; InvoiceLine invoiceLine1 = new InvoiceLine() { Id = 1, InvoiceHeaderId = 100, Amount = 99, LineDescription = "Invoice Line 1", GLAccountId = 22 }; InvoiceLine invoiceLine2 = new InvoiceLine() { Id = 2, InvoiceHeaderId = 200, Amount = 635, LineDescription = "Invoice Line 2", GLAccountId = 78 }; List <InvoiceLine> invoiceLineList = new List <InvoiceLine>(); invoiceLineList.Add(invoiceLine1); invoiceLineList.Add(invoiceLine2); #endregion #region Mock mockfinanceservice.Setup(x => x.GetInvoiceLinesByWBSId(It.IsAny <int>())) .Returns(invoiceLineList); mockfinanceservice.Setup(x => x.GetInvoiceLinesByDeliverableandWBS(It.IsAny <int>(), It.IsAny <int>())) .Returns(invoiceLineList); mockfinanceservice.SetupSequence(x => x.GetInvoiceById(It.IsAny <int>())) .Returns(invoiceHeader1) .Returns(invoiceHeader2); //Finance Controller Mock var FinanceController = new FinanceControllerMock(financeServicee: mockfinanceservice.Object); #endregion #region Service List <BudgetCommittedAmountDetailsViewModel> result = FinanceController.GetBudgetCommitedDetails(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>()); #endregion #region Assertions Assert.IsFalse(result == null); Assert.IsTrue(result.ElementAt(0).Description == "Invoice Line 2"); Assert.IsTrue(result.ElementAt(1).Description == "Invoice Line 1"); Assert.IsTrue(result.ElementAt(0).HeaderComments == "UTC Test 2"); Assert.IsTrue(result.ElementAt(1).HeaderComments == "UTC Test"); Assert.IsTrue(result.ElementAt(0).Vendor == "SS"); Assert.IsTrue(result.ElementAt(1).Vendor == "KMP"); Assert.IsTrue(result.ElementAt(0).InlineAmount == 635); Assert.IsTrue(result.ElementAt(1).InlineAmount == 99); Assert.IsFalse(result.ElementAt(1).Status == "Approved"); #endregion }
public void AddUpdateInvoice_Test() { #region Data int mrmUserId = 1; string networkLogin = "******"; InvoiceViewModel viewModel = new InvoiceViewModel() { Id = 0, Vendor = 142, PaymentTerm = 9, Status = 2, InvoiceNumber = "123", InvoiceDate = DateTime.Now, PostingDate = DateTime.Now, Comments = "Invoice Creation Comments", WebUser = 123,//mrmuserId, timestamp = null }; List <InvoiceLineViewModel> lstInvoiceLines = new List <InvoiceLineViewModel>(); InvoiceLineViewModel invoiceLine1 = new InvoiceLineViewModel() { ContractNumber = "1234", PurchaseOrderNumber = "Abcd1234", Description = "Test InvoiceLine1 to insert", Comment = "Test Comment to insert", Amount = 250, DeliverableBudgetId = 129289, GLAccountId = 50, Id = 1, ProductionMethodType = 2, WBSElementId = 3250, WBSNumber = "1146", Coding = "", ChannelCostCenterId = 21, ChannelProfitCenterId = null, }; InvoiceLineViewModel invoiceLine2 = new InvoiceLineViewModel() { ContractNumber = "2345", PurchaseOrderNumber = "Abcd2345", Description = "Test InvoiceLine2 to insert", Comment = "Test Comment to insert", Amount = 124, DeliverableBudgetId = 13458, GLAccountId = 50, Id = 1, ProductionMethodType = 1, WBSElementId = 3250, WBSNumber = "1146", Coding = "", ChannelCostCenterId = null, ChannelProfitCenterId = 21 }; Vendor vendor = new Vendor() { Name = "TestVendor1", Id = 1, }; InvoiceStatus status = new InvoiceStatus() { Id = 1, Name = "In Progress" }; lstInvoiceLines.Add(invoiceLine1); lstInvoiceLines.Add(invoiceLine2); viewModel.InvoiceLines = lstInvoiceLines; InvoiceHeader theInvoice = FinanceMapper.ToInvoice(viewModel); theInvoice.Vendor = vendor; theInvoice.InvoiceStatus = status; InvoiceHeader theInvoice1 = FinanceMapper.ToInvoice(viewModel); theInvoice1.Id = 999; #endregion #region Mock //invoiceHeaderRepository Mock mockInvoiceHeaderRepository.Setup(x => x.Add(It.IsAny <InvoiceHeader>())).Returns(theInvoice); //iunit Mock mockIUnitOfWork.Setup(x => x.Commit()); //IInvoiceLine Repository Mock mockIInvoiceLineRepository.Setup(x => x.Add(It.IsAny <InvoiceLine>())).Returns(() => null); //FinanceService Service Mock mockFinanceService.Setup(x => x.AddInvoice(It.IsAny <InvoiceHeader>())).Returns(theInvoice); mockFinanceService.Setup(x => x.GetInvoiceById(It.IsAny <int>())).Returns(theInvoice); this.mockInvoiceHeaderRepository.Setup(x => x.GetById(It.IsAny <long>())).Returns(theInvoice); this.mockInvoiceHeaderRepository.Setup(x => x.GetById(It.IsAny <long>())).Returns(theInvoice1); mockInvoiceHeaderRepository.Setup(x => x.GetInvoiceById(It.IsAny <int>())).Returns(theInvoice); mockIInvoiceLineRepository.Setup(x => x.GetMany(It.IsAny <Expression <Func <InvoiceLine, bool> > >())) .Returns(new List <InvoiceLine>()); mockIInvoiceLineRepository.Setup(x => x.GetById(It.IsAny <long>())) .Returns(new InvoiceLine()); mockInvoiceHeaderRepository.Setup(x => x.Update(It.IsAny <InvoiceHeader>())); mockIInvoiceLineRepository.Setup(x => x.Update(It.IsAny <InvoiceLine>())); //mock to finance Service FinanceServiceMock financeService = new FinanceServiceMock( invoiceHeaderRepository: mockInvoiceHeaderRepository.Object, unitOfWork: mockIUnitOfWork.Object, invoiceLineRepository: mockIInvoiceLineRepository.Object); //Finance Controller Mock var FinanceController = new FinanceControllerMock(financeServicee: financeService); #endregion #region Assertions mockInvoiceHeaderRepository.Verify(); mockIUnitOfWork.Verify(); mockIInvoiceLineRepository.Verify(); mockFinanceService.Verify(); //Mapping the viewmodel to actual Table var serviceResult = financeService.AddInvoice(theInvoice); Assert.IsNotNull(serviceResult); Assert.IsNotNull(serviceResult.InvoiceLine); Assert.AreEqual(serviceResult.Id, 0);//The actual Id is auto generated after insertion done in DB. //As we are passing 0 as invoice headerId for the purpose of insertion here we recieve the same. var controllerResult = FinanceController.AddUpdateInvoice(viewModel, mrmUserId, networkLogin); Assert.IsNotNull(controllerResult); Assert.AreEqual(controllerResult.Success, true); Assert.IsNotNull(controllerResult.Data); //Service N Controller Assertions for Updating Invoice viewModel.Id = 999; //Mapping the viewmodel to actual Table var serviceResultForUpdate = financeService.UpdateInvoice(theInvoice1); Assert.IsNotNull(serviceResultForUpdate); Assert.IsNotNull(serviceResultForUpdate.InvoiceLine); Assert.AreEqual(serviceResultForUpdate.Id, 999);//Here we will recieve the same invoice header id we passed for update var controllerUpdateResult = FinanceController.AddUpdateInvoice(viewModel, mrmUserId, networkLogin); Assert.IsNotNull(controllerUpdateResult); Assert.AreEqual(controllerUpdateResult.Success, true); Assert.IsNotNull(controllerUpdateResult.Data); #endregion }