public void CreateItemReturningItem_WithNoFactory_Fails() { var id = new Mock<IIdentifier>().Object; IEquationBuilder builder = new EquationBuilder(); IItem item; builder.CreateItem(id, out item); }
public void CreateItemReturningItem_WithFactoryAndUnknownIdentifier_Fails() { var id = new Mock<IIdentifier>().Object; var factory = new Mock<IFactory>(); factory.Setup(o => o.CanCreate(id)).Returns(false); IEquationBuilder builder = new EquationBuilder(new[] { factory.Object }); IItem item; builder.CreateItem(id, out item); }
public void Factory_PlugedInTheEquationBuilder_CanBeUsedToCreateSquareRoot() { var factory = new AdvancedMathOperatorsFactory(); var builder = new EquationBuilder(new[] { factory }); builder = builder.CreateItem<EquationBuilder>(AdvancedMathOperators.SquareRoot); var tree = builder.ToImmutableTree(); var rootValue = tree.ValueOf(tree.GetRoot()); Assert.AreEqual("SquareRoot", rootValue); }
public void CreateItemReturningItem_WithFactoriesThatCanCreateSameItem_Fails() { var id = new Mock<IIdentifier>().Object; var item = new Mock<IItem>().Object; var factory = new Mock<IFactory>(); factory.Setup(o => o.CanCreate(id)).Returns(true); factory.Setup(o => o.Create(id)).Returns(item); IEquationBuilder builder = new EquationBuilder(new[] { factory.Object, factory.Object }); IItem createItem; builder.CreateItem(id, out createItem); }
public void CreateItemReturningItem_WithFactoryAndKnownIdentifier_ReturnsTheNewItem() { var id = new Mock<IIdentifier>().Object; var item = new Mock<IItem>().Object; var factory = new Mock<IFactory>(); factory.Setup(o => o.CanCreate(id)).Returns(true); factory.Setup(o => o.Create(id)).Returns(item); IEquationBuilder builder = new EquationBuilder(new[] { factory.Object }); IItem createItem; builder.CreateItem(id, out createItem); Assert.AreEqual(item, createItem); }
public void CreateItem_WithNoFactory_Fails() { var id = new Mock<IIdentifier>().Object; IEquationBuilder builder = new EquationBuilder(); builder.CreateItem(id); }
public void CreateItem_WithFactoryAndKnownIdentifier_ReturnsTheBuilder() { var id = new Mock<IIdentifier>().Object; var item = new Mock<IItem>().Object; var factory = new Mock<IFactory>(); factory.Setup(o => o.CanCreate(id)).Returns(true); factory.Setup(o => o.Create(id)).Returns(item); IEquationBuilder builder = new EquationBuilder(new[] { factory.Object }); var returnedBuilder = builder.CreateItem(id); Assert.AreEqual(builder, returnedBuilder); }