|
50 | 50 | import java.util.Objects; |
51 | 51 | import java.util.Properties; |
52 | 52 | import java.util.regex.Matcher; |
| 53 | +import java.util.regex.Pattern; |
53 | 54 | import org.junit.AfterClass; |
54 | 55 | import org.junit.BeforeClass; |
55 | 56 | import org.junit.Test; |
@@ -217,29 +218,37 @@ public void testLenient() throws SQLException { |
217 | 218 |
|
218 | 219 | @Test |
219 | 220 | public void testJdbcExternalHostFormat() { |
| 221 | + Matcher matcher = |
| 222 | + Pattern.compile("jdbc:\\(\\?:([a-z]+):.*").matcher(EXTERNAL_HOST_URL_PATTERN.pattern()); |
| 223 | + String prefix = matcher.matches() ? matcher.group(1) : null; |
220 | 224 | Matcher matcherWithoutInstance = |
221 | | - EXTERNAL_HOST_URL_PATTERN.matcher("jdbc:cloudspanner://localhost:15000/databases/test-db"); |
| 225 | + EXTERNAL_HOST_URL_PATTERN.matcher( |
| 226 | + String.format("jdbc:%s://localhost:15000/databases/test-db", prefix)); |
222 | 227 | assertTrue(matcherWithoutInstance.matches()); |
223 | 228 | assertEquals("test-db", matcherWithoutInstance.group("DATABASEGROUP")); |
224 | 229 | Matcher matcherWithProperty = |
225 | 230 | EXTERNAL_HOST_URL_PATTERN.matcher( |
226 | | - "jdbc:cloudspanner://localhost:15000/instances/default/databases/singers-db?usePlainText=true"); |
| 231 | + String.format( |
| 232 | + "jdbc:%s://localhost:15000/instances/default/databases/singers-db?usePlainText=true", |
| 233 | + prefix)); |
227 | 234 | assertTrue(matcherWithProperty.matches()); |
228 | 235 | assertEquals("default", matcherWithProperty.group("INSTANCEGROUP")); |
229 | 236 | assertEquals("singers-db", matcherWithProperty.group("DATABASEGROUP")); |
230 | 237 | Matcher matcherWithoutPort = |
231 | 238 | EXTERNAL_HOST_URL_PATTERN.matcher( |
232 | | - "jdbc:cloudspanner://localhost/instances/default/databases/test-db"); |
| 239 | + String.format("jdbc:%s://localhost/instances/default/databases/test-db", prefix)); |
233 | 240 | assertTrue(matcherWithoutPort.matches()); |
234 | 241 | assertEquals("default", matcherWithoutPort.group("INSTANCEGROUP")); |
235 | 242 | assertEquals("test-db", matcherWithoutPort.group("DATABASEGROUP")); |
236 | 243 | Matcher matcherWithProject = |
237 | 244 | EXTERNAL_HOST_URL_PATTERN.matcher( |
238 | | - "jdbc:cloudspanner://localhost:15000/projects/default/instances/default/databases/singers-db"); |
| 245 | + String.format( |
| 246 | + "jdbc:%s://localhost:15000/projects/default/instances/default/databases/singers-db", |
| 247 | + prefix)); |
239 | 248 | assertFalse(matcherWithProject.matches()); |
240 | 249 | Matcher matcherWithoutHost = |
241 | 250 | EXTERNAL_HOST_URL_PATTERN.matcher( |
242 | | - "jdbc:cloudspanner:/instances/default/databases/singers-db"); |
| 251 | + String.format("jdbc:%s:/instances/default/databases/singers-db", prefix)); |
243 | 252 | assertFalse(matcherWithoutHost.matches()); |
244 | 253 | } |
245 | 254 | } |
0 commit comments