public void GetBalance_ShouldGiveTheTotalAmountPaidAndPendingEmisAtAGivenEmiNumberWithExtraPaymentsDone()
        {
            loanService.Add(new Loan
            {
                BankName     = "IDIDI",
                BorrowerName = "Dale",
                Principal    = 5000,
                NoOfYears    = 1,
                InterestRate = 6
            });

            paymentService.Add(new Payment
            {
                BankName     = "IDIDI",
                BorrowerName = "Dale",
                Amount       = 1000,
                Emi          = 5
            });

            var balanceService = new BalanceService(loanService, paymentService);

            var balance = balanceService.GetBalance("IDIDI", "Dale", 6);

            Assert.Equal(3652, balance.AmountPaid);
            Assert.Equal(4, balance.PendingEmis);
        }
Example #2
0
        protected WalletDetails GetWalletDetailsCore()
        {
            var  defaultCsAddress = this.GetAllColdStakingAddressesCore(0, 1).FirstOrDefault()?.Address;
            long csTotal          = 0;
            long csSpendable      = 0;
            long csStakable       = 0;

            if (defaultCsAddress != null)
            {
                var balance = BalanceService.GetBalance(this.metadata.Blocks, this.metadata.SyncedHeight,
                                                        this.metadata.MemoryPool.Entries, GetOwnAddress, defaultCsAddress);

                csTotal     = balance.Total;
                csSpendable = balance.Spendable;
                csStakable  = balance.Stakable;
            }

            var  defaultMsAddress = this.GetAllMultiSigAddressesCore(0, 1).FirstOrDefault()?.Address;
            long msTotal          = 0;
            long msSpendable      = 0;
            long msStakable       = 0;

            if (defaultMsAddress != null)
            {
                var balance = BalanceService.GetBalance(this.metadata.Blocks, this.metadata.SyncedHeight,
                                                        this.metadata.MemoryPool.Entries, GetOwnAddress, defaultMsAddress);

                msTotal     = balance.Total;
                msSpendable = balance.Spendable;
                msStakable  = balance.Stakable;
            }

            var info = new WalletDetails
            {
                WalletName            = this.WalletName,
                WalletFilePath        = this.WalletPath,
                SyncedHeight          = this.metadata.SyncedHeight,
                SyncedHash            = this.metadata.SyncedHash,
                Adresses              = this.x1WalletFile.PubKeyHashAddresses.Count,
                MultiSigAddresses     = this.x1WalletFile.MultiSigAddresses.Count,
                ColdStakingAddresses  = this.x1WalletFile.ColdStakingAddresses.Count,
                MemoryPool            = this.metadata.MemoryPool,
                PassphraseChallenge   = this.x1WalletFile.PassphraseChallenge.ToHexString(),
                DefaultReceiveAddress = this.GetAllPubKeyHashReceiveAddressesCore(0, 1).FirstOrDefault()?.Address,

                DefaultCSAddress = defaultCsAddress,
                CSTotal          = csTotal,
                CSSpendable      = csSpendable,
                CSStakable       = csStakable,

                DefaultMSAddress = defaultMsAddress,
                MSTotal          = msTotal,
                MSSpendable      = msSpendable,
                MSStakable       = msStakable
            };

            info.Balance = GetBalanceCore();

            return(info);
        }
Example #3
0
        public async Task TestGetBalance()
        {
            var service = new BalanceService(MockTokenClaimsAccessor(cjdlqTokenClaims), db);

            var resp = await service.GetBalance(new AcademyCloud.Expenses.Protos.Balance.GetBalanceRequest {
            }, TestContext);

            Assert.Equal(10, resp.Balance);
        }
Example #4
0
        public IHttpActionResult GetBalance(int id)
        {
            BalanceDTO entity = Service.GetBalance(id);

            if (entity == null)
            {
                return(NotFound());
            }

            return(Ok(entity));
        }
        public void GetBalance_ShouldGiveTheTotalAmountPaidAndPendingEmisAtAGivenEmiNumber()
        {
            loanService.Add(new Loan
            {
                BankName     = "IDIDI",
                BorrowerName = "Dale",
                Principal    = 10000,
                NoOfYears    = 5,
                InterestRate = 4
            });


            var balanceService = new BalanceService(loanService, paymentService);

            var balance = balanceService.GetBalance("IDIDI", "Dale", 5);

            Assert.Equal(1000, balance.AmountPaid);
            Assert.Equal(55, balance.PendingEmis);
        }
        public void GetBalanceTest()
        {
            var     namePlus    = "plus";
            var     nameMinus   = "minus";
            var     cashBalance = 12.34;
            Balance balance     = new Balance
            {
                PersonMinus = new AppUser {
                    Name = nameMinus
                },
                PersonPlus = new AppUser {
                    Name = namePlus
                },
                CashBalance = cashBalance
            };
            var amount = BalanceService.GetBalance(namePlus, balance);

            Assert.AreEqual(cashBalance, amount);
            amount = BalanceService.GetBalance(nameMinus, balance);
            Assert.AreEqual(-cashBalance, amount);
        }
Example #7
0
        public async Task TestCharge()
        {
            var service = new BalanceService(MockTokenClaimsAccessor(cjdlqTokenClaims), db);

            var resp = await service.GetBalance(new Protos.Balance.GetBalanceRequest {
            }, TestContext);

            Assert.Equal(10, resp.Balance);

            var resp2 = await service.Charge(new Protos.Balance.ChargeRequest {
                Amount = 30
            }, TestContext);

            Assert.Equal(40, resp2.Balance);
            Assert.Single(cjd.ReceivedUserTransactions);
            var transaction = cjd.ReceivedUserTransactions.First();

            Assert.Equal(30, transaction.Amount);
            Assert.Equal(cjd, transaction.Receiver);
            Assert.Null(transaction.Payer);
            Assert.Equal(new TransactionReason(TransactionType.Charge, ""), transaction.Reason);
        }
Example #8
0
 protected Balance GetBalanceCore(string matchAddress = null, AddressType matchAddressType = AddressType.MatchAll)
 {
     return(BalanceService.GetBalance(this.metadata.Blocks, this.metadata.SyncedHeight,
                                      this.metadata.MemoryPool.Entries, GetOwnAddress, matchAddress, matchAddressType));
 }