public void WithReadPreference_should_return_expected_result() { var originalReadPreference = new ReadPreference(ReadPreferenceMode.Secondary); var subject = new MongoClient().WithReadPreference(originalReadPreference); var newReadPreference = new ReadPreference(ReadPreferenceMode.SecondaryPreferred); var result = subject.WithReadPreference(newReadPreference); subject.Settings.ReadPreference.Should().BeSameAs(originalReadPreference); result.Settings.ReadPreference.Should().BeSameAs(newReadPreference); result.WithReadPreference(originalReadPreference).Settings.Should().Be(subject.Settings); }