Example #1
0
        public static void ConnectionSpeed()
        {
            var connString = DataTestUtility.AADPasswordConnectionString;

            //Ensure server endpoints are warm
            using (var connectionDrill = new SqlConnection(connString))
            {
                connectionDrill.Open();
            }

            SqlConnection.ClearAllPools();
            ActiveDirectoryAuthenticationProvider.ClearUserTokenCache();

            Stopwatch firstConnectionTime  = new Stopwatch();
            Stopwatch secondConnectionTime = new Stopwatch();

            using (var connectionDrill = new SqlConnection(connString))
            {
                firstConnectionTime.Start();
                connectionDrill.Open();
                firstConnectionTime.Stop();
                using (var connectionDrill2 = new SqlConnection(connString))
                {
                    secondConnectionTime.Start();
                    connectionDrill2.Open();
                    secondConnectionTime.Stop();
                }
            }

            // Subsequent AAD connections within a short timeframe should use an auth token cached from the connection pool
            // Second connection speed in tests was typically 10-15% of the first connection time. Using 30% since speeds may vary.
            Assert.True(((double)secondConnectionTime.ElapsedMilliseconds / firstConnectionTime.ElapsedMilliseconds) < 0.30, $"Second AAD connection too slow ({secondConnectionTime.ElapsedMilliseconds}ms)! (More than 30% of the first ({firstConnectionTime.ElapsedMilliseconds}ms).)");
        }
Example #2
0
 public static void GetAccessTokenByPasswordTest()
 {
     // Clear token cache for code coverage.
     ActiveDirectoryAuthenticationProvider.ClearUserTokenCache();
     using (SqlConnection connection = new SqlConnection(DataTestUtility.AADPasswordConnectionString))
     {
         connection.Open();
         Assert.True(connection.State == System.Data.ConnectionState.Open);
     }
 }