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(); }
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); }
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); }