public void Builder_Should_ProperlyBuildMoreComplicatedObjects(PersonExtendedInfo sourcePersonInfo) { dynamic personInfoBuilder = new FluentBuilder <PersonExtendedInfo>(); personInfoBuilder.WithActive(sourcePersonInfo.Active) .WithAdditionalData(sourcePersonInfo.AdditionalData) .WithAddress(sourcePersonInfo.Address) .WithAge(sourcePersonInfo.Age) .WithDateOfBirth(sourcePersonInfo.DateOfBirth) .WithDateOfDeath(sourcePersonInfo.DateOfDeath) .WithName(sourcePersonInfo.Name) .WithSurname(sourcePersonInfo.Surname) .WithSalary(sourcePersonInfo.Salary); PersonExtendedInfo builtPersonInfo = personInfoBuilder.Get(); //TODO: find/write some Shouldly method to compare objects only by property values builtPersonInfo.Active.ShouldBe(sourcePersonInfo.Active); builtPersonInfo.AdditionalData.ShouldBe(sourcePersonInfo.AdditionalData); builtPersonInfo.Address.ShouldBe(sourcePersonInfo.Address); builtPersonInfo.Age.ShouldBe(sourcePersonInfo.Age); builtPersonInfo.DateOfBirth.ShouldBe(sourcePersonInfo.DateOfBirth); builtPersonInfo.DateOfDeath.ShouldBe(sourcePersonInfo.DateOfDeath); builtPersonInfo.Name.ShouldBe(sourcePersonInfo.Name); builtPersonInfo.Surname.ShouldBe(sourcePersonInfo.Surname); builtPersonInfo.Salary.ShouldBe(sourcePersonInfo.Salary); }