public void ReferenceToOtherImmutable() { var blackWatch = Watch.Create(color: "black", size: 10); var personWithBlackWatch = Person.Create(null, watch: blackWatch); var silverWatch = blackWatch.WithColor("silver"); var personWithSilverWatch = personWithBlackWatch.WithWatch(silverWatch); Assert.Equal(silverWatch, personWithSilverWatch.Watch); }
public void PropertiesAreAlsoBuilders() { var person = Person.Create("bill", watch: Watch.Create()); var personBuilder = person.ToBuilder(); personBuilder.Watch.Color = "Red"; var modifiedPerson = personBuilder.ToImmutable(); Assert.Equal("Red", modifiedPerson.Watch.Color); personBuilder.Watch = null; var personWithoutWatch = personBuilder.ToImmutable(); Assert.Null(personWithoutWatch.Watch); }