public void DeleteDefaultPermissionAsyncTest()
        {
            var svc = GetService();

            var projectId    = "project luid";
            var resourceType = ResourceType.Workbook;

            var granteeType = GranteeType.Group;
            var granteeId   = "group luid";

            var capabilityName = CapabilityName.Write;
            var capabilityMode = CapabilityMode.Allow;

            var permission = TableauPermissionService.BuildDefaultPermission(
                granteeType, granteeId, capabilityName, capabilityMode
                );

            Assert.DoesNotThrowAsync(
                async() => await svc.DeleteDefaultPermissionAsync(projectId, resourceType, permission)
                );
        }
        public void DeletePermissionAsync()
        {
            var svc = GetService();

            var resourceType = ResourceType.Project;
            var resourceId   = "project luid";

            var granteeType = GranteeType.Group;
            var granteeId   = "group luid";

            var capabilityName = CapabilityName.ProjectLeader;
            var capabilityMode = CapabilityMode.Allow;

            var permission = TableauPermissionService.BuildPermission(
                resourceType, resourceId, granteeType, granteeId, capabilityName, capabilityMode
                );

            Assert.DoesNotThrowAsync(async() => await svc.DeletePermissionAsync(permission));

            // caching prevents instant verification
            // var projects = await svc.GetProjectsAsync();
            // Assert.That(!projects.Any(p => p.Id.Equals(projectId, StringComparison.OrdinalIgnoreCase)));
        }
        public async Task AddDefaultPermissionAsyncTest()
        {
            var svc = GetService();

            var projectId    = "project luid";
            var resourceType = ResourceType.Workbook;

            var granteeType = GranteeType.Group;
            var granteeId   = "group luid";

            var capabilityName = CapabilityName.Write;
            var capabilityMode = CapabilityMode.Allow;

            var permission = TableauPermissionService.BuildDefaultPermission(
                granteeType, granteeId, capabilityName, capabilityMode
                );

            permission = await svc.AddDefaultPermissionAsync(projectId, resourceType, permission);

            Assert.IsNotNull(permission);

            Console.WriteLine(JsonConvert.SerializeObject(permission));
        }