Exemplo n.º 1
0
        public ServiceResult <IncomeResponse> GetIncome(DateRange dateRange)
        {
            if (_Portfolio == null)
            {
                return(ServiceResult <IncomeResponse> .NotFound());
            }


            var response = new IncomeResponse();

            var incomes = _Portfolio.Transactions.InDateRange(dateRange).OfType <Domain.Transactions.IncomeReceived>()
                          .GroupBy(x => x.Stock,
                                   x => x,
                                   (key, result) => new IncomeResponse.IncomeItem()
            {
                Stock           = key.ToSummaryResponse(dateRange.ToDate),
                UnfrankedAmount = result.Sum(x => x.UnfrankedAmount),
                FrankedAmount   = result.Sum(x => x.FrankedAmount),
                FrankingCredits = result.Sum(x => x.FrankingCredits),
                NetIncome       = result.Sum(x => x.CashIncome),
                GrossIncome     = result.Sum(x => x.TotalIncome)
            });

            response.Income.AddRange(incomes);

            return(ServiceResult <IncomeResponse> .Ok(response));
        }
Exemplo n.º 2
0
        public void GetIncomeNoDates()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var response = new IncomeResponse();

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

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

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

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

            mockRepository.VerifyAll();
        }
Exemplo n.º 3
0
        public void GetIncomeBothDates()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var response = new IncomeResponse();

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

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

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

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

            mockRepository.VerifyAll();
        }
Exemplo n.º 4
0
        public async Task GetIncome()
        {
            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 IncomeResponse();

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

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

            var resource = new PortfolioResource(messageHandler.Object);

            var result = await resource.GetIncome(dateRange);

            result.Should().Be(response);

            mockRepository.Verify();
        }