public void ToImmutableTree_WithParenthesesAndValue_ReturnsTreeWithParenthesesAndValue() { IEquationBuilder builder = new EquationBuilder(); builder = builder.Parentheses(b => b.Value(3)); var tree = (builder as EquationBuilder).ToImmutableTree(); var parenthesis = tree.GetChildren(tree.GetRoot()).First(); var value = tree.GetChildren(parenthesis).First(); Assert.AreEqual("()", tree.ValueOf(parenthesis)); Assert.AreEqual("3", tree.ValueOf(value)); }
public void Parentheses_WithExpressionAndFactory_AllowsCreatingNewItemsInsideExpression() { var id = new Mock<IIdentifier>().Object; var item = new Mock<IItem>().Object; var factory = new Mock<IFactory>(MockBehavior.Strict); factory.Setup(o => o.CanCreate(id)).Returns(true); factory.Setup(o => o.Create(id)).Returns(item); IEquationBuilder builder = new EquationBuilder(new[] { factory.Object }); builder = builder.Parentheses(b => b.CreateItem(id)); factory.VerifyAll(); }