コード例 #1
0
        public async Task CanAssign_should_throw_exception_if_contributor_id_is_null()
        {
            var command = new AssignContributor();

            await ValidationAssert.ThrowsAsync(() => GuardAppContributors.CanAssign(command, App(contributors_0), users, appPlan),
                                               new ValidationError("Contributor ID or email is required.", "ContributorId"));
        }
コード例 #2
0
        public Task CanAssign_should_throw_exception_if_contributor_id_is_null()
        {
            var command = new AssignContributor();

            return(ValidationAssert.ThrowsAsync(() => GuardAppContributors.CanAssign(contributors_0, command, users, appPlan, roles),
                                                new ValidationError("Contributor id is required.", "ContributorId")));
        }
コード例 #3
0
        public Task CanAssign_should_throw_exception_if_user_not_found()
        {
            var command = new AssignContributor {
                ContributorId = "notfound", Role = Role.Owner
            };

            return(Assert.ThrowsAsync <DomainObjectNotFoundException>(() => GuardAppContributors.CanAssign(contributors_0, command, users, appPlan, roles)));
        }
コード例 #4
0
        public Task CanAssign_should_throw_exception_if_permission_not_valid()
        {
            var command = new AssignContributor {
                ContributorId = "1", Permission = (AppContributorPermission)10
            };

            return(Assert.ThrowsAsync <ValidationException>(() => GuardAppContributors.CanAssign(contributors_0, command, users, appPlan)));
        }
コード例 #5
0
        public Task CanAssign_should_throw_exception_if_user_is_actor()
        {
            var command = new AssignContributor {
                ContributorId = "3", Role = Role.Editor, Actor = new RefToken("user", "3")
            };

            return(Assert.ThrowsAsync <DomainForbiddenException>(() => GuardAppContributors.CanAssign(contributors_0, command, users, appPlan, roles)));
        }
コード例 #6
0
        public Task CanAssign_should_not_throw_exception_if_user_found()
        {
            var command = new AssignContributor {
                ContributorId = "1"
            };

            return(GuardAppContributors.CanAssign(contributors_0, command, users, appPlan, roles));
        }
コード例 #7
0
        public Task CanAssign_should_throw_exception_if_user_is_actor()
        {
            var command = new AssignContributor {
                ContributorId = "3", Permission = AppContributorPermission.Editor, Actor = new RefToken("user", "3")
            };

            return(Assert.ThrowsAsync <SecurityException>(() => GuardAppContributors.CanAssign(contributors_0, command, users, appPlan)));
        }
コード例 #8
0
        public Task CanAssign_should_throw_exception_if_role_not_valid()
        {
            var command = new AssignContributor {
                ContributorId = "1", Role = "Invalid"
            };

            return(ValidationAssert.ThrowsAsync(() => GuardAppContributors.CanAssign(contributors_0, command, users, appPlan, roles),
                                                new ValidationError("Role is not a valid value.", "Role")));
        }
コード例 #9
0
        public Task CanAssign_should_not_throw_exception_if_contributor_has_another_role()
        {
            var command = new AssignContributor {
                ContributorId = "1", Role = Role.Developer
            };

            var contributors_1 = contributors_0.Assign("1", Role.Editor);

            return(GuardAppContributors.CanAssign(contributors_1, command, users, appPlan, roles));
        }
コード例 #10
0
        public async Task CanAssign_assign_if_if_user_added_by_email()
        {
            var command = new AssignContributor {
                ContributorId = "*****@*****.**"
            };

            await GuardAppContributors.CanAssign(contributors_0, command, users, appPlan, roles);

            Assert.Equal("1", command.ContributorId);
        }
コード例 #11
0
        public async Task CanAssign_should_not_throw_exception_if_user_already_exists_with_some_role_but_is_from_restore()
        {
            var command = new AssignContributor {
                ContributorId = "1", Role = Role.Owner, Restoring = true
            };

            var contributors_1 = contributors_0.Assign("1", Role.Owner);

            await GuardAppContributors.CanAssign(contributors_1, roles, command, users, appPlan);
        }
コード例 #12
0
        public async Task CanAssign_should_not_throw_exception_if_user_already_exists_with_same_role()
        {
            var command = new AssignContributor {
                ContributorId = "1", Role = Role.Owner
            };

            var contributors_1 = contributors_0.Assign("1", Role.Owner);

            await GuardAppContributors.CanAssign(command, App(contributors_1), users, appPlan);
        }
コード例 #13
0
        public async Task CanAssign_should_not_throw_exception_if_contributor_has_another_role()
        {
            var command = new AssignContributor {
                ContributorId = "1"
            };

            var contributors_1 = contributors_0.Assign("1", Role.Developer);

            await GuardAppContributors.CanAssign(contributors_1, roles, command, users, appPlan);
        }
コード例 #14
0
        public Task CanAssign_should_not_throw_exception_if_contributor_has_another_permission()
        {
            var command = new AssignContributor {
                ContributorId = "1"
            };

            var contributors_1 = contributors_0.Assign("1", AppContributorPermission.Editor);

            return(GuardAppContributors.CanAssign(contributors_1, command, users, appPlan));
        }
コード例 #15
0
        public Task CanAssign_should_throw_exception_if_user_already_exists_with_same_permission()
        {
            var command = new AssignContributor {
                ContributorId = "1"
            };

            var contributors_1 = contributors_0.Assign("1", AppContributorPermission.Owner);

            return(Assert.ThrowsAsync <ValidationException>(() => GuardAppContributors.CanAssign(contributors_1, command, users, appPlan)));
        }
コード例 #16
0
        public async Task CanAssign_should_not_throw_exception_if_user_found()
        {
            A.CallTo(() => appPlan.MaxContributors)
            .Returns(-1);

            var command = new AssignContributor {
                ContributorId = "1"
            };

            await GuardAppContributors.CanAssign(contributors_0, roles, command, users, appPlan);
        }
コード例 #17
0
        public Task CanAssign_should_throw_exception_if_user_already_exists_with_same_role()
        {
            var command = new AssignContributor {
                ContributorId = "1", Role = Role.Owner
            };

            var contributors_1 = contributors_0.Assign("1", Role.Owner);

            return(ValidationAssert.ThrowsAsync(() => GuardAppContributors.CanAssign(contributors_1, command, users, appPlan, roles),
                                                new ValidationError("Contributor has already this role.", "Role")));
        }
コード例 #18
0
        public Task CanAssign_should_throw_exception_if_user_not_found()
        {
            A.CallTo(() => users.FindByIdAsync(A <string> .Ignored))
            .Returns(Task.FromResult <IUser>(null));

            var command = new AssignContributor {
                ContributorId = "1", Permission = (AppContributorPermission)10
            };

            return(Assert.ThrowsAsync <ValidationException>(() => GuardAppContributors.CanAssign(contributors_0, command, users, appPlan)));
        }
コード例 #19
0
        public Task CanAssign_should_not_throw_exception_if_contributor_max_reached_but_role_changed()
        {
            A.CallTo(() => appPlan.MaxContributors)
            .Returns(2);

            var command = new AssignContributor {
                ContributorId = "1", Role = Role.Developer
            };

            var contributors_1 = contributors_0.Assign("1", Role.Editor);
            var contributors_2 = contributors_1.Assign("2", Role.Editor);

            return(GuardAppContributors.CanAssign(contributors_2, command, users, appPlan, roles));
        }
コード例 #20
0
        public Task CanAssign_should_throw_exception_if_contributor_max_reached()
        {
            A.CallTo(() => appPlan.MaxContributors)
            .Returns(2);

            var command = new AssignContributor {
                ContributorId = "3"
            };

            var contributors_1 = contributors_0.Assign("1", AppContributorPermission.Owner);
            var contributors_2 = contributors_1.Assign("2", AppContributorPermission.Editor);

            return(Assert.ThrowsAsync <ValidationException>(() => GuardAppContributors.CanAssign(contributors_2, command, users, appPlan)));
        }
コード例 #21
0
        public async Task CanAssign_should_not_throw_exception_if_contributor_max_reached_but_from_restore()
        {
            A.CallTo(() => appPlan.MaxContributors)
            .Returns(2);

            var command = new AssignContributor {
                ContributorId = "3", Restoring = true
            };

            var contributors_1 = contributors_0.Assign("1", Role.Editor);
            var contributors_2 = contributors_1.Assign("2", Role.Editor);

            await GuardAppContributors.CanAssign(contributors_2, roles, command, users, appPlan);
        }
コード例 #22
0
        public async Task CanAssign_should_not_throw_exception_if_contributor_max_reached_but_role_changed()
        {
            A.CallTo(() => appPlan.MaxContributors)
            .Returns(2);

            var command = new AssignContributor {
                ContributorId = "1"
            };

            var contributors_1 = contributors_0.Assign("1", Role.Developer);
            var contributors_2 = contributors_1.Assign("2", Role.Developer);

            await GuardAppContributors.CanAssign(command, App(contributors_2), users, appPlan);
        }
コード例 #23
0
        public Task CanAssign_should_throw_exception_if_contributor_max_reached()
        {
            A.CallTo(() => appPlan.MaxContributors)
            .Returns(2);

            var command = new AssignContributor {
                ContributorId = "3"
            };

            var contributors_1 = contributors_0.Assign("1", Role.Owner);
            var contributors_2 = contributors_1.Assign("2", Role.Editor);

            return(ValidationAssert.ThrowsAsync(() => GuardAppContributors.CanAssign(contributors_2, command, users, appPlan, roles),
                                                new ValidationError("You have reached the maximum number of contributors for your plan.")));
        }
コード例 #24
0
        public Task CanAssign_should_throw_exception_if_contributor_id_is_null()
        {
            var command = new AssignContributor();

            return(Assert.ThrowsAsync <ValidationException>(() => GuardAppContributors.CanAssign(contributors_0, command, users, appPlan)));
        }