public override int GetHashCode()
 {
     unchecked
     {
         return((CharSet.GetHashCode() * 397) ^ Collation.GetHashCode());
     }
 }
예제 #2
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Type != 0)
            {
                hash ^= Type.GetHashCode();
            }
            if (Name.Length != 0)
            {
                hash ^= Name.GetHashCode();
            }
            if (OriginalName.Length != 0)
            {
                hash ^= OriginalName.GetHashCode();
            }
            if (Table.Length != 0)
            {
                hash ^= Table.GetHashCode();
            }
            if (OriginalTable.Length != 0)
            {
                hash ^= OriginalTable.GetHashCode();
            }
            if (Schema.Length != 0)
            {
                hash ^= Schema.GetHashCode();
            }
            if (Catalog.Length != 0)
            {
                hash ^= Catalog.GetHashCode();
            }
            if (Collation != 0UL)
            {
                hash ^= Collation.GetHashCode();
            }
            if (FractionalDigits != 0)
            {
                hash ^= FractionalDigits.GetHashCode();
            }
            if (Length != 0)
            {
                hash ^= Length.GetHashCode();
            }
            if (Flags != 0)
            {
                hash ^= Flags.GetHashCode();
            }
            if (ContentType != 0)
            {
                hash ^= ContentType.GetHashCode();
            }
            return(hash);
        }
        public void Equals_should_compare_alternate_fields(
            [Values(null, CollationAlternate.NonIgnorable, CollationAlternate.Shifted)]
            CollationAlternate? lhsAlternate,
            [Values(null, CollationAlternate.NonIgnorable, CollationAlternate.Shifted)]
            CollationAlternate? rhsAlternate)
        {
            var lhs = new Collation("en_US", alternate: lhsAlternate);
            var rhs = new Collation("en_US", alternate: rhsAlternate);

            var result1 = lhs.Equals(rhs);
            var result2 = lhs.Equals((object)rhs);
            var lhsHashCode = lhs.GetHashCode();
            var rhsHashCode = rhs.GetHashCode();

            var expectedResult = lhsAlternate == rhsAlternate;
            result1.Should().Be(expectedResult);
            result2.Should().Be(expectedResult);
            (lhsHashCode == rhsHashCode).Should().Be(expectedResult);
        }
        // helper methods
        private void Equals_Act_and_Assert(Collation lhs, Collation rhs, bool expectedResult)
        {
            var result1 = lhs.Equals(rhs);
            var result2 = lhs.Equals((object)rhs);
            var lhsHashCode = lhs.GetHashCode();
            var rhsHashCode = rhs.GetHashCode();

            result1.Should().Be(expectedResult);
            result2.Should().Be(expectedResult);
            (lhsHashCode == rhsHashCode).Should().Be(expectedResult);
        }