public void ListWithOneChildSecurity() { var listingDate = new Date(2000, 01, 01); var stock = new StapledSecurity(Guid.NewGuid()); var childSecurities = new StapledSecurityChild[] { new StapledSecurityChild("ABC_1", "Child 1", true) }; stock.List("ABC", "ABC Pty Ltd", listingDate, AssetCategory.AustralianProperty, childSecurities); using (new AssertionScope()) { stock.Should().BeEquivalentTo(new { Trust = false, EffectivePeriod = new DateRange(listingDate, Date.MaxValue) }); stock.RelativeNTAs[listingDate].Percentages.Should().Equal(new decimal[] { 1.00m }); stock.ChildSecurities.Should().SatisfyRespectively( first => first.Should().BeEquivalentTo(new { AsxCode = "ABC_1", Name = "Child 1", Trust = true })); } }
public void AddChild(string asxCode, string name, bool trust) { var child = new StapledSecurityChild() { AsxCode = asxCode, Name = name, Trust = trust }; ChildSecurities.Add(child); }
public void SetRelativeNTAsPercentagesDontAddTo100() { var listingDate = new Date(2000, 01, 01); var changeDate = new Date(2002, 01, 01); var stock = new StapledSecurity(Guid.NewGuid()); var childSecurities = new StapledSecurityChild[] { new StapledSecurityChild("ABC_1", "Child 1", true), new StapledSecurityChild("ABC_2", "Child 2", false) }; stock.List("ABC", "ABC Pty Ltd", listingDate, AssetCategory.AustralianProperty, childSecurities); Action a = () => stock.SetRelativeNTAs(changeDate, new decimal[] { 0.60m, 0.60m }); a.Should().Throw <ArgumentException>(); }
public void SetRelativeNTAsBeforeListing() { var listingDate = new Date(2000, 01, 01); var changeDate = new Date(1999, 01, 01); var stock = new StapledSecurity(Guid.NewGuid()); var childSecurities = new StapledSecurityChild[] { new StapledSecurityChild("ABC_1", "Child 1", true), new StapledSecurityChild("ABC_2", "Child 2", false) }; stock.List("ABC", "ABC Pty Ltd", listingDate, AssetCategory.AustralianProperty, new StapledSecurityChild[0]); Action a = () => stock.SetRelativeNTAs(changeDate, new decimal[] { 0.50m, 0.50m }); a.Should().Throw <EffectiveDateException>(); }
public void SetRelativeNTAsTwiceOnSameDay() { var listingDate = new Date(2000, 01, 01); var changeDate = new Date(2002, 01, 01); var stock = new StapledSecurity(Guid.NewGuid()); var childSecurities = new StapledSecurityChild[] { new StapledSecurityChild("ABC_1", "Child 1", true), new StapledSecurityChild("ABC_2", "Child 2", false) }; stock.List("ABC", "ABC Pty Ltd", listingDate, AssetCategory.AustralianProperty, childSecurities); stock.SetRelativeNTAs(changeDate, new decimal[] { 0.30m, 0.70m }); stock.SetRelativeNTAs(changeDate, new decimal[] { 0.60m, 0.40m }); stock.RelativeNTAs[changeDate].Percentages.Should().Equal(new decimal[] { 0.60m, 0.40m }); }