Exemple #1
0
        public void PortfolioNotFound()
        {
            var dateRange = new DateRange(new Date(2000, 01, 01), new Date(2000, 12, 31));

            var service = new PortfolioPerformanceService(null);

            var result = service.GetPerformance(dateRange);

            result.Should().HaveNotFoundStatus();
        }
Exemple #2
0
        public void GetPerformance()
        {
            var portfolio = PortfolioTestCreator.CreateDefaultPortfolio();

            var service = new PortfolioPerformanceService(portfolio);

            var result = service.GetPerformance(new DateRange(new Date(2001, 01, 01), new Date(2010, 01, 01)));

            result.Result.Should().BeEquivalentTo(new
            {
                OpeningBalance       = 335.00m,
                Dividends            = 173.00m,
                ChangeInMarketValue  = 291.00m,
                OutstandingDRPAmount = -0.50m,
                ClosingBalance       = 807.50m,
                OpeningCashBalance   = 9620.10m,
                Deposits             = 500.00m,
                Withdrawls           = -5000.00m,
                Interest             = 100.00m,
                Fees = -59.85m,
                ClosingCashBalance = 5151.25m,
                HoldingPerformance = new[]
                {
                    new RestApi.Portfolios.PortfolioPerformanceResponse.HoldingPerformanceItem()
                    {
                        Stock          = PortfolioTestCreator.Stock_ARG,
                        OpeningBalance = 105.00m,
                        Purchases      = 200.00m,
                        Sales          = 51.00m,
                        ClosingBalance = 500.00m,
                        Dividends      = 140.00m,
                        CapitalGain    = 246.00m,
                        DrpCashBalance = 0.00m,
                        TotalReturn    = 386.00m,
                        Irr            = 0.15518m
                    },
                    new RestApi.Portfolios.PortfolioPerformanceResponse.HoldingPerformanceItem()
                    {
                        Stock          = PortfolioTestCreator.Stock_WAM,
                        OpeningBalance = 230.00m,
                        Purchases      = 32.50m,
                        Sales          = 0.00m,
                        ClosingBalance = 307.50m,
                        Dividends      = 33.00m,
                        CapitalGain    = 45.00m,
                        DrpCashBalance = 0.50m,
                        TotalReturn    = 78.00m,
                        Irr            = 0.03299m
                    }
                }
            });
        }
Exemple #3
0
        public void HoldingAquiredAndDisposedInPeriod()
        {
            var portfolio = PortfolioTestCreator.CreateEmptyPortfolio();

            portfolio.AquireShares(PortfolioTestCreator.Stock_ARG.Id, new Date(2002, 01, 01), 100, 1.00m, 19.95m, false, "", Guid.NewGuid());
            portfolio.DisposeOfShares(PortfolioTestCreator.Stock_ARG.Id, new Date(2009, 01, 01), 100, 1.20m, 19.95m, Domain.Utils.CgtCalculationMethod.FirstInFirstOut, false, "", Guid.NewGuid());

            var service = new PortfolioPerformanceService(portfolio);
            var result  = service.GetPerformance(new DateRange(new Date(2001, 01, 01), new Date(2010, 01, 01)));

            result.Result.Should().BeEquivalentTo(new
            {
                OpeningBalance       = 0.00m,
                Dividends            = 0.00m,
                ChangeInMarketValue  = 20.00m,
                OutstandingDRPAmount = 0.00m,
                ClosingBalance       = 000.00m,
                OpeningCashBalance   = 0.00m,
                Deposits             = 0.00m,
                Withdrawls           = 0.00m,
                Interest             = 0.00m,
                Fees = 0.00m,
                ClosingCashBalance = 0.00m,
                HoldingPerformance = new[]
                {
                    new RestApi.Portfolios.PortfolioPerformanceResponse.HoldingPerformanceItem()
                    {
                        Stock          = PortfolioTestCreator.Stock_ARG,
                        OpeningBalance = 0.00m,
                        Purchases      = 100.00m,
                        Sales          = 120.00m,
                        ClosingBalance = 0.00m,
                        Dividends      = 0.00m,
                        CapitalGain    = 20.00m,
                        DrpCashBalance = 0.00m,
                        TotalReturn    = 20.00m,
                        Irr            = 0.02637m
                    }
                }
            });
        }