public void Equals_should_return_false_when_any_field_is_not_equal( [Values("mode", "tagSets")] string notEqualFieldName) { var mode = ReadPreferenceMode.Secondary; var tagSets = new[] { new TagSet(new[] { new Tag("name", "value1") }) }; var subject1 = new ReadPreference(mode, tagSets); switch (notEqualFieldName) { case "mode": mode = ReadPreferenceMode.SecondaryPreferred; break; case "tagSets": tagSets = new[] { new TagSet(new[] { new Tag("name", "value2") }) }; break; default: throw new ArgumentException("notEqualFieldName"); } var subject2 = new ReadPreference(mode, tagSets); var result1 = subject1.Equals(subject2); var result2 = subject1.Equals((object)subject2); var hashCode1 = subject1.GetHashCode(); var hashCode2 = subject2.GetHashCode(); result1.Should().BeFalse(); result2.Should().BeFalse(); hashCode1.Should().NotBe(hashCode2); }
// private methods private void Equals_Act_and_Assert(ReadPreference lhs, ReadPreference rhs, bool expectedResult) { var result1 = lhs.Equals(rhs); var result2 = lhs.Equals((object)rhs); var hashCode1 = lhs.GetHashCode(); var hashCode2 = rhs.GetHashCode(); result1.Should().Be(expectedResult); result2.Should().Be(expectedResult); (hashCode1 == hashCode2).Should().Be(expectedResult); }
public void Equals_should_return_true_when_all_fields_are_equal() { var mode = ReadPreferenceMode.Secondary; var tagSets = new[] { new TagSet(new[] { new Tag("name", "value") }) }; var subject1 = new ReadPreference(mode, tagSets); var subject2 = new ReadPreference(mode, tagSets); var result1 = subject1.Equals(subject2); var result2 = subject1.Equals((object)subject2); var hashCode1 = subject1.GetHashCode(); var hashCode2 = subject2.GetHashCode(); result1.Should().BeTrue(); result2.Should().BeTrue(); hashCode1.Should().Be(hashCode2); }
/// <summary> /// Determines whether the specified <see cref="System.Object" /> is equal to this instance. /// </summary> /// <param name="obj">The <see cref="System.Object" /> to compare with this instance.</param> /// <returns> /// <c>true</c> if the specified <see cref="System.Object" /> is equal to this instance; otherwise, <c>false</c>. /// </returns> public override bool Equals(object obj) { if (object.ReferenceEquals(obj, null) || GetType() != obj.GetType()) { return(false); } var rhs = (MongoServerSettings)obj; return (object.ReferenceEquals(_clusterConfigurator, rhs._clusterConfigurator) && _connectionMode == rhs._connectionMode && _connectTimeout == rhs._connectTimeout && _credentials == rhs._credentials && _guidRepresentation == rhs._guidRepresentation && _ipv6 == rhs._ipv6 && _maxConnectionIdleTime == rhs._maxConnectionIdleTime && _maxConnectionLifeTime == rhs._maxConnectionLifeTime && _maxConnectionPoolSize == rhs._maxConnectionPoolSize && _minConnectionPoolSize == rhs._minConnectionPoolSize && _operationTimeout == rhs._operationTimeout && object.Equals(_readEncoding, rhs._readEncoding) && _readPreference.Equals(rhs._readPreference) && _replicaSetName == rhs._replicaSetName && _localThreshold == rhs._localThreshold && _servers.SequenceEqual(rhs._servers) && _serverSelectionTimeout == rhs._serverSelectionTimeout && _socketTimeout == rhs._socketTimeout && _sslSettings == rhs._sslSettings && _useSsl == rhs._useSsl && _verifySslCertificate == rhs._verifySslCertificate && _waitQueueSize == rhs._waitQueueSize && _waitQueueTimeout == rhs._waitQueueTimeout && _writeConcern.Equals(rhs._writeConcern) && object.Equals(_writeEncoding, rhs._writeEncoding)); }
/// <summary> /// Determines whether the specified <see cref="System.Object" /> is equal to this instance. /// </summary> /// <param name="obj">The <see cref="System.Object" /> to compare with this instance.</param> /// <returns> /// <c>true</c> if the specified <see cref="System.Object" /> is equal to this instance; otherwise, <c>false</c>. /// </returns> public override bool Equals(object obj) { if (object.ReferenceEquals(obj, null) || GetType() != obj.GetType()) { return(false); } var rhs = (MongoServerSettings)obj; return (_allowInsecureTls == rhs._allowInsecureTls && _applicationName == rhs._applicationName && object.ReferenceEquals(_clusterConfigurator, rhs._clusterConfigurator) && _compressors.SequenceEqual(rhs._compressors) && _connectionMode == rhs._connectionMode && _connectTimeout == rhs._connectTimeout && _credentials == rhs._credentials && _guidRepresentation == rhs._guidRepresentation && _heartbeatInterval == rhs._heartbeatInterval && _heartbeatTimeout == rhs._heartbeatTimeout && _ipv6 == rhs._ipv6 && _maxConnectionIdleTime == rhs._maxConnectionIdleTime && _maxConnectionLifeTime == rhs._maxConnectionLifeTime && _maxConnectionPoolSize == rhs._maxConnectionPoolSize && _minConnectionPoolSize == rhs._minConnectionPoolSize && _operationTimeout == rhs._operationTimeout && object.Equals(_readConcern, rhs._readConcern) && object.Equals(_readEncoding, rhs._readEncoding) && _readPreference.Equals(rhs._readPreference) && _replicaSetName == rhs._replicaSetName && _retryReads == rhs._retryReads && _retryWrites == rhs._retryWrites && _localThreshold == rhs._localThreshold && _scheme == rhs._scheme && _sdamLogFilename == rhs._sdamLogFilename && _servers.SequenceEqual(rhs._servers) && _serverSelectionTimeout == rhs._serverSelectionTimeout && _socketTimeout == rhs._socketTimeout && _sslSettings == rhs._sslSettings && _useTls == rhs._useTls && _waitQueueSize == rhs._waitQueueSize && _waitQueueTimeout == rhs._waitQueueTimeout && _writeConcern.Equals(rhs._writeConcern) && object.Equals(_writeEncoding, rhs._writeEncoding)); }