public void TestConnectionSummaryComparer()
        {
            var summary1 = new ConnectionSummary()
            {
                ServerName   = "localhost",
                DatabaseName = "master",
                UserName     = "******"
            };

            var summary2 = new ConnectionSummary()
            {
                ServerName   = "localhost",
                DatabaseName = "master",
                UserName     = "******"
            };

            var comparer = new ConnectionSummaryComparer();

            Assert.True(comparer.Equals(summary1, summary2));

            summary2.DatabaseName = "tempdb";
            Assert.False(comparer.Equals(summary1, summary2));
            Assert.False(comparer.Equals(null, summary2));

            Assert.False(summary1.GetHashCode() == summary2.GetHashCode());
        }
        public void TestConnectionSummaryComparerHashCode(bool objectNull, string serverName, string databaseName, string userName)
        {
            // Given a connection summary and comparer object
            ConnectionSummary summary = null;

            if (!objectNull)
            {
                summary = new ConnectionSummary()
                {
                    ServerName   = serverName,
                    DatabaseName = databaseName,
                    UserName     = userName
                };
            }
            ConnectionSummaryComparer comparer = new ConnectionSummaryComparer();

            // If I compute a hash code
            int hashCode = comparer.GetHashCode(summary);

            if (summary == null || (serverName == null && databaseName == null && userName == null))
            {
                // Then I expect it to be 31 for a null summary
                Assert.Equal(31, hashCode);
            }
            else
            {
                // And not 31 otherwise
                Assert.NotEqual(31, hashCode);
            }
        }