Example #1
0
        public ServiceResult <CashAccountTransactionsResponse> GetTransactions(DateRange dateRange)
        {
            if (_Portfolio == null)
            {
                return(ServiceResult <CashAccountTransactionsResponse> .NotFound());
            }

            var response = new CashAccountTransactionsResponse();

            response.OpeningBalance = _Portfolio.CashAccount.Balance(dateRange.FromDate);
            response.ClosingBalance = _Portfolio.CashAccount.Balance(dateRange.ToDate);

            var transactions = _Portfolio.CashAccount.Transactions.InDateRange(dateRange);

            foreach (var transaction in transactions)
            {
                response.Transactions.Add(new CashAccountTransactionsResponse.Transaction()
                {
                    Date        = transaction.Date,
                    Type        = transaction.Type.ToResponse(),
                    Description = transaction.Description,
                    Amount      = transaction.Amount,
                    Balance     = transaction.Balance
                });
            }

            return(ServiceResult <CashAccountTransactionsResponse> .Ok(response));
        }
Example #2
0
        public void GetCashAccountNoDates()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var response = new CashAccountTransactionsResponse();

            var service = mockRepository.Create <ICashAccountService>();

            service.Setup(x => x.GetTransactions(new DateRange(Date.Today.AddYears(-1).AddDays(1), Date.Today))).Returns(ServiceResult <CashAccountTransactionsResponse> .Ok(response)).Verifiable();

            var controller = new PortfolioController();
            var result     = controller.GetCashAccount(service.Object, null, null);

            result.Result.Should().BeOkObjectResult().Value.Should().Be(response);

            mockRepository.VerifyAll();
        }
Example #3
0
        public void GetCashAccountBothDates()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var response = new CashAccountTransactionsResponse();

            var service = mockRepository.Create <ICashAccountService>();

            service.Setup(x => x.GetTransactions(new DateRange(new Date(2000, 01, 01), new Date(2000, 12, 31)))).Returns(ServiceResult <CashAccountTransactionsResponse> .Ok(response)).Verifiable();

            var controller = new PortfolioController();
            var result     = controller.GetCashAccount(service.Object, new DateTime(2000, 01, 01), new DateTime(2000, 12, 31));

            result.Result.Should().BeOkObjectResult().Value.Should().Be(response);

            mockRepository.VerifyAll();
        }
Example #4
0
        public async Task GetCashAccount()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var portfolioId = Guid.NewGuid();
            var dateRange   = new DateRange(new Date(2001, 02, 03), new Date(2008, 06, 30));
            var response    = new CashAccountTransactionsResponse();

            var messageHandler = mockRepository.Create <IRestClientMessageHandler>();

            messageHandler.SetupProperty(x => x.Portfolio, portfolioId);
            messageHandler.Setup(x => x.GetAsync <CashAccountTransactionsResponse>(It.Is <string>(x => x == "portfolio/" + portfolioId + "/cashaccount?fromdate=2001-02-03&todate=2008-06-30")))
            .Returns(Task <CashAccountTransactionsResponse> .FromResult(response))
            .Verifiable();

            var resource = new PortfolioResource(messageHandler.Object);

            var result = await resource.GetCashAccount(dateRange);

            result.Should().Be(response);

            mockRepository.Verify();
        }