public void Immutable_When_CreatingABuilderFromExisting() { MyImmutableEntity original = new MyImmutableEntity.Builder { MyField1 = 42 }; MyImmutableEntity newInstance = original .WithMyField1(43); original.MyField1.Should().Be(42); newInstance.MyField1.Should().Be(43); }
public void Immutable_When_Using_Options() { var list = ImmutableList <string> .Empty; var original = MyImmutableEntity.None; var modifiedBuilder = original.WithList(list); Option <MyImmutableEntity> modifiedOption = modifiedBuilder; MyImmutableEntity modified = modifiedOption; original.MatchNone().Should().BeTrue(); modifiedOption.MatchSome().Should().BeTrue(); modified.MyField1.Should().Be(MyImmutableEntity.Default.MyField1); modified.MyField2.Should().Be(MyImmutableEntity.Default.MyField2); modified.Date.Should().Be(MyImmutableEntity.Default.Date); modified.List.Should().BeSameAs(list); }