public void Build_WithCustomBuilderContext_AccessToContextInConstructor(bool isDiesel) { // Arrange var builder = new BmwBuilder(); var context = new BmwBuilder.BmwBuilderContext { IsDiesel = isDiesel }; // Act Car actual = builder.Build(context); // Assert Assert.NotNull(actual); new { Color = Car.DefaultColor, NumDoors = default(int), }.ToExpectedObject().ShouldMatch(actual); bool actualIsDiesel = actual.Model .Split(' ') .First() .EndsWith(BmwBuilder.DieselSuffix); Assert.Equal(isDiesel, actualIsDiesel); }
public void BmwBuilder_x6_BuildsBmwx6() { var sut = new BmwBuilder(); var result = sut.FixEngine("x6 v8 engine").FixDoor("x6 2 door").AddGps(true).Create(); Assert.That(result, Is.EqualTo(new BmwCar { Engine = "x6 v8 engine", Door = "x6 2 door", IsGpsEnabled = true })); }
public void BmwBuilder_WithoutModificationCreate_BuildsOdrinaryBmw() { var sut = new BmwBuilder(); var result = sut.Create(); Assert.That(result, Is.EqualTo(new BmwCar { Engine = "ordinary engine", Door = "four door", IsGpsEnabled = false })); }
public void Build_WithCustomBuilderContext_AccessToContextInSet() { // Arrange BuilderContext contextInSetMethod = null; var builder = new BmwBuilder() .Set((car, builderContext) => contextInSetMethod = builderContext); var context = new BmwBuilder.BmwBuilderContext { IsDiesel = true }; // Act Car actual = builder.Build(context); // Assert Assert.NotNull(actual); Assert.Equal(context, contextInSetMethod); Assert.True(context.IsDiesel); }