From 503860ca804fcc6e84d7ddf37c5638d0910adb71 Mon Sep 17 00:00:00 2001 From: Mihir Vala Date: Fri, 13 Jun 2025 15:16:36 +0530 Subject: [PATCH 1/3] chore(modelarmor): Added floorsettings tests and marked them as skip for now --- .../src/test/java/modelarmor/SnippetsIT.java | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/modelarmor/src/test/java/modelarmor/SnippetsIT.java b/modelarmor/src/test/java/modelarmor/SnippetsIT.java index ede9b6fa591..36d5fbac17c 100644 --- a/modelarmor/src/test/java/modelarmor/SnippetsIT.java +++ b/modelarmor/src/test/java/modelarmor/SnippetsIT.java @@ -28,6 +28,8 @@ import com.google.cloud.modelarmor.v1.FilterConfig; import com.google.cloud.modelarmor.v1.FilterMatchState; import com.google.cloud.modelarmor.v1.FilterResult; +import com.google.cloud.modelarmor.v1.FloorSetting; +import com.google.cloud.modelarmor.v1.FloorSettingName; import com.google.cloud.modelarmor.v1.LocationName; import com.google.cloud.modelarmor.v1.MaliciousUriFilterSettings; import com.google.cloud.modelarmor.v1.MaliciousUriFilterSettings.MaliciousUriFilterEnforcement; @@ -46,6 +48,7 @@ import com.google.cloud.modelarmor.v1.SdpFinding; import com.google.cloud.modelarmor.v1.Template; import com.google.cloud.modelarmor.v1.TemplateName; +import com.google.cloud.modelarmor.v1.UpdateFloorSettingRequest; import com.google.privacy.dlp.v2.CreateDeidentifyTemplateRequest; import com.google.privacy.dlp.v2.CreateInspectTemplateRequest; import com.google.privacy.dlp.v2.DeidentifyConfig; @@ -72,6 +75,7 @@ import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -80,6 +84,10 @@ public class SnippetsIT { private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT"); + private static final String FOLDER_ID = System.getenv() + .getOrDefault("MA_FOLDER_ID", "global"); + private static final String ORGANIZATION_ID = System.getenv() + .getOrDefault("MA_ORG_ID", "global"); private static final String LOCATION_ID = System.getenv() .getOrDefault("GOOGLE_CLOUD_PROJECT_LOCATION", "us-central1"); private static final String MA_ENDPOINT = String.format("modelarmor.%s.rep.googleapis.com:443", @@ -99,7 +107,11 @@ public class SnippetsIT { private static String TEST_DEIDENTIFY_TEMPLATE_NAME; private ByteArrayOutputStream stdOut; private PrintStream originalOut; + private static String[] floorSettingNames; private static String[] templateToDelete; + private static String projectFloorSettingName; + private static String folderFloorSettingName; + private static String organizationFloorSettingName; // Check if the required environment variables are set. private static void requireEnvVar(String varName) { @@ -111,6 +123,17 @@ private static void requireEnvVar(String varName) { @BeforeClass public static void beforeAll() throws IOException { requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + // TODO: Uncomment below once floor setting API issues are resolved. + // See buganizer ticket b/424365799 for status. + // requireEnvVar("MA_FOLDER_ID"); + // requireEnvVar("MA_ORG_ID"); + + projectFloorSettingName = + FloorSettingName.ofProjectLocationName(PROJECT_ID, "global").toString(); + folderFloorSettingName = FloorSettingName.ofFolderLocationName(FOLDER_ID, "global").toString(); + organizationFloorSettingName = + FloorSettingName.ofOrganizationLocationName(ORGANIZATION_ID, "global").toString(); TEST_TEMPLATE_ID = randomId(); TEST_RAI_TEMPLATE_ID = randomId(); @@ -147,6 +170,12 @@ private static String randomId() { @AfterClass public static void afterAll() throws IOException { requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + // TODO: Uncomment below once floor setting API issues are resolved. + // See buganizer ticket b/424365799 for status. + // requireEnvVar("MA_FOLDER_ID"); + // requireEnvVar("MA_ORG_ID"); + // resetFloorSettings(); // Delete templates after running tests. templateToDelete = new String[] { @@ -380,6 +409,77 @@ private static void deleteTemplate(String templateId) throws IOException { } } + private static void resetFloorSettings() throws IOException { + floorSettingNames = new String[] { + projectFloorSettingName, folderFloorSettingName, organizationFloorSettingName + }; + + + try (ModelArmorClient client = ModelArmorClient.create()) { + for (String name : floorSettingNames) { + FloorSetting floorSetting = FloorSetting.newBuilder() + .setName(name) + .setFilterConfig(FilterConfig.newBuilder().build()) + .setEnableFloorSettingEnforcement(false) + .build(); + + UpdateFloorSettingRequest request = UpdateFloorSettingRequest.newBuilder() + .setFloorSetting(floorSetting) + .build(); + + client.updateFloorSetting(request); + } + } + } + + // Tests for Folder setting snippets. + + // TODO: Remove ignore for below tests once floor setting API issues are resolved. + // See buganizer ticket b/424365799 for status. + + @Ignore + @Test + public void testGetOrganizationFloorSetting() throws IOException { + GetOrganizationFloorSetting.getOrganizationFloorSetting(ORGANIZATION_ID); + assertThat(stdOut.toString()).contains("Fetched floor setting for organization:"); + } + + @Ignore + @Test + public void testGetFolderFloorSetting() throws IOException { + GetFolderFloorSetting.getFolderFloorSetting(FOLDER_ID); + assertThat(stdOut.toString()).contains("Fetched floor setting for folder:"); + } + + @Ignore + @Test + public void testGetProjectFloorSetting() throws IOException { + GetProjectFloorSetting.getProjectFloorSetting(PROJECT_ID); + assertThat(stdOut.toString()).contains("Fetched floor setting for project:"); + } + + @Ignore + @Test + public void testUpdateOrganizationFloorSetting() throws IOException { + UpdateOrganizationsFloorSetting.updateOrganizationFloorSetting(ORGANIZATION_ID); + assertThat(stdOut.toString()).contains("Updated floor setting for organization:"); + } + + @Ignore + @Test + public void testUpdateFolderFloorSetting() throws IOException { + UpdateFolderFloorSetting.updateFolderFloorSetting(FOLDER_ID); + assertThat(stdOut.toString()).contains("Updated floor setting for folder:"); + } + + + @Ignore + @Test + public void testUpdateProjectFloorSetting() throws IOException { + UpdateProjectFloorSetting.updateProjectFloorSetting(PROJECT_ID); + assertThat(stdOut.toString()).contains("Updated floor setting for project:"); + } + // Tests for Template CRUD snippets. @Test public void testUpdateModelArmorTemplate() throws IOException { From a438abfb4d52071c1f15e891afc341e4e50e494d Mon Sep 17 00:00:00 2001 From: Mihir Vala Date: Fri, 13 Jun 2025 16:35:46 +0530 Subject: [PATCH 2/3] chore(modelarmor): refactored TODO messages --- modelarmor/src/test/java/modelarmor/SnippetsIT.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/modelarmor/src/test/java/modelarmor/SnippetsIT.java b/modelarmor/src/test/java/modelarmor/SnippetsIT.java index 36d5fbac17c..ac2a5ee7de6 100644 --- a/modelarmor/src/test/java/modelarmor/SnippetsIT.java +++ b/modelarmor/src/test/java/modelarmor/SnippetsIT.java @@ -124,8 +124,7 @@ private static void requireEnvVar(String varName) { public static void beforeAll() throws IOException { requireEnvVar("GOOGLE_CLOUD_PROJECT"); - // TODO: Uncomment below once floor setting API issues are resolved. - // See buganizer ticket b/424365799 for status. + // TODO(b/424365799): Uncomment below code once the mentioned issue is resolved // requireEnvVar("MA_FOLDER_ID"); // requireEnvVar("MA_ORG_ID"); @@ -171,8 +170,7 @@ private static String randomId() { public static void afterAll() throws IOException { requireEnvVar("GOOGLE_CLOUD_PROJECT"); - // TODO: Uncomment below once floor setting API issues are resolved. - // See buganizer ticket b/424365799 for status. + // TODO(b/424365799): Uncomment below code once the mentioned issue is resolved // requireEnvVar("MA_FOLDER_ID"); // requireEnvVar("MA_ORG_ID"); // resetFloorSettings(); @@ -433,9 +431,7 @@ private static void resetFloorSettings() throws IOException { } // Tests for Folder setting snippets. - - // TODO: Remove ignore for below tests once floor setting API issues are resolved. - // See buganizer ticket b/424365799 for status. + // TODO(b/424365799): Enable below tests once the mentioned issue is resolved @Ignore @Test From ae70097199bd9d1c6783f5308cbe9851ce05367b Mon Sep 17 00:00:00 2001 From: Mihir Vala Date: Thu, 3 Jul 2025 14:21:12 +0530 Subject: [PATCH 3/3] chore(tests): enabled floor settings tests --- .../src/test/java/modelarmor/SnippetsIT.java | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/modelarmor/src/test/java/modelarmor/SnippetsIT.java b/modelarmor/src/test/java/modelarmor/SnippetsIT.java index ac2a5ee7de6..2b30d9a623f 100644 --- a/modelarmor/src/test/java/modelarmor/SnippetsIT.java +++ b/modelarmor/src/test/java/modelarmor/SnippetsIT.java @@ -123,10 +123,8 @@ private static void requireEnvVar(String varName) { @BeforeClass public static void beforeAll() throws IOException { requireEnvVar("GOOGLE_CLOUD_PROJECT"); - - // TODO(b/424365799): Uncomment below code once the mentioned issue is resolved - // requireEnvVar("MA_FOLDER_ID"); - // requireEnvVar("MA_ORG_ID"); + requireEnvVar("MA_FOLDER_ID"); + requireEnvVar("MA_ORG_ID"); projectFloorSettingName = FloorSettingName.ofProjectLocationName(PROJECT_ID, "global").toString(); @@ -169,11 +167,10 @@ private static String randomId() { @AfterClass public static void afterAll() throws IOException { requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("MA_FOLDER_ID"); + requireEnvVar("MA_ORG_ID"); - // TODO(b/424365799): Uncomment below code once the mentioned issue is resolved - // requireEnvVar("MA_FOLDER_ID"); - // requireEnvVar("MA_ORG_ID"); - // resetFloorSettings(); + resetFloorSettings(); // Delete templates after running tests. templateToDelete = new String[] { @@ -431,37 +428,30 @@ private static void resetFloorSettings() throws IOException { } // Tests for Folder setting snippets. - // TODO(b/424365799): Enable below tests once the mentioned issue is resolved - - @Ignore @Test public void testGetOrganizationFloorSetting() throws IOException { GetOrganizationFloorSetting.getOrganizationFloorSetting(ORGANIZATION_ID); assertThat(stdOut.toString()).contains("Fetched floor setting for organization:"); } - @Ignore @Test public void testGetFolderFloorSetting() throws IOException { GetFolderFloorSetting.getFolderFloorSetting(FOLDER_ID); assertThat(stdOut.toString()).contains("Fetched floor setting for folder:"); } - @Ignore @Test public void testGetProjectFloorSetting() throws IOException { GetProjectFloorSetting.getProjectFloorSetting(PROJECT_ID); assertThat(stdOut.toString()).contains("Fetched floor setting for project:"); } - @Ignore @Test public void testUpdateOrganizationFloorSetting() throws IOException { UpdateOrganizationsFloorSetting.updateOrganizationFloorSetting(ORGANIZATION_ID); assertThat(stdOut.toString()).contains("Updated floor setting for organization:"); } - @Ignore @Test public void testUpdateFolderFloorSetting() throws IOException { UpdateFolderFloorSetting.updateFolderFloorSetting(FOLDER_ID); @@ -469,7 +459,6 @@ public void testUpdateFolderFloorSetting() throws IOException { } - @Ignore @Test public void testUpdateProjectFloorSetting() throws IOException { UpdateProjectFloorSetting.updateProjectFloorSetting(PROJECT_ID);