Example #1
0
        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"));
            }
        }
Example #2
0
        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>());
            }
        }
Example #3
0
        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"));
            }
        }