public void CanBulkImportTicket()
{
List<TicketImport> test = new List<TicketImport>();
for (int x = 0; x < 2; x++)
{
var ticket = new TicketImport()
{
Subject = "my printer is on fire",
Comments = new List<TicketImportComment> { new TicketImportComment { AuthorId = Settings.UserId, Value = "HELP comment created in Import 1", CreatedAt = DateTime.UtcNow.AddDays(-2), Public = false }, new TicketImportComment { AuthorId = Settings.UserId, Value = "HELP comment created in Import 2", CreatedAt = DateTime.UtcNow.AddDays(-3), Public = false } },
Priority = TicketPriorities.Urgent,
CreatedAt = DateTime.Now.AddDays(-5),
UpdatedAt = DateTime.Now.AddDays(-4),
SolvedAt = DateTime.Now.AddDays(-3),
Status = TicketStatus.Solved,
AssigneeId = Settings.UserId,
Description = "test description"
};
test.Add(ticket);
}
var res = api.Tickets.BulkImportTickets(test);
Assert.AreEqual(res.JobStatus.Status, "queued");
var job = api.JobStatuses.GetJobStatus(res.JobStatus.Id);
Assert.AreEqual(job.JobStatus.Id, res.JobStatus.Id);
int count = 0;
while (job.JobStatus.Status.ToLower() != "completed" && count < 10)
{
Thread.Sleep(1000);
job = api.JobStatuses.GetJobStatus(res.JobStatus.Id);
count++;
}
Assert.AreEqual(job.JobStatus.Status.ToLower(), "completed");
foreach (var r in job.JobStatus.Results)
{
var ticket = api.Tickets.GetTicket(r.Id).Ticket;
Assert.AreEqual(ticket.Description, "test description");
var resComments = api.Tickets.GetTicketComments(r.Id);
Assert.NotNull(resComments);
Assert.AreEqual(resComments.Count, 3);
foreach (var c in resComments.Comments)
{
Assert.True(c.CreatedAt.HasValue);
Assert.Less(c.CreatedAt.Value.LocalDateTime, DateTime.Now.AddDays(-1));
}
api.Tickets.DeleteAsync(r.Id);
}
}