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);
   }
 }