예제 #1
0
        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);
        }
예제 #2
0
        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));
        }