Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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
            }));
        }
Esempio n. 3
0
        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
            }));
        }
Esempio n. 4
0
        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);
        }