public void GivenATreeBuiltWithMultipleSteps() { var tb = new TreeBuilder<INode>(); tb.Group<NameNode>().As(nn => new PartNode { Part = PartNode.Strip(nn.Text) }); tb.Group<PartNode>() .When(pn => pn.Part.Contains(".")) .As(pn => new PartNode { Part = PartNode.Strip(pn.Part) }); _result = tb.Build(_names.Select(name => new NameNode { Text = name })); }
public void GivenATreeBuiltWithNameGroupingOnly() { var tb = new TreeBuilder<INode>(); tb.Group<NameNode>().As(nn => new PartNode { Part = PartNode.Strip(nn.Text) }); var nn1 = new NameNode { Text = "X.Y.U" }; var nn2 = new NameNode { Text = "X.Y.V" }; _result = tb.Build(new[] { nn1, nn2 }); }
public void TestThatIncompleteTreeResultsInProperError() { var tb = new TreeBuilder<INode>(); tb.Group<NameNode>().As(nn => new PartNode { Part = PartNode.Strip(nn.Text) }); var nn1 = new NameNode { Text = "X.Y" }; var nn2 = new NameNode { Text = "A.B" }; Assert.Throws<ArgumentException>(() => tb.Build(new[] {nn1, nn2})); }