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); } }
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")); } }
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)); } }
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)); } }