Пример #1
0
        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
        }
Пример #2
0
        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
        }
Пример #3
0
        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
        }
Пример #4
0
        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
        }