diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java index 933e7559cc..7ca0ccbe73 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/ErrorMessageTest.java @@ -12,7 +12,6 @@ import java.sql.SQLException; import java.util.Properties; -import com.microsoft.sqlserver.jdbc.TestUtils; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -227,10 +226,11 @@ public void testADPasswordUnregisteredUserWithConnectionStringUserName() throws fail(EXPECTED_EXCEPTION_NOT_THROWN); } catch (SQLServerException e) { assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), - e.getMessage() + (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)); + && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -248,10 +248,11 @@ public void testADPasswordUnregisteredUserWithDatasource() throws SQLException { fail(EXPECTED_EXCEPTION_NOT_THROWN); } catch (SQLServerException e) { assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), - e.getMessage() + (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)); + && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -262,10 +263,11 @@ public void testADPasswordUnregisteredUserWithConnectionStringUser() throws SQLE fail(EXPECTED_EXCEPTION_NOT_THROWN); } catch (SQLServerException e) { assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), - e.getMessage() + (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + badUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)); + && e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_ADD)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -398,11 +400,12 @@ public void testADPasswordWrongPasswordWithConnectionStringUserName() throws SQL fail(EXPECTED_EXCEPTION_NOT_THROWN); } - assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), e.getMessage() + assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY))); + && e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -423,11 +426,12 @@ public void testADPasswordWrongPasswordWithDatasource() throws SQLException { fail(EXPECTED_EXCEPTION_NOT_THROWN); } - assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), e.getMessage() + assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY))); + && e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } @@ -442,11 +446,12 @@ public void testADPasswordWrongPasswordWithConnectionStringUser() throws SQLExce fail(EXPECTED_EXCEPTION_NOT_THROWN); } - assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), e.getMessage() + assertTrue(INVALID_EXCEPTION_MSG + ": " + e.getMessage(), (e.getMessage() .contains(ERR_MSG_FAILED_AUTHENTICATE + " the user " + azureUserName + " in Active Directory (Authentication=ActiveDirectoryPassword).") - && (e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") - || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY))); + && e.getCause().getCause().getMessage().toLowerCase().contains("invalid username or password") + || e.getCause().getCause().getMessage().contains(ERR_MSG_SIGNIN_TOO_MANY)) + || e.getMessage().contains(ERR_MSG_REQUEST_THROTTLED)); } } diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/FedauthCommon.java b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/FedauthCommon.java index 53f34adb65..aa26e7af3b 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/FedauthCommon.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/fedauth/FedauthCommon.java @@ -83,6 +83,7 @@ public class FedauthCommon extends AbstractTest { static final String ERR_MSG_RESULTSET_IS_CLOSED = TestUtils.R_BUNDLE.getString("R_resultsetClosed"); static final String ERR_MSG_SOCKET_CLOSED = TestResource.getResource("R_socketClosed"); static final String ERR_TCPIP_CONNECTION = TestResource.getResource("R_tcpipConnectionToHost"); + static final String ERR_MSG_REQUEST_THROTTLED = "Request was throttled"; enum SqlAuthentication { NotSpecified, diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/resiliency/BasicConnectionTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/resiliency/BasicConnectionTest.java index 8b508e5b9c..050eb6a584 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/resiliency/BasicConnectionTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/resiliency/BasicConnectionTest.java @@ -57,7 +57,7 @@ public void testBasicConnectionAAD() throws SQLException { org.junit.Assume.assumeTrue(azureServer != null && !azureServer.isEmpty()); basicReconnect("jdbc:sqlserver://" + azureServer + ";database=" + azureDatabase + ";user=" + azureUserName - + ";password=" + azurePassword + ";loginTimeout=30;Authentication=ActiveDirectoryPassword"); + + ";password=" + azurePassword + ";loginTimeout=90;Authentication=ActiveDirectoryPassword"); } @Test