コード例 #1
0
ファイル: RulesTests.cs プロジェクト: damienspivak/auth0.net
        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.GetAll();

            // 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.Create(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.GetAll();
            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.Update(newRuleResponse.Id, updateRuleRequest);
            updateRuleResponse.Should().NotBeNull();
            updateRuleResponse.Name.Should().Be(updateRuleRequest.Name);

            // Get a single rule
            var rule = await apiClient.Rules.Get(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.Delete(rule.Id);
            Func<Task> getFunc = async () => await apiClient.Rules.Get(rule.Id);
            getFunc.ShouldThrow<ApiException>().And.ApiError.ErrorCode.Should().Be("inexistent_rule");
        }
コード例 #2
0
ファイル: RulesClient.cs プロジェクト: jerriep/auth0.net
 /// <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);
 }
コード例 #3
0
ファイル: RulesClient.cs プロジェクト: jerriep/auth0.net
 public Task<Rule> Create(RuleCreateRequest request)
 {
     return CreateAsync(request);
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: jerriep/auth0.net
        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);
        }