示例#1
0
        public void AccessHoldingsByStockMultipleEntries()
        {
            var stock1 = new Stock(Guid.NewGuid());

            stock1.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var stock2 = new Stock(Guid.NewGuid());

            stock2.List("XYZ", "ZYZ Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var holdings = new HoldingCollection();

            holdings.Add(stock1, new Date(2000, 01, 01));
            holdings.Add(stock2, new Date(2000, 01, 01));

            var holding = holdings[stock1.Id];

            using (new AssertionScope())
            {
                holding.Should().BeEquivalentTo(new
                {
                    Stock           = stock1,
                    EffectivePeriod = new DateRange(new Date(2000, 01, 01), Date.MaxValue),
                });

                holding[new Date(2000, 01, 01)].Should().Be(new HoldingProperties(0, 0.00m, 0.00m));
            }
        }
示例#2
0
        public void AllHoldingsNoEntries()
        {
            var stock1 = new Stock(Guid.NewGuid());

            stock1.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var stock2 = new Stock(Guid.NewGuid());

            stock2.List("XYZ", "ZYZ Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var holdings = new HoldingCollection();

            holdings.All().Should().BeEmpty();
        }
示例#3
0
        public void AllHoldingsSingleEntry()
        {
            var stock1 = new Stock(Guid.NewGuid());

            stock1.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var stock2 = new Stock(Guid.NewGuid());

            stock2.List("XYZ", "ZYZ Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var holdings = new HoldingCollection();

            holdings.Add(stock1, new Date(2000, 01, 01));

            holdings.All().Should().HaveCount(1);
        }
示例#4
0
        public void AllHoldingsByDateRangeNoEntriesInRange()
        {
            var stock1 = new Stock(Guid.NewGuid());

            stock1.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var stock2 = new Stock(Guid.NewGuid());

            stock2.List("XYZ", "ZYZ Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var holdings = new HoldingCollection();

            holdings.Add(stock1, new Date(2000, 01, 01));
            holdings.Add(stock2, new Date(2002, 01, 01));

            holdings.All(new DateRange(new Date(1999, 01, 01), new Date(1999, 12, 01))).Should().BeEmpty();
        }
示例#5
0
        public void AddHoldingExisingStock()
        {
            var stock1 = new Stock(Guid.NewGuid());

            stock1.List("ABC", "ABC Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var stock2 = new Stock(Guid.NewGuid());

            stock2.List("XYZ", "ZYZ Pty Ltd", new Date(1974, 01, 01), false, AssetCategory.AustralianStocks);

            var holdings = new HoldingCollection();

            holdings.Add(stock1, new Date(2000, 01, 01));

            Action a = () => holdings.Add(stock1, new Date(2001, 01, 01));

            a.Should().Throw <ArgumentException>();
        }
示例#6
0
        public void GetHoldingsByStockNoEntries()
        {
            var holdings = new HoldingCollection();

            holdings.Get(Guid.NewGuid()).Should().BeNull();
        }
示例#7
0
        public void AccessHoldingsByStockNoEntries()
        {
            var holdings = new HoldingCollection();

            holdings[Guid.NewGuid()].Should().BeNull();
        }