public async Task UpdateAsync_UserRole() { using (var env = new TestEnvironment()) { env.SetUser("user01", SystemRoles.User); env.JsonApiContext.AttributesToUpdate.Returns(new Dictionary <AttrAttribute, object> { { env.GetAttribute("project-name"), "new" } }); env.JsonApiContext.RelationshipsToUpdate.Returns(new Dictionary <RelationshipAttribute, object>()); var resource = new SFProjectResource { Id = "project02", ProjectName = "new" }; var ex = Assert.ThrowsAsync <JsonApiException>(async() => { await env.Service.UpdateAsync(resource.Id, resource); }); Assert.That(ex.GetStatusCode(), Is.EqualTo(StatusCodes.Status403Forbidden)); resource.Id = "project01"; SFProjectResource updatedResource = await env.Service.UpdateAsync(resource.Id, resource); Assert.That(updatedResource, Is.Not.Null); Assert.That(updatedResource.ProjectName, Is.EqualTo("new")); } }
public async Task UpdateAsync_EnableTranslate_NoSideEffects() { using (var env = new TestEnvironment()) { env.SetUser("user01", SystemRoles.User); env.JsonApiContext.AttributesToUpdate.Returns(new Dictionary <AttrAttribute, object> { { env.GetAttribute("translate-config"), new TranslateConfig { Enabled = true } } }); env.JsonApiContext.RelationshipsToUpdate.Returns(new Dictionary <RelationshipAttribute, object>()); var resource = new SFProjectResource { Id = "project01", TranslateConfig = new TranslateConfig { Enabled = true } }; SFProjectResource updatedResource = await env.Service.UpdateAsync(resource.Id, resource); Assert.That(updatedResource, Is.Not.Null); Assert.That(updatedResource.TranslateConfig.Enabled, Is.True); SyncJobEntity runningJob = await env.Jobs.GetAsync("job01"); Assert.That(runningJob, Is.Not.Null); var jobs = await env.Jobs.GetAllAsync(); Assert.That(jobs.Count, Is.EqualTo(1)); env.BackgroundJobClient.DidNotReceive().ChangeState(Arg.Any <string>(), Arg.Any <Hangfire.States.IState>(), Arg.Any <string>()); } }
public async Task UpdateAsync_SystemAdminRole() { using (var env = new TestEnvironment()) { env.SetUser("user01", SystemRoles.SystemAdmin); env.JsonApiContext.AttributesToUpdate.Returns(new Dictionary <AttrAttribute, object> { { env.GetAttribute("project-name"), "new" } }); env.JsonApiContext.RelationshipsToUpdate.Returns(new Dictionary <RelationshipAttribute, object>()); var resource = new SFProjectResource { Id = "project02", ProjectName = "new" }; SFProjectResource updatedResource = await env.Service.UpdateAsync(resource.Id, resource); Assert.That(updatedResource, Is.Not.Null); Assert.That(updatedResource.ProjectName, Is.EqualTo("new")); } }