You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polaris.apache.org by sn...@apache.org on 2024/08/30 13:22:27 UTC
(polaris) branch main updated: Replace nested loop with `@ParameterizedTest` (#222)
This is an automated email from the ASF dual-hosted git repository.
snazy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new e20be90e Replace nested loop with `@ParameterizedTest` (#222)
e20be90e is described below
commit e20be90e9af302aa253d5ca6c1f0e3729b5c51e2
Author: Yuya Ebihara <eb...@gmail.com>
AuthorDate: Fri Aug 30 22:22:22 2024 +0900
Replace nested loop with `@ParameterizedTest` (#222)
---
.../admin/PolarisOverlappingCatalogTest.java | 150 ++++++++-------------
1 file changed, 55 insertions(+), 95 deletions(-)
diff --git a/polaris-service/src/test/java/org/apache/polaris/service/admin/PolarisOverlappingCatalogTest.java b/polaris-service/src/test/java/org/apache/polaris/service/admin/PolarisOverlappingCatalogTest.java
index 180dc823..59842b6c 100644
--- a/polaris-service/src/test/java/org/apache/polaris/service/admin/PolarisOverlappingCatalogTest.java
+++ b/polaris-service/src/test/java/org/apache/polaris/service/admin/PolarisOverlappingCatalogTest.java
@@ -41,8 +41,9 @@ import org.apache.polaris.service.PolarisApplication;
import org.apache.polaris.service.config.PolarisApplicationConfig;
import org.apache.polaris.service.test.PolarisConnectionExtension;
import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
@ExtendWith({DropwizardExtensionsSupport.class, PolarisConnectionExtension.class})
public class PolarisOverlappingCatalogTest {
@@ -110,101 +111,60 @@ public class PolarisOverlappingCatalogTest {
}
}
- @Test
- public void testBasicOverlappingCatalogs() {
- Arrays.asList(false, true)
- .forEach(
- initiallyExternal -> {
- Arrays.asList(false, true)
- .forEach(
- laterExternal -> {
- String prefix = UUID.randomUUID().toString();
-
- assertThat(createCatalog(prefix, "root", initiallyExternal))
- .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
-
- // OK, non-overlapping
- assertThat(createCatalog(prefix, "boot", laterExternal))
- .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
-
- // OK, non-overlapping due to no `/`
- assertThat(createCatalog(prefix, "roo", laterExternal))
- .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
-
- // Also OK due to no `/`
- assertThat(createCatalog(prefix, "root.child", laterExternal))
- .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
-
- // inside `root`
- assertThat(createCatalog(prefix, "root/child", laterExternal))
- .returns(
- Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
-
- // `root` is inside this
- assertThat(createCatalog(prefix, "", laterExternal))
- .returns(
- Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
- });
- });
+ @ParameterizedTest
+ @CsvSource({"true, true", "true, false", "false, true", "false, false"})
+ public void testBasicOverlappingCatalogs(boolean initiallyExternal, boolean laterExternal) {
+ String prefix = UUID.randomUUID().toString();
+
+ assertThat(createCatalog(prefix, "root", initiallyExternal))
+ .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
+
+ // OK, non-overlapping
+ assertThat(createCatalog(prefix, "boot", laterExternal))
+ .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
+
+ // OK, non-overlapping due to no `/`
+ assertThat(createCatalog(prefix, "roo", laterExternal))
+ .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
+
+ // Also OK due to no `/`
+ assertThat(createCatalog(prefix, "root.child", laterExternal))
+ .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
+
+ // inside `root`
+ assertThat(createCatalog(prefix, "root/child", laterExternal))
+ .returns(Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
+
+ // `root` is inside this
+ assertThat(createCatalog(prefix, "", laterExternal))
+ .returns(Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
}
- @Test
- public void testAllowedLocationOverlappingCatalogs() {
- Arrays.asList(false, true)
- .forEach(
- initiallyExternal -> {
- Arrays.asList(false, true)
- .forEach(
- laterExternal -> {
- String prefix = UUID.randomUUID().toString();
-
- assertThat(
- createCatalog(
- prefix,
- "animals",
- initiallyExternal,
- Arrays.asList("dogs", "cats")))
- .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
-
- // OK, non-overlapping
- assertThat(
- createCatalog(
- prefix,
- "danimals",
- laterExternal,
- Arrays.asList("dan", "daniel")))
- .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
-
- // This DBL overlaps with initial AL
- assertThat(
- createCatalog(
- prefix,
- "dogs",
- initiallyExternal,
- Arrays.asList("huskies", "labs")))
- .returns(
- Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
-
- // This AL overlaps with initial DBL
- assertThat(
- createCatalog(
- prefix,
- "kingdoms",
- initiallyExternal,
- Arrays.asList("plants", "animals")))
- .returns(
- Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
-
- // This AL overlaps with an initial AL
- assertThat(
- createCatalog(
- prefix,
- "plays",
- initiallyExternal,
- Arrays.asList("rent", "cats")))
- .returns(
- Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
- });
- });
+ @ParameterizedTest
+ @CsvSource({"true, true", "true, false", "false, true", "false, false"})
+ public void testAllowedLocationOverlappingCatalogs(
+ boolean initiallyExternal, boolean laterExternal) {
+ String prefix = UUID.randomUUID().toString();
+
+ assertThat(createCatalog(prefix, "animals", initiallyExternal, Arrays.asList("dogs", "cats")))
+ .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
+
+ // OK, non-overlapping
+ assertThat(createCatalog(prefix, "danimals", laterExternal, Arrays.asList("dan", "daniel")))
+ .returns(Response.Status.CREATED.getStatusCode(), Response::getStatus);
+
+ // This DBL overlaps with initial AL
+ assertThat(createCatalog(prefix, "dogs", initiallyExternal, Arrays.asList("huskies", "labs")))
+ .returns(Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
+
+ // This AL overlaps with initial DBL
+ assertThat(
+ createCatalog(
+ prefix, "kingdoms", initiallyExternal, Arrays.asList("plants", "animals")))
+ .returns(Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
+
+ // This AL overlaps with an initial AL
+ assertThat(createCatalog(prefix, "plays", initiallyExternal, Arrays.asList("rent", "cats")))
+ .returns(Response.Status.BAD_REQUEST.getStatusCode(), Response::getStatus);
}
}