示例#1
0
        private static async Task TestRuleMethods(ManagementApiClient apiClient)
        {
            // Create a new rule
            var newRuleRequest = new RuleCreateRequest
            {
                Name   = "New rule",
                Script = @"function (user, context, callback) {
                              // TODO: implement your rule
                              callback(null, user, context);
                            }"
            };
            var newRule = await apiClient.Rules.CreateAsync(newRuleRequest);

            // Get a single rule
            var rule = await apiClient.Rules.GetAsync(newRule.Id);

            // Get all rules
            var rules = await apiClient.Rules.GetAllAsync();

            // Update a rule
            var updateRuleRequest = new RuleUpdateRequest
            {
                Name = "Updated rule"
            };
            var updatedRule = await apiClient.Rules.UpdateAsync(newRule.Id, updateRuleRequest);

            // Delete a rule
            await apiClient.Rules.DeleteAsync(newRule.Id);
        }
示例#2
0
        public async Task Test_rules_crud_sequence()
        {
            var scopes = new
            {
                rules = new
                {
                    actions = new string[] { "read", "create", "delete", "update" }
                }
            };

            string token = GenerateToken(scopes);

            var apiClient = new ManagementApiClient(token, new Uri(GetVariable("AUTH0_MANAGEMENT_API_URL")));

            // Get all rules
            var rulesBefore = await apiClient.Rules.GetAllAsync();

            // Add a new rule
            var newRuleRequest = new RuleCreateRequest
            {
                Name   = $"integration-test-rule-{Guid.NewGuid().ToString("N")}",
                Script = @"function (user, context, callback) {
                              // TODO: implement your rule
                              callback(null, user, context);
                            }"
            };
            var newRuleResponse = await apiClient.Rules.CreateAsync(newRuleRequest);

            newRuleResponse.Should().NotBeNull();
            newRuleResponse.Name.Should().Be(newRuleRequest.Name);

            // Get all the rules again, and check that we now have one more
            var rulesAfter = await apiClient.Rules.GetAllAsync();

            rulesAfter.Count.Should().Be(rulesBefore.Count + 1);

            // Update the Rule
            var updateRuleRequest = new RuleUpdateRequest
            {
                Name = $"integration-test-rule-{Guid.NewGuid().ToString("N")}"
            };
            var updateRuleResponse = await apiClient.Rules.UpdateAsync(newRuleResponse.Id, updateRuleRequest);

            updateRuleResponse.Should().NotBeNull();
            updateRuleResponse.Name.Should().Be(updateRuleRequest.Name);

            // Get a single rule
            var rule = await apiClient.Rules.GetAsync(newRuleResponse.Id);

            rule.Should().NotBeNull();
            rule.Name.Should().Be(updateRuleRequest.Name);

            // Delete the rule, and ensure we get exception when trying to fetch it again
            await apiClient.Rules.DeleteAsync(rule.Id);

            Func <Task> getFunc = async() => await apiClient.Rules.GetAsync(rule.Id);

            getFunc.ShouldThrow <ApiException>().And.ApiError.ErrorCode.Should().Be("inexistent_rule");
        }
示例#3
0
        public async Task Test_rules_crud_sequence()
        {
            // Get all rules
            var rulesBefore = await _apiClient.Rules.GetAllAsync(new GetRulesRequest(), new PaginationInfo());

            // Add a new rule
            var newRuleRequest = new RuleCreateRequest
            {
                Name   = $"integration-test-rule-{Guid.NewGuid():N}",
                Script = @"function (user, context, callback) {
                              // TODO: implement your rule
                              callback(null, user, context);
                            }"
            };
            var newRuleResponse = await _apiClient.Rules.CreateAsync(newRuleRequest);

            newRuleResponse.Should().NotBeNull();
            newRuleResponse.Name.Should().Be(newRuleRequest.Name);

            // Get all the rules again, and check that we now have one more
            var rulesAfter = await _apiClient.Rules.GetAllAsync(new GetRulesRequest(), new PaginationInfo());

            rulesAfter.Count.Should().Be(rulesBefore.Count + 1);

            // Update the Rule
            var updateRuleRequest = new RuleUpdateRequest
            {
                Name = $"integration-test-rule-{Guid.NewGuid():N}"
            };
            var updateRuleResponse = await _apiClient.Rules.UpdateAsync(newRuleResponse.Id, updateRuleRequest);

            updateRuleResponse.Should().NotBeNull();
            updateRuleResponse.Name.Should().Be(updateRuleRequest.Name);

            // Get a single rule
            var rule = await _apiClient.Rules.GetAsync(newRuleResponse.Id);

            rule.Should().NotBeNull();
            rule.Name.Should().Be(updateRuleRequest.Name);

            // Delete the rule, and ensure we get exception when trying to fetch it again
            await _apiClient.Rules.DeleteAsync(rule.Id);

            Func <Task> getFunc = async() => await _apiClient.Rules.GetAsync(rule.Id);

            getFunc.Should().Throw <ApiException>().And.ApiError.ErrorCode.Should().Be("inexistent_rule");
        }
示例#4
0
 /// <summary>
 /// Creates a new rule according to the request.
 /// </summary>
 /// <param name="request">The <see cref="RuleCreateRequest" /> containing the details of the rule to create.</param>
 /// <returns>The newly created <see cref="Rule" />.</returns>
 public Task <Rule> CreateAsync(RuleCreateRequest request)
 {
     return(Connection.PostAsync <Rule>("rules", request, null, null, null, null, null));
 }
示例#5
0
 /// <summary>
 /// Creates a new rule according to the request.
 /// </summary>
 /// <param name="request">The <see cref="RuleCreateRequest" /> containing the details of the rule to create.</param>
 /// <returns>The newly created <see cref="Rule" />.</returns>
 public Task <Rule> CreateAsync(RuleCreateRequest request)
 {
     return(Connection.SendAsync <Rule>(HttpMethod.Post, BuildUri("rules"), request, DefaultHeaders));
 }
示例#6
0
 public Task <Rule> Create(RuleCreateRequest request)
 {
     return(CreateAsync(request));
 }