コード例 #1
0
        private void Setup_Service_FakeUnitOfWork_AssetType_CreditCard(string assetName, string assetSettingValue)
        {
            // setup fake model
            _dbAssetType.Id = AssetType.IdForCreditCard;

            _dbAsset.AssetTypeId = _dbAssetType.Id;
            _dbAsset.AssetType   = _dbAssetType;
            _dbAsset.Name        = assetName;

            _dbSettingType.Id = SettingType.IdForAccountNumber;

            _dbAssetSetting.SettingTypeId = _dbSettingType.Id;
            _dbAssetSetting.SettingType   = _dbSettingType;
            _dbAssetSetting.Asset         = _dbAsset;
            _dbAssetSetting.Value         = assetSettingValue;

            _dbAssetTransaction.AssetId = _dbAsset.Id;
            _dbAssetTransaction.Asset   = _dbAsset;

            // setup DbContext
            Setup_FakeDbContext();

            // set up uow
            _fakeUnitOfWork = new UnitOfWork(_fakeDbContext);

            // set up repository
            _service = new AccountTransactionService(_fakeUnitOfWork);
        }
コード例 #2
0
        public async void Transfer_Balance_To_Other_User_And_Check_both_balances()
        {
            //arrange
            var sourceUserId    = 1;
            var targetUserId    = 2;
            var UserName        = "******";
            var accountId       = 1;
            var targetAccountId = 2;
            //act
            var userService = new UserService(_fixture.GetDbContext(), null);
            var accountTransactionService = new AccountTransactionService(_fixture.GetDbContext(), userService);

            await accountTransactionService.ModifyBalanceAsync(new ModifyBalanceDto
                                                               { AccountId = accountId, Amount = 100, Description = "Movimiento 1", UserId = sourceUserId });

            await accountTransactionService.BalanceTransferToUserAsync(new BalanceTransferDto
                                                                       { AccountId = targetAccountId, Amount = 10, AccountIdTarget = targetAccountId, UserTarget = UserName });

            var sourceUser = await userService.GetByIdAsync(sourceUserId);

            var targetUsert = await userService.GetByIdAsync(targetUserId);

            var sourceTotalBalance = AccountServiceMock.Instance().GetTotalBalanceByAccountId(_fixture, accountId);
            var targetTotalBalance = AccountServiceMock.Instance().GetTotalBalanceByAccountId(_fixture, targetAccountId);

            //Assert
            Assert.True(sourceUser.TotalBalance.Equals(sourceTotalBalance));
            Assert.True(targetUsert.TotalBalance.Equals(targetTotalBalance));
        }
コード例 #3
0
        public void GetTransactionCategorySelectList_WhenSuccess_ReturnOrderedByTransactionTypeName_Test()
        {
            // Arrange
            var _dataTransactionCategories = new List <Core.Models.TransactionCategory>()
            {
                new Core.Models.TransactionCategory()
                {
                    Id = 10, Name = "Z", IsActive = true
                },
                new Core.Models.TransactionCategory()
                {
                    Id = 11, Name = "A", IsActive = true
                },
                new Core.Models.TransactionCategory()
                {
                    Id = 12, Name = "B", IsActive = true
                },
            };

            _unitOfWork.TransactionCategories = new InMemoryTransactionCategoryRepository(_dataTransactionCategories);
            _service = new AccountTransactionService(_unitOfWork);
            string expSelectedId = "99";

            // Act
            var result = _service.GetTransactionCategorySelectList(expSelectedId);

            // Assert
            Assert.IsInstanceOf(typeof(List <SelectListItem>), result, "Result Type");
            Assert.AreEqual("A", result[0].Text, "Result Name A");
            Assert.AreEqual("B", result[1].Text, "Result Name B");
            Assert.AreEqual("Z", result[2].Text, "Result Name Z");
        }
コード例 #4
0
        public void GetTransactionCategorySelectList_WhenSuccess_ReturnActiveTransactionTypes_Test()
        {
            // Arrange
            var _dataTransactionCategories = new List <Core.Models.TransactionCategory>()
            {
                new Core.Models.TransactionCategory()
                {
                    Id = 10, Name = "Active", IsActive = true
                },
                new Core.Models.TransactionCategory()
                {
                    Id = 11, Name = "Not Active", IsActive = false
                },
            };

            _unitOfWork.TransactionCategories = new InMemoryTransactionCategoryRepository(_dataTransactionCategories);
            _service = new AccountTransactionService(_unitOfWork);
            string expSelectedId = null;

            // Act
            var result = _service.GetTransactionCategorySelectList(expSelectedId);

            // Assert
            Assert.IsInstanceOf(typeof(List <SelectListItem>), result, "Result Type");
            Assert.AreEqual(1, result.Count, "Result Count");
        }
コード例 #5
0
        private void btnATransactionSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (ValidateTransactionFields())
                {
                    accountTransactionService = new AccountTransactionService();
                    var    firId           = comboFirm.SelectedValue;
                    int    firmId          = Convert.ToInt32(firId);
                    var    accId           = comboAccount.SelectedValue;
                    int    accountId       = Convert.ToInt32(accId);
                    string paymetMode      = "";
                    string transactionType = "";
                    if (rbtnDebit.Checked)
                    {
                        transactionType = "Dr";
                    }
                    else
                    {
                        transactionType = "Cr";
                    }

                    if (rbtnCash.Checked)
                    {
                        paymetMode = rbtnCash.Text;
                    }
                    else
                    {
                        paymetMode = rbtnCheque.Text;
                        if (bankName == "" || chequeNo == "")
                        {
                            MessageBox.Show("Bank details is required", Comman.Product_Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                    Data.Models.AccountTransaction data = new Data.Models.AccountTransaction();
                    data.Id = transactionId;
                    data.TransactionDate  = dtTransactionDate.Value;
                    data.FirmId           = firmId;
                    data.AccountId        = accountId;
                    data.Amount           = Convert.ToDecimal(txtAmount.Text);
                    data.TransactionsType = transactionType;
                    data.PaymentType      = paymetMode;
                    data.Remarks          = txtTransactionRemarks.Text;

                    Data.Models.ChequeDetail chequeData = new Data.Models.ChequeDetail();
                    chequeData.BankName = bankName;
                    //chequeData.IFSCCode = ifscCode;
                    chequeData.ChequeNo   = chequeNo;
                    chequeData.ChequeDate = chequeDate;
                    accountTransactionService.SaveTransaction(data, chequeData);
                    ClearTransactionFieldsData();
                    GetGirdViewData();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Comman.Product_Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #6
0
        private void btnTUtilityDownload_Click(object sender, EventArgs e)
        {
            try
            {
                Warning[] warnings;
                string[]  streamids;
                string    mimeType;
                string    encoding;

                string   filenameExtension;
                int      FirmId    = Convert.ToInt32(comboUFirm.SelectedValue);
                int      AccountId = Convert.ToInt32(comboUAccount.SelectedValue);
                DateTime fromDate  = dtFromDate.Value;
                DateTime toDate    = dtToDate.Value;
                accountTransacionService = new AccountTransactionService();
                List <Service.Model.AccountTransactionReportModel> dataSource = accountTransacionService.GetTransactionReportData(FirmId, AccountId, toDate, fromDate);
                var accountData = accountTransacionService.GetOpeningBalance(FirmId, AccountId);
                if (dataSource.Count > 0)
                {
                    using (SaveFileDialog dlgSaveAs = new SaveFileDialog())
                    {
                        dlgSaveAs.InitialDirectory = @"C:\";
                        dlgSaveAs.Title            = "Save PDF Files";
                        dlgSaveAs.CheckFileExists  = false;
                        dlgSaveAs.CheckPathExists  = false;
                        dlgSaveAs.DefaultExt       = "pdf";
                        dlgSaveAs.Filter           = "Pdf files (*.pdf)|*.pdf";
                        dlgSaveAs.FilterIndex      = 2;
                        dlgSaveAs.RestoreDirectory = true;
                        if (dlgSaveAs.ShowDialog() == DialogResult.OK)
                        {
                            using (FileStream stream = new FileStream(dlgSaveAs.FileName, FileMode.OpenOrCreate))
                            {
                                using (ReportViewer ReportViewer1 = new ReportViewer())
                                {
                                    ReportViewer1.ProcessingMode = ProcessingMode.Local;
                                    ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("AccountTransactionDataSet", dataSource));
                                    ReportViewer1.LocalReport.ReportPath = Path.GetFullPath(Path.Combine(ConfigurationManager.AppSettings["BaseDirectoryPath"], "Reports\\AccountTransactions.rdlc"));
                                    ReportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("FromDate", fromDate.ToString()));
                                    ReportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("ToDate", toDate.ToString()));
                                    ReportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("OpeningDebit", accountData.OpeningDebit.ToString()));
                                    ReportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("OpeningCredit", accountData.OpeningCredit.ToString()));
                                    byte[] bytes = ReportViewer1.LocalReport.Render(
                                        "PDF", null, out mimeType, out encoding, out filenameExtension,
                                        out streamids, out warnings);

                                    stream.Write(bytes, 0, bytes.Length);
                                }
                            }

                            System.Diagnostics.Process.Start(dlgSaveAs.FileName);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Comman.Product_Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #7
0
 public NewPurchaseUnitController(CustomerAccountService accountService, ItemChargeService itemChargeService,
                                  CustomerService customerService, StockService stockService, ContractService contractService, AccountTransactionService accountTransactionService)
     : base(accountService, itemChargeService, customerService)
 {
     _stockService              = stockService;
     _contractService           = contractService;
     _accountTransactionService = accountTransactionService;
 }
コード例 #8
0
 public AccountTransactionsController(MiniBankingDbContext context, IHttpContextAccessor httpContextAccessor) : base(context, httpContextAccessor)
 {
     transactionService     = new AccountTransactionService(context, Constants.DefaultConnectionString);
     depositService         = new AccountDepositService(context);
     withdrawalService      = new AccountWithdrawalService(context);
     customerAccountService = new CustomerAccountService(context);
     transferService        = new AccountTransferService(context);
     _httpContextAccessor   = httpContextAccessor;
 }
コード例 #9
0
 public LoginController(MiniBankingDbContext context)
 {
     _context               = context;
     authService            = new AuthenticateService(_context);
     customerService        = new CustomerService(_context);
     customerAccountService = new CustomerAccountService(_context);
     depositService         = new AccountDepositService(_context);
     transactionService     = new AccountTransactionService(_context, Constants.DefaultConnectionString);
 }
コード例 #10
0
        public CollectionsController(AccountTransactionService accountTransactionService,
                                     CustomerService customerService, CustomerAccountService customerAccountService)
        {
            _accountTransactionService = accountTransactionService;
            _customerService           = customerService;
            _customerAccountService    = customerAccountService;

            InitialisePaymentSourcesViewBag(_accountTransactionService);
        }
コード例 #11
0
 public NewAccountController(CustomerService customerService, CustomerAccountService accountService, ItemChargeService itemChargeService, StockService stockService, ContractService contractService, MiscService miscService, AccountTransactionService accountTransactionService)
 {
     _customerService           = customerService;
     _accountService            = accountService;
     _itemChargeService         = itemChargeService;
     _stockService              = stockService;
     _contractService           = contractService;
     _miscService               = miscService;
     _accountTransactionService = accountTransactionService;
 }
コード例 #12
0
        private void SetServices(IUnitOfWork unitOfWork)
        {
            AccountSettingService = new AccountSettingService(unitOfWork);

            AccountService                = new AccountService(unitOfWork, AccountSettingService);
            AccountTransactionService     = new AccountTransactionService(unitOfWork);
            AccountTypeService            = new AccountTypeService(unitOfWork);
            AccountTypeSettingTypeService = new AccountTypeSettingTypeService(unitOfWork);
            SettingTypeService            = new SettingTypeService(unitOfWork);
        }
コード例 #13
0
        private void Setup_Service_FakeUnitOfWork(List <TransactionCategory> fakeTransactionCategories)
        {
            // setup DbContext
            _fakeDbContext = MockFinancialDbContext.Create(transactionCategories: fakeTransactionCategories);

            // set up uow
            _fakeUnitOfWork = new UnitOfWork(_fakeDbContext);

            // set up repository
            _service = new AccountTransactionService(_fakeUnitOfWork);
        }
コード例 #14
0
        public void GetAccountForTransaction_WhenUnitOfWorkReturnsAssetEqualsNull_ReturnNull_Test()
        {
            _mockUnitOfWork = new Mock <IUnitOfWork>();
            _mockUnitOfWork.Setup(uow => uow.Assets.Get(It.IsAny <int>()));

            _service = new AccountTransactionService(_mockUnitOfWork.Object);

            var result = _service.GetAccountForTransaction(assetId: 1);

            Assert.That(result, Is.EqualTo(null));
        }
コード例 #15
0
 public void GetUtiltyTransactionById(int Id)
 {
     try
     {
         accountTransactionService = new AccountTransactionService();
         var transactionData = accountTransactionService.GetTransactionById(Id);
         AssignFormFieldsValues(transactionData);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, Comman.Product_Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #16
0
        public void GetListOfActiveTransactions_WhenCalled_ShouldCallOneTimeUnitOfWorkRepositoryAssetTransactionsMethodGetAllActiveByDueDate_Test()
        {
            _mockUnitOfWork = new Mock <IUnitOfWork>();
            Setup_MockUnitOfWork_AssetTransaction_GetAllActiveByDueDate();
            Setup_MockUnitOfWork_Assets_Get();
            Setup_MockUnitOfWork_AssetTypes_Get();
            Setup_MockUnitOfWork_AssetSettings_GetActive();

            _service = new AccountTransactionService(_mockUnitOfWork.Object);

            _service.GetListOfActiveTransactions();

            _mockUnitOfWork.Verify(uow => uow.AssetTransactions.GetAllActiveByDueDate(),
                                   Times.Once);
        }
コード例 #17
0
        public void GetListOfActiveTransactions_WhenAccountTransactionListHasAccountTransactions_ShouldCallUnitOfWorkRepositoryAssetSettingsMethodGetActive_Test()
        {
            _mockUnitOfWork = new Mock <IUnitOfWork>();
            Setup_MockUnitOfWork_AssetTransaction_GetAllActiveByDueDate();
            Setup_MockUnitOfWork_Assets_Get();
            Setup_MockUnitOfWork_AssetTypes_Get();
            Setup_MockUnitOfWork_AssetSettings_GetActive();

            _service = new AccountTransactionService(_mockUnitOfWork.Object);

            _service.GetListOfActiveTransactions();

            _mockUnitOfWork.Verify(uow => uow.AssetSettings.GetActive(It.IsAny <int>(), It.IsAny <int>()),
                                   Times.AtLeastOnce);
        }
コード例 #18
0
        private void GetAllTransactions()
        {
            int      FirmId    = Convert.ToInt32(comboUFirm.SelectedValue);
            int      AccountId = Convert.ToInt32(comboUAccount.SelectedValue);
            DateTime fromDate  = dtFromDate.Value;
            DateTime toDate    = dtToDate.Value;

            accountTransacionService = new AccountTransactionService();
            var utilityData = accountTransacionService.GetAllTransactionData(FirmId, AccountId, toDate, fromDate);

            gridTransactionUtilty.DataSource = utilityData;
            gridTransactionUtilty.ReadOnly   = true;
            gridTransactionUtilty.Columns["TransactionDate"].DefaultCellStyle.Format = "dd-MM-yyyy";
            gridTransactionUtilty.Columns["Id"].Visible = false;
        }
コード例 #19
0
        private void Setup_Service_FakeUnitOfWork_TransactionType_Expense(decimal transactionAmount)
        {
            // setup fake model
            _dbTransactionType.Id = TransactionType.IdForExpense;

            _dbAssetTransaction.TransactionTypeId = _dbTransactionType.Id;
            _dbAssetTransaction.TransactionType   = _dbTransactionType;
            _dbAssetTransaction.Amount            = transactionAmount;

            // setup DbContext
            Setup_FakeDbContext();

            // set up uow
            _fakeUnitOfWork = new UnitOfWork(_fakeDbContext);

            // set up repository
            _service = new AccountTransactionService(_fakeUnitOfWork);
        }
コード例 #20
0
 private void GetBankDetailsByTransactionById(int TransactionId)
 {
     try
     {
         accountTransactionService = new AccountTransactionService();
         var chequeData = accountTransactionService.GetChequeDetailsById(TransactionId);
         if (chequeData != null)
         {
             chequeNo   = chequeData.ChequeNo;
             chequeDate = chequeData.ChequeDate;
             bankName   = chequeData.BankName;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, Comman.Product_Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #21
0
 private void GetGirdViewData()
 {
     try
     {
         accountTransactionService = new AccountTransactionService();
         int      firmId          = Convert.ToInt32(comboFirm.SelectedValue);
         int      accountId       = Convert.ToInt32(comboAccount.SelectedValue);
         DateTime transactionDate = dtTransactionDate.Value;
         var      data            = accountTransactionService.GetTodayTransactionData(firmId, accountId, transactionDate);
         gridAccountTransactions.DataSource = data;
         gridAccountTransactions.Columns["TransactionDate"].DefaultCellStyle.Format = "dd-MM-yyyy";
         gridAccountTransactions.Columns["Id"].Visible      = false;
         gridAccountTransactions.Columns["Remarks"].Visible = false;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, Comman.Product_Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #22
0
        public void GetAssetIdentificationInformation_WhenAssetTypeIsCreditCard_ReturnUpdatedAssetName_Test()
        {
            // Arrange
            var expAsset = new Core.Models.Asset()
            {
                Id          = 1,
                AssetTypeId = AssetTransactionServiceObjectMother.AssetTypeIdForCreditCard,
                Name        = "Asset Name",
                IsActive    = true,
            };
            var expSettingTypeId  = AssetTransactionServiceObjectMother.SettingTypeIdForAccountNumber;
            var _dataSettingTypes = new List <Core.Models.SettingType>()
            {
                new Core.Models.SettingType()
                {
                    Id       = expSettingTypeId,
                    IsActive = true,
                }
            };
            var _dataAssetSettings = new List <Core.Models.AssetSetting>()
            {
                new Core.Models.AssetSetting()
                {
                    Id            = 10,
                    AssetId       = expAsset.Id,
                    SettingTypeId = expSettingTypeId,
                    Value         = "1234",
                    IsActive      = true,
                }
            };

            _unitOfWork.AssetSettings = new InMemoryAssetSettingRepository(_dataAssetSettings);
            var expAssetName = expAsset.Name + " (1234)";

            _service = new AccountTransactionService(_unitOfWork);

            // Act
            var result = _service.GetAssetIdentificationInformation(expAsset);

            // Assert
            Assert.IsInstanceOf(typeof(string), result, "Result Type");
            Assert.AreEqual(expAssetName, result, "Asset Name");
        }
コード例 #23
0
        private void Setup_Service_FakeUnitOfWork(
            List <Asset> fakeAssets,
            List <AssetSetting> fakeAssetSettings,
            List <AssetType> fakeAssetTypes,
            List <SettingType> fakeSettingTypes)
        {
            // setup DbContext
            _fakeDbContext = MockFinancialDbContext.Create(
                assets: fakeAssets,
                assetSettings: fakeAssetSettings,
                assetTypes: fakeAssetTypes,
                settingTypes: fakeSettingTypes);

            // set up uow
            _fakeUnitOfWork = new UnitOfWork(_fakeDbContext);

            // set up repository
            _service = new AccountTransactionService(_fakeUnitOfWork);
        }
コード例 #24
0
        public async void Add_Balance_And_Check_balance()
        {
            //arrange
            var userId      = 3;
            var userService = new UserService(_fixture.GetDbContext(), null);
            var accountTransactionService = new AccountTransactionService(_fixture.GetDbContext(), userService);
            //act
            await accountTransactionService.ModifyBalanceAsync(new ModifyBalanceDto
                                                               { AccountId = 3, Amount = 100, Description = "Movimiento 1", UserId = userId });

            await accountTransactionService.ModifyBalanceAsync(new ModifyBalanceDto
                                                               { AccountId = 3, Amount = -5, Description = "Movimiento 2", UserId = userId });

            var user = await userService.GetByIdAsync(userId);

            var targetTotalBalance = AccountServiceMock.Instance().GetTotalBalanceByAccountId(_fixture, 3);

            //Assert
            Assert.True(user.TotalBalance.Equals(targetTotalBalance));
        }
コード例 #25
0
 private void btnATransactionDelete_Click(object sender, EventArgs e)
 {
     try
     {
         accountTransactionService = new AccountTransactionService();
         if (transactionId > 0)
         {
             DialogResult result = MessageBox.Show("Are you sure Delete ??", "Ok", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
             if (result.Equals(DialogResult.OK))
             {
                 accountTransactionService.DeleteTransactionById(transactionId);
                 GetGirdViewData();
                 ClearTransactionFieldsData();
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, Comman.Product_Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #26
0
 //
 // GET: /IBMSAccounts/
 public TransactionsController(AccountTransactionService accountsService)
 {
     _accountsService = accountsService;
     InitialisePaymentSourcesViewBag(accountsService);
 }
コード例 #27
0
 public NewRentalUnitController(CustomerService customerService, CustomerAccountService accountService, StockService stockService, MiscService miscService, ItemChargeService itemChargeService, AccountTransactionService accountTransactionService) : base(accountService, itemChargeService, customerService)
 {
     _stockService = stockService;
     _miscService  = miscService;
     _accountTransactionService = accountTransactionService;
 }
コード例 #28
0
 protected void InitialisePaymentSourcesViewBag(AccountTransactionService svc)
 {
     ViewBag.PaymentSources = svc.GetPaymentSources().ToList();
 }
コード例 #29
0
 public AccountTransactionsApiController(AccountTransactionService service)
 {
     _service = service;
 }
コード例 #30
0
        public void SetUp()
        {
            // setup db models
            _dbAssetType = new AssetType {
                Id = 1, Name = "a", IsActive = true
            };
            _dbAsset = new Asset
            {
                Id          = 2,
                AssetTypeId = _dbAssetType.Id,
                AssetType   = _dbAssetType, // setup include
                Name        = "b",
                IsActive    = true
            };
            _dbSettingType = new SettingType {
                Id = 3, Name = "c", IsActive = true
            };
            _dbAssetSetting = new AssetSetting
            {
                Id            = 4,
                AssetId       = _dbAsset.Id,
                Asset         = _dbAsset,       // setup include
                SettingTypeId = _dbSettingType.Id,
                SettingType   = _dbSettingType, // setup include
                Value         = "d",
                IsActive      = true
            };
            _dbTransactionType = new TransactionType {
                Id = 5, Name = "e", IsActive = true
            };
            _dbTransactionCategory = new TransactionCategory {
                Id = 6, Name = "f", IsActive = true
            };
            _dbTransactionDescription = new TransactionDescription {
                Id = 7, Name = "g", IsActive = true
            };
            _dbAssetTransaction = new AssetTransaction
            {
                Id                       = 8,
                AssetId                  = _dbAsset.Id,
                Asset                    = _dbAsset,                  // setup include
                TransactionTypeId        = _dbTransactionType.Id,
                TransactionType          = _dbTransactionType,        // setup include
                TransactionCategoryId    = _dbTransactionCategory.Id,
                TransactionCategory      = _dbTransactionCategory,    // setup include
                TransactionDescriptionId = _dbTransactionDescription.Id,
                TransactionDescription   = _dbTransactionDescription, // setup include
                DueDate                  = new DateTime(1234, 5, 6),
                ClearDate                = new DateTime(1234, 7, 8),
                Amount                   = 1.23M,
                Note                     = "abc",
                IsActive                 = true
            };

            // setup DbContext
            Setup_FakeDbContext();

            // setup uow
            _fakeUnitOfWork = new UnitOfWork(_fakeDbContext);

            // setup service
            _service = new AccountTransactionService(_fakeUnitOfWork);
        }