|
6 | 6 |
|
7 | 7 | import com.databricks.jdbc.exception.DatabricksHttpException; |
8 | 8 | import com.databricks.jdbc.exception.DatabricksSQLException; |
| 9 | +import java.util.stream.Stream; |
9 | 10 | import org.apache.http.HttpResponse; |
10 | 11 | import org.apache.http.StatusLine; |
11 | 12 | import org.junit.jupiter.api.Test; |
12 | 13 | import org.junit.jupiter.api.extension.ExtendWith; |
| 14 | +import org.junit.jupiter.params.ParameterizedTest; |
| 15 | +import org.junit.jupiter.params.provider.Arguments; |
| 16 | +import org.junit.jupiter.params.provider.MethodSource; |
13 | 17 | import org.mockito.Mock; |
14 | 18 | import org.mockito.junit.jupiter.MockitoExtension; |
15 | 19 |
|
@@ -49,23 +53,33 @@ void testUnsuccessfulResponseCheck() { |
49 | 53 | assertThrows(DatabricksHttpException.class, () -> ValidationUtil.checkHTTPError(response)); |
50 | 54 | } |
51 | 55 |
|
52 | | - @Test |
53 | | - public void testIsValidJdbcUrl() { |
54 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_URL_1)); |
55 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_URL_2)); |
56 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_URL_3)); |
57 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_URL_4)); |
58 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_URL_5)); |
59 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_URL_6)); |
60 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_URL_7)); |
61 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_BASE_URL_1)); |
62 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_BASE_URL_2)); |
63 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_BASE_URL_3)); |
64 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_TEST_URL)); |
65 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_CLUSTER_URL)); |
66 | | - assertTrue(ValidationUtil.isValidJdbcUrl(VALID_URL_WITH_INVALID_COMPRESSION_TYPE)); |
67 | | - assertFalse(ValidationUtil.isValidJdbcUrl(INVALID_URL_1)); |
68 | | - assertFalse(ValidationUtil.isValidJdbcUrl(INVALID_URL_2)); |
69 | | - assertFalse(ValidationUtil.isValidJdbcUrl(INVALID_CLUSTER_URL)); |
| 56 | + @ParameterizedTest |
| 57 | + @MethodSource("jdbcUrlValidityTestCases") |
| 58 | + void testIsValidJdbcUrl(String url, String description, boolean expectedValid) { |
| 59 | + assertEquals(expectedValid, ValidationUtil.isValidJdbcUrl(url), description); |
| 60 | + } |
| 61 | + |
| 62 | + private static Stream<Arguments> jdbcUrlValidityTestCases() { |
| 63 | + return Stream.of( |
| 64 | + Arguments.of(VALID_URL_1, "Valid URL with auth_flow=2 and log path", true), |
| 65 | + Arguments.of(VALID_URL_2, "Valid URL with invalid LogLevel but valid structure", true), |
| 66 | + Arguments.of(VALID_URL_3, "Valid URL with EnableQueryResultLZ4Compression=0", true), |
| 67 | + Arguments.of(VALID_URL_4, "Valid URL with EnableDirectResults", true), |
| 68 | + Arguments.of(VALID_URL_5, "Valid URL without schema", true), |
| 69 | + Arguments.of(VALID_URL_6, "Valid URL with ConnCatalog and ConnSchema", true), |
| 70 | + Arguments.of(VALID_URL_7, "Valid URL with Arrow disabled", true), |
| 71 | + Arguments.of(VALID_BASE_URL_1, "Valid base URL with trailing semicolon", true), |
| 72 | + Arguments.of(VALID_BASE_URL_2, "Valid base URL without trailing semicolon", true), |
| 73 | + Arguments.of(VALID_BASE_URL_3, "Valid base URL without schema", true), |
| 74 | + Arguments.of(VALID_BASE_URL_4, "Valid base URL with one parameter", true), |
| 75 | + Arguments.of(VALID_BASE_URL_5, "Valid base URL with two parameters", true), |
| 76 | + Arguments.of(VALID_TEST_URL, "Minimal valid test URL", true), |
| 77 | + Arguments.of(VALID_CLUSTER_URL, "Valid cluster URL with protocol path", true), |
| 78 | + Arguments.of( |
| 79 | + VALID_URL_WITH_INVALID_COMPRESSION_TYPE, |
| 80 | + "Valid URL with invalid compression type", |
| 81 | + true), |
| 82 | + Arguments.of(INVALID_URL_1, "Invalid non-Databricks JDBC URL", false), |
| 83 | + Arguments.of(INVALID_URL_2, "Invalid malformed JDBC scheme", false)); |
70 | 84 | } |
71 | 85 | } |
0 commit comments