iam/api/CustomRolesTest/CustomRolesTest.cs (58 lines of code) (raw):

// Copyright 2018 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. using Google; using System; using System.Collections.Generic; using System.Net; using Xunit; namespace GoogleCloudSamples { public class CustomRolesTest { private readonly string _project; private readonly string _name; private readonly string _title; private readonly string _description; private readonly List<string> _permissions; private readonly string _stage; public CustomRolesTest() { _project = Environment.GetEnvironmentVariable( "GOOGLE_PROJECT_ID"); _name = "csharpTestCustomRole" + new Random().Next(); _title = "C# Test Custom Role"; _description = "This is a C# test custom role."; _permissions = new List<string> { "iam.roles.get" }; _stage = "GA"; } [Fact] public void TestGrantableRoles() { CustomRoles.ViewGrantableRoles( "//cloudresourcemanager.googleapis.com/projects/" + _project); } [Fact] public void TestRoleInfo() { CustomRoles.QueryTestablePermissions( "//cloudresourcemanager.googleapis.com/projects/" + _project); CustomRoles.GetRole("roles/appengine.appViewer"); } [SkippableFact] public void TestCustomRole() { try { CustomRoles.CreateRole(_name, _project, _title, _description, _permissions, _stage); } catch (GoogleApiException ex) when (ex.HttpStatusCode == HttpStatusCode.TooManyRequests && ex.Error.Message.Contains("Maximum number of roles reached")) { Skip.If(true, "Maximum number of roles reached."); throw; // We should never throw here (Skip throws), but we need to make the compiler happy. } CustomRoles.ListRoles(_project); CustomRoles.EditRole(_name, _project, _title, "Updated C# description.", _permissions, _stage); CustomRoles.DeleteRole(_name, _project); CustomRoles.UndeleteRole(_name, _project); CustomRoles.DeleteRole(_name, _project); } } }