public class MockBuilder : IBuilder {
public bool buildPartCalled = false;
public void BuildPart() {
buildPartCalled = true;
}
}
[TestFixture]
public class DirectorTests {
Director director;
MockBuilder builder;
[SetUp]
public void SetUp() {
builder = new MockBuilder();
director = new Director(builder);
}
[Test]
public void ConstructCallsBuildPartInBuilder() {
Assert.IsFalse(builder.buildPartCalled, );
director.Construct();
Assert.IsTrue(builder.buildPartCalled, );
}
}
[TestFixture]
public class BuilderTests {
ConcreteBuilder builder;
[SetUp]
public void SetUp() {
builder = new ConcreteBuilder();
}
[Test]
public void GetResultDoesNotReturnNullObject() {
Assert.IsNotNull(builder.GetResult());
}
[Test]
public void BuildPartSetsPartInProduct() {
Product productPriorToBuildPart = builder.GetResult();
Assert.AreEqual(0, productPriorToBuildPart.Part.Length,
);
builder.BuildPart();
Product productAfterBuildPartCalled = builder.GetResult();
Assert.AreEqual(, productPriorToBuildPart.Part,
);
}
}
[TestFixture]
public class ProductTests {
Product product;
[SetUp]
public void SetUp() {
product = new Product();
}
[Test]
public void PartSetAndRetrieved() {
string someValue = ;
Assert.AreEqual(0, product.Part.Length,
);
product.Part = someValue;
Assert.AreEqual(someValue, product.Part,
);
}
}