コード例 #1
0
        public async Task CreateAsync_SystemAdminRoleDifferentUser()
        {
            using (var env = new TestEnvironment())
            {
                env.SetUser("user02", SystemRoles.SystemAdmin);
                env.ParatextService.TryGetProjectRoleAsync(Arg.Any <UserEntity>(), "pt01")
                .Returns(Task.FromResult(Attempt.Success(SFProjectRoles.Administrator)));

                Assert.That(env.ContainsProjectUser("projectusernew"), Is.False);

                var projectUser = new SFProjectUserResource
                {
                    Id         = "projectusernew",
                    ProjectRef = "project01",
                    Project    = new SFProjectResource {
                        Id = "project01"
                    },
                    UserRef = "user03",
                    User    = new UserResource {
                        Id = "user03"
                    }
                };
                SFProjectUserResource newProjectUser = await env.Service.CreateAsync(projectUser);

                Assert.That(newProjectUser, Is.Not.Null);
                Assert.That(newProjectUser.Id, Is.EqualTo("projectusernew"));
                Assert.That(newProjectUser.ProjectRef, Is.EqualTo("project01"));
                Assert.That(newProjectUser.UserRef, Is.EqualTo("user03"));
                Assert.That(env.ContainsProjectUser("projectusernew"), Is.True);
            }
        }
コード例 #2
0
        public async Task UpdateAsync_SystemAdminRoleDifferentUser()
        {
            using (var env = new TestEnvironment())
            {
                env.SetUser("user02", SystemRoles.SystemAdmin);
                var newConfig = new TranslateProjectUserConfig {
                    SelectedTextRef = "text02"
                };
                env.JsonApiContext.AttributesToUpdate.Returns(new Dictionary <AttrAttribute, object>
                {
                    { env.GetAttribute("translate-config"), newConfig }
                });
                env.JsonApiContext.RelationshipsToUpdate.Returns(new Dictionary <RelationshipAttribute, object>());

                var projectUser = new SFProjectUserResource
                {
                    Id = "projectuser01",
                    TranslateConfig = newConfig
                };
                SFProjectUserResource updatedProjectUser = await env.Service.UpdateAsync(projectUser.Id, projectUser);

                Assert.That(updatedProjectUser, Is.Not.Null);
                Assert.That(updatedProjectUser.TranslateConfig.SelectedTextRef, Is.EqualTo("text02"));
            }
        }
コード例 #3
0
        public void CreateAsync_UserRoleDifferentUser()
        {
            using (var env = new TestEnvironment())
            {
                env.SetUser("user02", SystemRoles.User);
                env.ParatextService.TryGetProjectRoleAsync(Arg.Any <UserEntity>(), "pt01")
                .Returns(Task.FromResult(Attempt.Success(SFProjectRoles.Administrator)));

                Assert.That(env.ContainsProjectUser("projectusernew"), Is.False);

                var projectUser = new SFProjectUserResource
                {
                    Id         = "projectusernew",
                    ProjectRef = "project01",
                    Project    = new SFProjectResource {
                        Id = "project01"
                    },
                    UserRef = "user03",
                    User    = new UserResource {
                        Id = "user03"
                    }
                };
                var ex = Assert.ThrowsAsync <JsonApiException>(async() =>
                {
                    await env.Service.CreateAsync(projectUser);
                });

                Assert.That(ex.GetStatusCode(), Is.EqualTo(StatusCodes.Status403Forbidden));
            }
        }
コード例 #4
0
        public void UpdateAsync_UserRoleDifferentUser()
        {
            using (var env = new TestEnvironment())
            {
                env.SetUser("user02", SystemRoles.User);
                var newConfig = new TranslateProjectUserConfig {
                    SelectedTextRef = "text02"
                };
                env.JsonApiContext.AttributesToUpdate.Returns(new Dictionary <AttrAttribute, object>
                {
                    { env.GetAttribute("translate-config"), newConfig }
                });
                env.JsonApiContext.RelationshipsToUpdate.Returns(new Dictionary <RelationshipAttribute, object>());

                var projectUser = new SFProjectUserResource
                {
                    Id = "projectuser01",
                    TranslateConfig = newConfig
                };
                var ex = Assert.ThrowsAsync <JsonApiException>(async() =>
                {
                    await env.Service.UpdateAsync(projectUser.Id, projectUser);
                });

                Assert.That(ex.GetStatusCode(), Is.EqualTo(StatusCodes.Status403Forbidden));
            }
        }