Example #1
0
        public void GetShareBalanceForFundByInvestorTest()
        {
            var factory = new TransactionFactory()
                          .WithFund(() => "Fund 1")
                          .WithInvestor(() => "Investor 1")
                          .WithShares(() => 100)
                          .WithTransactionType(() => TransactionType.Buy);
            var transactions = factory.Build(3);

            transactions.Add(factory.WithTransactionType(() => TransactionType.Sell).Build());
            new BreakReport(transactions).GetShareBalanceForFundByInvestor("Fund 1", "Investor 1")
            .Should().Be(200);
        }
        public void GetNetAmountHeldForInvestorTest()
        {
            var factory = new TransactionFactory().WithInvestor(() => "Investor 1")
                          .WithFund(() => "Fund 1")
                          .WithPrice(() => 100)
                          .WithShares(() => 1)
                          .WithTransactionType(() => TransactionType.Sell);
            var transactions = factory.Build(3);

            transactions.AddRange(factory.WithTransactionType(() => TransactionType.Buy).Build(1));
            transactions.AddRange(factory.WithFund(() => "Fund 2").Build(1));
            new AssetReport(transactions).GetNetAmountHeldForInvestor("Investor 1").Should().Be(100);
        }