public async Task UpdateProjectChangeMessagesConfiguration()
        {
            var predefinedMessageConfiguration = new MessagesConfigurationDraft
            {
                Enabled = true,
                DeleteDaysAfterCreation = 15
            };
            var newMessageConfiguration = new MessagesConfigurationDraft
            {
                Enabled = true,
                DeleteDaysAfterCreation = 30
            };

            await WithCurrentProject(client,
                                     project => SetMessageConfiguration(project, predefinedMessageConfiguration),
                                     async project =>
            {
                Assert.NotNull(project);
                Assert.Equal(predefinedMessageConfiguration.DeleteDaysAfterCreation,
                             project.Messages.DeleteDaysAfterCreation);

                var action = new ChangeMessagesConfigurationUpdateAction
                {
                    MessagesConfiguration = newMessageConfiguration
                };

                var updatedProject = await
                                     TryToUpdateCurrentProject(client, project, action.ToList());

                Assert.Equal(newMessageConfiguration.DeleteDaysAfterCreation,
                             updatedProject.Messages.DeleteDaysAfterCreation);

                // then undo this change again
                action = new ChangeMessagesConfigurationUpdateAction
                {
                    MessagesConfiguration = predefinedMessageConfiguration
                };
                var projectWithOriginalMessageConfiguration = await
                                                              TryToUpdateCurrentProject(client, project, action.ToList());

                Assert.Equal(predefinedMessageConfiguration.DeleteDaysAfterCreation,
                             projectWithOriginalMessageConfiguration.Messages.DeleteDaysAfterCreation);
            });
        }
        public static List <UpdateAction <Project> > SetMessageConfiguration(Project project, MessagesConfigurationDraft messagesConfiguration)
        {
            var actions = new List <UpdateAction <Project> >();

            actions.AddUpdate(new ChangeMessagesConfigurationUpdateAction
            {
                MessagesConfiguration = messagesConfiguration
            });
            return(actions);
        }