2828import com .google .cloud .modelarmor .v1 .FilterConfig ;
2929import com .google .cloud .modelarmor .v1 .FilterMatchState ;
3030import com .google .cloud .modelarmor .v1 .FilterResult ;
31+ import com .google .cloud .modelarmor .v1 .FloorSetting ;
32+ import com .google .cloud .modelarmor .v1 .FloorSettingName ;
3133import com .google .cloud .modelarmor .v1 .LocationName ;
3234import com .google .cloud .modelarmor .v1 .MaliciousUriFilterSettings ;
3335import com .google .cloud .modelarmor .v1 .MaliciousUriFilterSettings .MaliciousUriFilterEnforcement ;
4648import com .google .cloud .modelarmor .v1 .SdpFinding ;
4749import com .google .cloud .modelarmor .v1 .Template ;
4850import com .google .cloud .modelarmor .v1 .TemplateName ;
51+ import com .google .cloud .modelarmor .v1 .UpdateFloorSettingRequest ;
4952import com .google .privacy .dlp .v2 .CreateDeidentifyTemplateRequest ;
5053import com .google .privacy .dlp .v2 .CreateInspectTemplateRequest ;
5154import com .google .privacy .dlp .v2 .DeidentifyConfig ;
7275import org .junit .AfterClass ;
7376import org .junit .Before ;
7477import org .junit .BeforeClass ;
78+ import org .junit .Ignore ;
7579import org .junit .Test ;
7680import org .junit .runner .RunWith ;
7781import org .junit .runners .JUnit4 ;
8084public class SnippetsIT {
8185
8286 private static final String PROJECT_ID = System .getenv ("GOOGLE_CLOUD_PROJECT" );
87+ private static final String FOLDER_ID = System .getenv ()
88+ .getOrDefault ("MA_FOLDER_ID" , "global" );
89+ private static final String ORGANIZATION_ID = System .getenv ()
90+ .getOrDefault ("MA_ORG_ID" , "global" );
8391 private static final String LOCATION_ID = System .getenv ()
8492 .getOrDefault ("GOOGLE_CLOUD_PROJECT_LOCATION" , "us-central1" );
8593 private static final String MA_ENDPOINT = String .format ("modelarmor.%s.rep.googleapis.com:443" ,
@@ -99,7 +107,11 @@ public class SnippetsIT {
99107 private static String TEST_DEIDENTIFY_TEMPLATE_NAME ;
100108 private ByteArrayOutputStream stdOut ;
101109 private PrintStream originalOut ;
110+ private static String [] floorSettingNames ;
102111 private static String [] templateToDelete ;
112+ private static String projectFloorSettingName ;
113+ private static String folderFloorSettingName ;
114+ private static String organizationFloorSettingName ;
103115
104116 // Check if the required environment variables are set.
105117 private static void requireEnvVar (String varName ) {
@@ -111,6 +123,14 @@ private static void requireEnvVar(String varName) {
111123 @ BeforeClass
112124 public static void beforeAll () throws IOException {
113125 requireEnvVar ("GOOGLE_CLOUD_PROJECT" );
126+ requireEnvVar ("MA_FOLDER_ID" );
127+ requireEnvVar ("MA_ORG_ID" );
128+
129+ projectFloorSettingName =
130+ FloorSettingName .ofProjectLocationName (PROJECT_ID , "global" ).toString ();
131+ folderFloorSettingName = FloorSettingName .ofFolderLocationName (FOLDER_ID , "global" ).toString ();
132+ organizationFloorSettingName =
133+ FloorSettingName .ofOrganizationLocationName (ORGANIZATION_ID , "global" ).toString ();
114134
115135 TEST_TEMPLATE_ID = randomId ();
116136 TEST_RAI_TEMPLATE_ID = randomId ();
@@ -147,6 +167,10 @@ private static String randomId() {
147167 @ AfterClass
148168 public static void afterAll () throws IOException {
149169 requireEnvVar ("GOOGLE_CLOUD_PROJECT" );
170+ requireEnvVar ("MA_FOLDER_ID" );
171+ requireEnvVar ("MA_ORG_ID" );
172+
173+ resetFloorSettings ();
150174
151175 // Delete templates after running tests.
152176 templateToDelete = new String [] {
@@ -380,6 +404,67 @@ private static void deleteTemplate(String templateId) throws IOException {
380404 }
381405 }
382406
407+ private static void resetFloorSettings () throws IOException {
408+ floorSettingNames = new String [] {
409+ projectFloorSettingName , folderFloorSettingName , organizationFloorSettingName
410+ };
411+
412+
413+ try (ModelArmorClient client = ModelArmorClient .create ()) {
414+ for (String name : floorSettingNames ) {
415+ FloorSetting floorSetting = FloorSetting .newBuilder ()
416+ .setName (name )
417+ .setFilterConfig (FilterConfig .newBuilder ().build ())
418+ .setEnableFloorSettingEnforcement (false )
419+ .build ();
420+
421+ UpdateFloorSettingRequest request = UpdateFloorSettingRequest .newBuilder ()
422+ .setFloorSetting (floorSetting )
423+ .build ();
424+
425+ client .updateFloorSetting (request );
426+ }
427+ }
428+ }
429+
430+ // Tests for Folder setting snippets.
431+ @ Test
432+ public void testGetOrganizationFloorSetting () throws IOException {
433+ GetOrganizationFloorSetting .getOrganizationFloorSetting (ORGANIZATION_ID );
434+ assertThat (stdOut .toString ()).contains ("Fetched floor setting for organization:" );
435+ }
436+
437+ @ Test
438+ public void testGetFolderFloorSetting () throws IOException {
439+ GetFolderFloorSetting .getFolderFloorSetting (FOLDER_ID );
440+ assertThat (stdOut .toString ()).contains ("Fetched floor setting for folder:" );
441+ }
442+
443+ @ Test
444+ public void testGetProjectFloorSetting () throws IOException {
445+ GetProjectFloorSetting .getProjectFloorSetting (PROJECT_ID );
446+ assertThat (stdOut .toString ()).contains ("Fetched floor setting for project:" );
447+ }
448+
449+ @ Test
450+ public void testUpdateOrganizationFloorSetting () throws IOException {
451+ UpdateOrganizationsFloorSetting .updateOrganizationFloorSetting (ORGANIZATION_ID );
452+ assertThat (stdOut .toString ()).contains ("Updated floor setting for organization:" );
453+ }
454+
455+ @ Test
456+ public void testUpdateFolderFloorSetting () throws IOException {
457+ UpdateFolderFloorSetting .updateFolderFloorSetting (FOLDER_ID );
458+ assertThat (stdOut .toString ()).contains ("Updated floor setting for folder:" );
459+ }
460+
461+
462+ @ Test
463+ public void testUpdateProjectFloorSetting () throws IOException {
464+ UpdateProjectFloorSetting .updateProjectFloorSetting (PROJECT_ID );
465+ assertThat (stdOut .toString ()).contains ("Updated floor setting for project:" );
466+ }
467+
383468 // Tests for Template CRUD snippets.
384469 @ Test
385470 public void testUpdateModelArmorTemplate () throws IOException {
0 commit comments