public void ToImmutableTree_WithDivideWithValueExpression_ReturnsTreeWithDivideOperatorAndValue() { IEquationBuilder builder = new EquationBuilder(); builder = builder.Divide(b => b.Value(3)); var tree = (builder as EquationBuilder).ToImmutableTree(); var divide = tree.GetChildren(tree.GetRoot()).First(); var value = tree.GetChildren(divide).First(); Assert.AreEqual("/", tree.ValueOf(divide)); Assert.AreEqual("3", tree.ValueOf(value)); }
public void ToImmutableTree_WithDivide_ReturnsTreeWithDivideOperator() { IEquationBuilder builder = new EquationBuilder(); builder = builder.Divide(); var tree = (builder as EquationBuilder).ToImmutableTree(); var children = tree.GetChildren(tree.GetRoot()); var divide = children.First(); Assert.AreEqual("/", tree.ValueOf(divide)); }
public void Divide_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.Divide(b => b.CreateItem(id)); factory.VerifyAll(); }