public async Task Building_WithoutAdditionalCalls_UsesDefaultValues() { // Arrange var sut = _entityBuilderFactory.Create <AddressBuilder>(); // Act var actualAddress = await sut.BuildAsync(); // Assert Assert.AreEqual(AddressBuilder.DefaultCity, actualAddress.City); Assert.AreEqual(AddressBuilder.DefaultZip, actualAddress.Zip); }
public async Task Building_CompleteGraph_AndSaving_PersistsGraph() { // Arrange var individualBuilder = _entityBuilderFactory.Create <IndividualBuilder>(); // Act var createdIndividual = await individualBuilder .WithAddress( config => { config.WithCity(); config.WithCity(); }) .WithAddress() .BuildAsync(true); // Assert await using var dbContext = _dbContextFactory.Create(); var actualIndividual = await dbContext.Set <Individual>() .Include(f => f.Addresses) .ThenInclude(f => f.Streets) .SingleAsync(f => f.Id == createdIndividual.Id); Assert.AreEqual(IndividualBuilder.DefaultBirthdate, actualIndividual.Birthdate); Assert.AreEqual(IndividualBuilder.DefaultFirstName, actualIndividual.FirstName); Assert.AreEqual(IndividualBuilder.DefaultLastName, actualIndividual.LastName); var addresses = actualIndividual.Addresses; Assert.AreEqual(2, addresses.Count); Assert.IsTrue(addresses.All(adr => adr.Zip == AddressBuilder.DefaultZip)); Assert.IsTrue(addresses.All(adr => adr.City == AddressBuilder.DefaultCity)); var firstAddress = addresses.First(); Assert.AreEqual(2, firstAddress.Streets.Count); Assert.IsTrue(firstAddress.Streets.All(str => str.StreetName == StreetBuilder.DefaultStreetName)); Assert.IsTrue(firstAddress.Streets.All(str => str.StreetNumber == StreetBuilder.DefaultStreetNumber)); }