public void MaybeSupportsChaining() { var parent = new TestParentItem { Id = 111, Items = new List <TestChildItem> { new TestChildItem { Id = 1 }, new TestChildItem { Id = 2 }, new TestChildItem { Id = 3 }, new TestChildItem { Id = 4 }, new TestChildItem { Id = 5 }, new TestChildItem { Id = 6 }, } }; var maybe = new Maybe <TestParentItem>(parent); Func <TestParentItem, Maybe <TestChildItem> > chainFunc = p => { return(new Maybe <TestChildItem>(p.Items.FirstOrDefault(i => i.Id == 2))); }; var resultMaybe = maybe.Chain(chainFunc); Assert.IsTrue(resultMaybe.HasValue); }
public void SendNestedObjects_SendsItAsJson() { var expectedJson = @" { ""ParentStringProperty"": ""parent"", ""Child"": { ""StringProperty"": ""test string"", ""IntProperty"": 123 } }"; var item = new TestItem { StringProperty = "test string", IntProperty = 123 }; var parent = new TestParentItem { ParentStringProperty = "parent", Child = item }; item.Parent = parent; _log.Info(parent); var message = WaitForSentMessage(); message.ExtraProperties.Should().BeEquivalentTo(JObject.Parse(expectedJson)); }