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).)"); }
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); } }