Added all possible exceptions to MySQLInputSourceDatabaseConnectorTest #18734
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The following tests in
MySQLInputSourceDatabaseConnectorTest.javahave some nondeterminism due to how properties are checked inConnectionUriUtils.java:This PR proposes a fix to ensure the tests are robust to nondeterministic behaviors with different JVM and future updates to it.
Problem
When a
MySQLInputSourceDatabaseConnectoris created,validateConfigis called which then callsConnectionUriUtils.throwIfPropertiesAreNotAllowed. The util functionthrowIfPropertiesAreNotAllowedtests membership using theseSets and throws an exception on the first element that is not in theallowedPropertiesSet. However, if there is more than one element not in theallowedPropertiesSet, then there may be multiple possible exception messages since a specific ordering of these elements is not guaranteed.As a result, the tests can fail as such:
Solution
To fix
org.apache.druid.metadata.input.MySQLInputSourceDatabaseConnectorTest.testFailWhenNoAllowlistAndHavePropertyandorg.apache.druid.metadata.input.MySQLInputSourceDatabaseConnectorTest.testFailOnlyInvalidProperty, I enumerated all the possible error messages using:These values are found here:

To fix
org.apache.druid.metadata.input.MySQLInputSourceDatabaseConnectorTest.testFailValidAndInvalidPropertyMariadb, I enumerated all the possible error messages using:These values are found here:

This PR has: