public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace(requiredTools: ToolType.Tickets))
            {
                var customField = await client.Tickets.CustomFields.CreateAsync(test.Space.WikiName, new CustomField { Title = "Test Field", DefaultValue = "DefaultValue", IsRequired = true });

                var ticketWithDefaultValue = await client.Tickets.CreateAsync(test.Space.WikiName, new Ticket { Summary = "Ticket with Default Value" });

                ticketWithDefaultValue.CustomFields[customField.Title].ShouldBe(customField.DefaultValue);

                const string specialValue = "A Special Value";

                var ticketWithSpecifiedValue = await client.Tickets.CreateAsync(test.Space.WikiName, new Ticket { Summary = "Ticket with Default Value", CustomFields = new Dictionary <string, string> {
                                                                                                                      [customField.Title] = specialValue
                                                                                                                  } });

                ticketWithSpecifiedValue.CustomFields[customField.Title].ShouldBe(specialValue);

                var allCustomFields = await client.Tickets.CustomFields.GetAllAsync(test.Space.WikiName);

                allCustomFields.ShouldContain(c => c.Id == customField.Id);

                const string newDefaultValue = "New Default Value";

                await client.Tickets.CustomFields.UpdateAsync(test.Space.WikiName, new CustomField { Id = customField.Id, DefaultValue = newDefaultValue });

                var updatedCustomField = await client.Tickets.CustomFields.GetAsync(test.Space.WikiName, customField.Id);

                updatedCustomField.DefaultValue.ShouldBe(newDefaultValue);

                await client.Tickets.CustomFields.DeleteAsync(test.Space.WikiName, customField.Id);
            }
        }
Ejemplo n.º 2
0
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace(requiredTools: ToolType.Tickets))
            {
                var tag = new Tag {
                    Name = "New Tag"
                };

                var createdTag = await client.Tags.CreateAsync(test.Space.Id, tag);

                createdTag.ShouldNotBeNull();
                createdTag.Name.ShouldBe(tag.Name);

                const string newName = "New Name";
                await client.Tags.UpdateAsync(test.Space.WikiName,
                                              new Tag { Id = createdTag.Id, Name = newName, State = TagState.Hidden });

                var updatedTag = await client.Tags.GetAsync(test.Space.Id, createdTag.Id);

                updatedTag.Name.ShouldBe(newName);
                updatedTag.Id.ShouldBe(createdTag.Id);

                await client.Tags.DeleteAsync(test.Space.Id, updatedTag.Id);
            }
        }
Ejemplo n.º 3
0
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace(requiredTools: ToolType.Tickets))
            {
                var newTicket = new Ticket {
                    Summary = "Test Ticket", Priority = TicketPriority.Highest
                };

                var createdTicket = await client.Tickets.CreateAsync(test.Space.WikiName, newTicket);

                createdTicket.ShouldNotBeNull();
                createdTicket.Summary.ShouldBe(newTicket.Summary);
                createdTicket.Priority.ShouldBe(newTicket.Priority);

                var tag = await client.Tags.CreateAsync(test.Space.WikiName, new Tag { Name = "Test Tag" });

                await client.Tickets.UpdateAsync(test.Space.WikiName, new Ticket { Number = createdTicket.Number, Priority = TicketPriority.Lowest, Tags = new[] { tag.Name } });

                var updatedTicket = await client.Tickets.GetByNumberAsync(test.Space.WikiName, createdTicket.Number);

                updatedTicket.ShouldNotBeNull();
                updatedTicket.Summary.ShouldBe(createdTicket.Summary);
                updatedTicket.Priority.ShouldBe(TicketPriority.Lowest);

                var ticketTags = await client.Tickets.GetTicketTagsAsync(test.Space.WikiName, createdTicket.Number);

                ticketTags.Single().Name.ShouldBe(tag.Name);

                await client.Tickets.DeleteAsync(test.Space.WikiName, createdTicket.Number);
            }
        }
Ejemplo n.º 4
0
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace())
            {
                var tool = await client.Spaces.Tools.AddAsync(test.Space.WikiName, ToolType.SourceGit);

                tool.ShouldNotBeNull();
                tool.Id.ShouldNotBeNull();
                tool.ToolType.ShouldBe(ToolType.SourceGit);

                var listAll = await client.Spaces.Tools.GetAllInSpaceAsync(test.Space.WikiName);

                listAll.Count().ShouldBe(1);
                listAll.Single().Id.ShouldBe(tool.Id);

                var listRepo = await client.Spaces.Tools.GetAllRepoInSpaceAsync(test.Space.WikiName);

                listRepo.Count().ShouldBe(1);
                listRepo.Single().Id.ShouldBe(tool.Id);

                await client.Spaces.Tools.UpdateAsync(test.Space.WikiName, new Tool { Id = tool.Id, WatcherPermissions = Permissions.All });

                var updatedTool = await client.Spaces.Tools.GetAsync(test.Space.WikiName, tool.Id);

                updatedTool.WatcherPermissions.ShouldBe(Permissions.All);

                await client.Spaces.Tools.DeleteAsync(test.Space.WikiName, tool.Id);
            }
        }
Ejemplo n.º 5
0
 public async Task Execute(IAssemblaClient client)
 {
     using (var test = await client.CreateDisposableSpace("File Test Space", ToolType.Files, ToolType.Tickets))
     {
         await TestWithNoExtraData(client, test);
         await TestWithExtraData(client, test);
         await TestAttachToTicket(client, test);
     }
 }
Ejemplo n.º 6
0
        public async Task Execute(IAssemblaClient client)
        {
            var currentUser = await client.Users.GetAsync();

            using (var test = await client.CreateDisposableSpace())
            {
                var userRolesInSpace = await client.Users.UserRoles.GetAsync(test.Space.Id);

                userRolesInSpace.ShouldContain(ur => ur.UserId == currentUser.Id);
            }
        }
Ejemplo n.º 7
0
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace(requiredTools: ToolType.Tickets))
            {
                var customField = await client.Tickets.CustomFields.CreateAsync(test.Space.WikiName,
                                                                                new CustomField
                {
                    Title       = "Type",
                    IsRequired  = true,
                    Type        = CustomFieldType.List,
                    ListOptions = new[] { "Research", "Development", "Maintenance" },
                });

                var ticketWithRequiredCustomField = await client.Tickets.CreateAsync(test.Space.WikiName,
                                                                                     new Ticket
                {
                    Summary      = "Ticket with required custom field",
                    CustomFields = new Dictionary <string, string>()
                    {
                        { "Type", "Development" }
                    }
                });

                ticketWithRequiredCustomField.CustomFields[customField.Title].ShouldBe("Development");

                var customFieldwithDefault = await client.Tickets.CustomFields.CreateAsync(test.Space.WikiName,
                                                                                           new CustomField
                {
                    Title        = "TypeDefault",
                    IsRequired   = true,
                    Type         = CustomFieldType.List,
                    ListOptions  = new[] { "Research", "Development", "Maintenance" },
                    DefaultValue = "Maintenance"
                });

                var ticketWithDefaultCustomField = await client.Tickets.CreateAsync(test.Space.WikiName,
                                                                                    new Ticket
                {
                    Summary      = "Ticket with required custom field",
                    CustomFields = new Dictionary <string, string>()
                    {
                        { "Type", "Development" }
                    }
                });

                ticketWithDefaultCustomField.CustomFields[customField.Title].ShouldBe("Development");
                ticketWithDefaultCustomField.CustomFields[customFieldwithDefault.Title].ShouldBe("Maintenance");

                var allCustomFields = await client.Tickets.CustomFields.GetAllAsync(test.Space.WikiName);

                allCustomFields.ShouldContain(c => c.Id == customField.Id);
            }
        }
Ejemplo n.º 8
0
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace())
            {
                var copiedSpace = await client.Spaces.CopyAsync(test.Space.WikiName, new Space { Name = "Copied Space", WikiName = "asd" });

                copiedSpace.ShouldNotBeNull();

                var listAll = await client.Spaces.GetAllAsync();

                listAll.Count(c => c.Id == copiedSpace.Id).ShouldBe(1);

                await client.Spaces.DeleteAsync(copiedSpace.Id);
            }
        }
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace(requiredTools: ToolType.Tickets))
            {
                var ticket = await client.Tickets.CreateAsync(test.Space.WikiName, new Ticket { Summary = "Test Ticket" });

                var createdComment = await client.Tickets.Comments.CreateAsync(test.Space.WikiName, ticket.Number, new Comment { Text = "This is a comment" });

                await client.Tickets.Comments.UpdateAsync(test.Space.WikiName, ticket.Number, new Comment { Id = createdComment.Id, Text = "Updated text" });

                var updatedComment = await client.Tickets.Comments.GetAsync(test.Space.WikiName, ticket.Number, createdComment.Id);

                updatedComment.Id.ShouldBe(createdComment.Id);
                updatedComment.Text.ShouldBe("Updated text");
            }
        }
Ejemplo n.º 10
0
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace(requiredTools: ToolType.Milestones))
            {
                const string firstMilestoneName = "Test Milestone";
                const string newMilestoneName   = "Edited Milestone";

                var createdMilestone = await client.Milestones.CreateAsync(test.Space.WikiName, new Milestone { Title = firstMilestoneName });

                createdMilestone.Title.ShouldBe(firstMilestoneName);

                await client.Milestones.UpdateAsync(test.Space.WikiName, new Milestone { Id = createdMilestone.Id, Title = newMilestoneName });

                var updatedMilestone = await client.Milestones.GetAsync(test.Space.WikiName, createdMilestone.Id);

                updatedMilestone.Title.ShouldBe(newMilestoneName);
            }
        }
Ejemplo n.º 11
0
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace(requiredTools: ToolType.Tickets))
            {
                var createdTickets = new List <Ticket>();
                for (int i = 1; i <= 15; i++)
                {
                    var ticket = CreateRandomTicket(i, (TicketPriority)(i % 5) + 1);
                    createdTickets.Add(await client.Tickets.CreateAsync(test.Space.WikiName, ticket));
                }

                var noInMilestone = await client.Tickets.GetInNoMilestoneAsync(test.Space.WikiName, pageSize : 20);

                foreach (var ticket in createdTickets)
                {
                    noInMilestone.ShouldContain(i => i.Summary == ticket.Summary);
                }
            }
        }
Ejemplo n.º 12
0
        public async Task Execute(IAssemblaClient client)
        {
            var currentUser = await client.Users.GetAsync();

            _logger.LogInformation(currentUser, c => $"CURRENT: {c.Id} {c.Name} {c.Login} {c.Email}");

            var user = await client.Users.GetAsync(currentUser.Login);

            user.Login.ShouldBe(currentUser.Login);
            user.Name.ShouldBe(currentUser.Name);

            var picture = await client.Users.GetPictyreAsync(currentUser.Id);

            _logger.LogInformation($"Retrieved {picture.Length} bytes");

            using (var test = await client.CreateDisposableSpace())
            {
                var usersInSpace = await client.Users.GetInSpaceAsync(test.Space.Id);

                usersInSpace.ShouldContain(u => u.Id == currentUser.Id);
            }
        }
Ejemplo n.º 13
0
        public async Task Execute(IAssemblaClient client)
        {
            using (var test = await client.CreateDisposableSpace(requiredTools: ToolType.Tickets))
            {
                var createdClosedStatus = await client.Tickets.Statuses.CreateAsync(test.Space.WikiName, new TicketStatus { Name = "Duplicate", State = TicketState.Closed });

                var createdOpenStatus = await client.Tickets.Statuses.CreateAsync(test.Space.WikiName, new TicketStatus { Name = "Waiting for External", State = TicketState.Open });

                var existingStatuses = await client.Tickets.Statuses.GetAllAsync(test.Space.WikiName);

                existingStatuses.ShouldContain(c => c.Id == createdClosedStatus.Id);

                existingStatuses.ShouldContain(c => c.Id == createdOpenStatus.Id);

                await client.Tickets.Statuses.DeleteAsync(test.Space.WikiName, createdClosedStatus.Id);

                await client.Tickets.Statuses.UpdateAsync(test.Space.WikiName, new TicketStatus { Id = createdOpenStatus.Id, Name = "Updated Ticket Status" });

                var updatedStatus = await client.Tickets.Statuses.GetAsync(test.Space.WikiName, createdOpenStatus.Id);

                updatedStatus.Name.ShouldBe("Updated Ticket Status");
            }
        }