public void ApplyDividendAddedEvent()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

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

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

            var events = mockRepository.Create <IEventList>();
            var corporateActionList = new CorporateActionList(stock, events.Object);

            var id     = Guid.NewGuid();
            var @event = new DividendAddedEvent(stock.Id, 0, id, new Date(2000, 01, 01), "Test Dividend", new Date(2000, 02, 01), 1.20m, 1.00m, 2.20m);

            corporateActionList.Apply(@event);

            corporateActionList.Should().SatisfyRespectively(

                first => first.Should().BeEquivalentTo(new
            {
                Id             = id,
                Stock          = stock,
                Date           = new Date(2000, 01, 01),
                Description    = "Test Dividend",
                PaymentDate    = new Date(2000, 02, 01),
                DividendAmount = 1.20m,
                PercentFranked = 1.00m,
                DrpPrice       = 2.20m
            })

                );

            mockRepository.Verify();
        }
Esempio n. 2
0
        public void AddDividend(Guid id, Date recordDate, string description, Date paymentDate, decimal dividendAmount, decimal percentFranked, decimal drpPrice)
        {
            if (description == "")
            {
                description = "Dividend " + MathUtils.FormatCurrency(dividendAmount, false, true);
            }

            var @event = new DividendAddedEvent(_Stock.Id, _Stock.Version, id, recordDate, description, paymentDate, dividendAmount, percentFranked, drpPrice);

            Apply(@event);
            PublishEvent(@event);
        }
Esempio n. 3
0
        private CorporateAction CorporateActionFromEvent(DividendAddedEvent @event)
        {
            var dividend = new Dividend(@event.ActionId, Stock, @event.ActionDate, @event.Description, @event.PaymentDate, @event.DividendAmount, @event.PercentFranked, @event.DrpPrice);

            return(dividend);
        }