public void AddNamed_OnEmptyContext_ContainsSingleEntry() { var context = new NodeContext <int>(); context.Add("name", 42); context.Count.Should().Be(1); context.Get(0).Should().Be(42); context.Get("name").Single().Should().Be(42); }
public void Cast_ToCompatibleType_ReturnsCorrectType() { var context = new NodeContext <NodeType>(); context.Add("name", new NodeSubType("fortytwo")); context.Add("value", new NodeSubType("sixsixsix")); context.Get("name").Single <NodeSubType>().Name.Should().Be("fortytwo"); context.Get("name").Optional <NodeSubType>()?.Name.Should().Be("fortytwo"); context.Get("missing").Optional <NodeSubType>().Should().BeNull(); context.GetAll().As <NodeSubType>().Select(n => n.Name).Should().ContainInOrder("fortytwo", "sixsixsix"); }
public void AddMultiple_WithSameName_GetByNameReturnsAll() { var context = new NodeContext <int>(); context.Add("name", 42); context.Add("name", 666); context.Add("name", 1024); context.Count.Should().Be(3); context.Get(0).Should().Be(42); context.Get(1).Should().Be(666); context.Get(2).Should().Be(1024); context.Get("name").Should().ContainInOrder(42, 666, 1024); }
public void OfType_OnContextValue_FiltersObjectsOfType() { var context = new NodeContext <NodeType>(); context.Add(null, new NodeType("fortytwo")); context.Add(null, new NodeSubType("sixsixsix")); context.GetAll().Of <NodeType>().Select(n => n.Name).Should().ContainInOrder("fortytwo", "sixsixsix"); context.GetAll().Of <NodeSubType>().Select(n => n.Name).Should().ContainInOrder("sixsixsix"); context.Get("none").Of <NodeSubType>().Should().BeEmpty(); }