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)); }
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(); }
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(); }
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(); }