diff --git a/ci/azure-pipelines.yml b/ci/azure-pipelines.yml index 322181eb..7cc5610f 100644 --- a/ci/azure-pipelines.yml +++ b/ci/azure-pipelines.yml @@ -15,6 +15,7 @@ variables: - name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE value: true - group: GitHub_Feed + - group: Zendesk_Creds trigger: batch: true @@ -55,8 +56,13 @@ jobs: displayName: 'dotnet test' inputs: command: test - projects: 'test/ZendeskApi_v2.Test/ZendeskApi_v2.Test.csproj' - arguments: '--no-build -c $(BuildConfiguration)' + projects: 'tests/ZendeskApi_v2.Tests/ZendeskApi_v2.Tests.csproj' + arguments: '--no-build -c $(BuildConfiguration) -- NUnit.StopOnError=true' + env: + admin__id: $(Admin.ID) + admin__email: $(Admin.Email) + admin__password: $(Admin.Password) + admin__apiToken: $(Admin.ApiToken) - task: DotNetCoreCLI@2 displayName: 'dotnet pack' diff --git a/src/ZendeskApi_v2.sln b/src/ZendeskApi_v2.sln index 465fadbb..8d3186be 100644 --- a/src/ZendeskApi_v2.sln +++ b/src/ZendeskApi_v2.sln @@ -5,8 +5,6 @@ VisualStudioVersion = 16.0.28407.52 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZendeskApi_v2", "ZendeskApi_v2\ZendeskApi_v2.csproj", "{5E961B79-3175-468E-BFDA-41FE9842D78A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZendeskApi_v2.Test", "..\test\ZendeskApi_v2.Test\ZendeskApi_v2.Test.csproj", "{BE7FB5E8-2B78-435E-B781-F72D4D650902}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZendeskApi_v2.Example", "ZendeskApi_v2.Example\ZendeskApi_v2.Example.csproj", "{C1A3D493-49E3-4DEF-ABA9-34EF2153C08B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Files", "Files", "{DC18BBC5-665C-4A9F-8E17-418CBFE2BEB6}" @@ -21,6 +19,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ci", "ci", "{19854E34-D3F5- ..\ci\azure-pipelines.yml = ..\ci\azure-pipelines.yml EndProjectSection EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZendeskApi_v2.Tests", "..\tests\ZendeskApi_v2.Tests\ZendeskApi_v2.Tests.csproj", "{ED513A09-762C-432F-8F9D-E242F59F0762}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -49,22 +49,6 @@ Global {5E961B79-3175-468E-BFDA-41FE9842D78A}.Release|x64.Build.0 = Release|Any CPU {5E961B79-3175-468E-BFDA-41FE9842D78A}.Release|x86.ActiveCfg = Release|Any CPU {5E961B79-3175-468E-BFDA-41FE9842D78A}.Release|x86.Build.0 = Release|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Debug|ARM.ActiveCfg = Debug|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Debug|ARM.Build.0 = Debug|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Debug|x64.ActiveCfg = Debug|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Debug|x64.Build.0 = Debug|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Debug|x86.ActiveCfg = Debug|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Debug|x86.Build.0 = Debug|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Release|Any CPU.Build.0 = Release|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Release|ARM.ActiveCfg = Release|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Release|ARM.Build.0 = Release|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Release|x64.ActiveCfg = Release|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Release|x64.Build.0 = Release|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Release|x86.ActiveCfg = Release|Any CPU - {BE7FB5E8-2B78-435E-B781-F72D4D650902}.Release|x86.Build.0 = Release|Any CPU {C1A3D493-49E3-4DEF-ABA9-34EF2153C08B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C1A3D493-49E3-4DEF-ABA9-34EF2153C08B}.Debug|Any CPU.Build.0 = Debug|Any CPU {C1A3D493-49E3-4DEF-ABA9-34EF2153C08B}.Debug|ARM.ActiveCfg = Debug|Any CPU @@ -81,6 +65,22 @@ Global {C1A3D493-49E3-4DEF-ABA9-34EF2153C08B}.Release|x64.Build.0 = Release|Any CPU {C1A3D493-49E3-4DEF-ABA9-34EF2153C08B}.Release|x86.ActiveCfg = Release|Any CPU {C1A3D493-49E3-4DEF-ABA9-34EF2153C08B}.Release|x86.Build.0 = Release|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Debug|ARM.ActiveCfg = Debug|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Debug|ARM.Build.0 = Debug|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Debug|x64.ActiveCfg = Debug|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Debug|x64.Build.0 = Debug|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Debug|x86.ActiveCfg = Debug|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Debug|x86.Build.0 = Debug|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Release|Any CPU.Build.0 = Release|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Release|ARM.ActiveCfg = Release|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Release|ARM.Build.0 = Release|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Release|x64.ActiveCfg = Release|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Release|x64.Build.0 = Release|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Release|x86.ActiveCfg = Release|Any CPU + {ED513A09-762C-432F-8F9D-E242F59F0762}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ZendeskApi_v2/Models/Constants/TicketFieldTypes.cs b/src/ZendeskApi_v2/Models/Constants/TicketFieldTypes.cs index 495fa8aa..10af1e20 100644 --- a/src/ZendeskApi_v2/Models/Constants/TicketFieldTypes.cs +++ b/src/ZendeskApi_v2/Models/Constants/TicketFieldTypes.cs @@ -1,4 +1,4 @@ -namespace ZendeskApi_v2.Models.Constants +namespace ZendeskApi_v2.Models.Constants { public static class TicketFieldTypes { @@ -9,6 +9,6 @@ public static class TicketFieldTypes public const string Integer = "integer"; public const string Decimal = "decimal"; public const string Regexp = "regexp"; - public const string Tagger = "tagger"; + public const string Tagger = "tagger"; // Single-select dropdown menu } -} \ No newline at end of file +} diff --git a/test/ZendeskApi_v2.Test/AccountsAndActivityTests.cs b/test/ZendeskApi_v2.Test/AccountsAndActivityTests.cs deleted file mode 100644 index 85f61083..00000000 --- a/test/ZendeskApi_v2.Test/AccountsAndActivityTests.cs +++ /dev/null @@ -1,18 +0,0 @@ -using NUnit.Framework; -using ZendeskApi_v2; - -namespace Tests -{ - [TestFixture] - public class AccountsAndActivityTests - { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - - [Test] - public void CanGetSettings() - { - var res = api.AccountsAndActivity.GetSettings(); - Assert.That(res.Settings.Branding.HeaderColor, Is.Not.Empty); - } - } -} \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/CoreTests.cs b/test/ZendeskApi_v2.Test/CoreTests.cs deleted file mode 100644 index 9138d167..00000000 --- a/test/ZendeskApi_v2.Test/CoreTests.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading.Tasks; -using NUnit.Framework; - -using ZendeskApi_v2.Models.Tickets; - -namespace Tests -{ - [TestFixture] - public class CoreTests - { - [Test] - public void CreatesUrisCorrectly() - { - var res = new ZendeskApi_v2.ZendeskApi("https://csharpapi.zendesk.com/api/v2", Settings.AdminEmail, Settings.AdminPassword); - Assert.That(res.ZendeskUrl, Is.EqualTo(Settings.Site)); - - var res1 = new ZendeskApi_v2.ZendeskApi("csharpapi.zendesk.com/api/v2", Settings.AdminEmail, Settings.AdminPassword); - Assert.That(res1.ZendeskUrl, Is.EqualTo(Settings.Site)); - - var res2 = new ZendeskApi_v2.ZendeskApi("csharpapi.zendesk.com", Settings.AdminEmail, Settings.AdminPassword); - Assert.That(res2.ZendeskUrl, Is.EqualTo(Settings.Site)); - - var api3 = new ZendeskApi_v2.ZendeskApi("csharpapi", Settings.AdminEmail, Settings.AdminPassword); - Assert.That(api3.ZendeskUrl, Is.EqualTo(Settings.Site)); - - var api4 = new ZendeskApi_v2.ZendeskApi("http://csharpapi.zendesk.com/api/v2", Settings.AdminEmail, Settings.AdminPassword); - Assert.That(api4.ZendeskUrl, Is.EqualTo(Settings.Site)); - } - - [Test] - public void CanUseTokenAccess() - { - var api = new ZendeskApi_v2.ZendeskApi("https://csharpapi.zendesk.com/api/v2", Settings.AdminEmail, "", Settings.ApiToken, "en-us", null); - var id = Settings.SampleTicketId; - var ticket = api.Tickets.GetTicket(id).Ticket; - - Assert.That(ticket, Is.Not.Null); - Assert.That(id, Is.EqualTo(ticket.Id)); - } - - [Test] - public void AsyncGivesCorrectException() - { - var api = new ZendeskApi_v2.ZendeskApi( - "http://csharpapi.zendesk.com/api/v2", - Settings.AdminEmail, - "Incorrect password"); - - Assert.ThrowsAsync(async () => - { - await api.Tickets.CreateTicketAsync(new Ticket - { - Subject = "subject" - }); - }); - - } - - [Test] - public void GivesCorrectException() - { - var api = new ZendeskApi_v2.ZendeskApi( - Settings.Site, - Settings.AdminEmail, - "Incorrect password"); - - Assert.Throws(() => - { - api.Tickets.CreateTicket(new Ticket - { - Subject = "subject" - }); - }); - - api = new ZendeskApi_v2.ZendeskApi( - Settings.Site, - Settings.AdminEmail, - Settings.AdminPassword); - - try - { - api.Users.CreateUser(new ZendeskApi_v2.Models.Users.User() {Name = "sdfsd sadfs", Email = ""}); - } - catch (Exception e) - { - Assert.That(e.Message.Contains("Email: cannot be blank") && e.Data["jsonException"] != null && e.Data["jsonException"].ToString().Contains("Email: cannot be blank"), Is.True); - } - - } - } -} diff --git a/test/ZendeskApi_v2.Test/SharingAgreementTests.cs b/test/ZendeskApi_v2.Test/SharingAgreementTests.cs deleted file mode 100644 index 63b5b69d..00000000 --- a/test/ZendeskApi_v2.Test/SharingAgreementTests.cs +++ /dev/null @@ -1,19 +0,0 @@ -using NUnit.Framework; -using ZendeskApi_v2; - -namespace Tests -{ - [TestFixture] - public class SharingAgreementTests - { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - - [Test] - public void CanGetSharingAgreements() - { - var res = api.SharingAgreements.GetSharingAgreements(); - - Assert.That(res, Is.Not.Null); - } - } -} \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/VoiceTests.cs b/test/ZendeskApi_v2.Test/VoiceTests.cs deleted file mode 100644 index 3b256b52..00000000 --- a/test/ZendeskApi_v2.Test/VoiceTests.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; - -namespace Tests -{ - [TestFixture] - [Category("Voice")] - public class VoiceTests - { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - private long agentid; - private long ticketid; - private long userid; - - [Test] - public void OpenTicketForAgent() - { - agentid = Settings.UserId; - ticketid = Settings.SampleTicketId; - - var result = api.Voice.OpenTicketInAgentBrowser(agentid, ticketid); - Assert.That(result, Is.True); - } - - [Test] - public void OpenTicketTabForAgentAsync() - { - agentid = Settings.UserId; - ticketid = Settings.SampleTicketId; - - var result = api.Voice.OpenTicketInAgentBrowserAsync(agentid, ticketid); - Assert.That(result.Result, Is.True); - } - - [Test] - public void OpenUserProfileInAgentBrowser() - { - agentid = Settings.UserId; - userid = Settings.EndUserId; - - var result = api.Voice.OpenUserProfileInAgentBrowser(agentid, userid); - Assert.That(result, Is.True); - } - - [Test] - public void OpenUserProfileInAgentBrowserAsync() - { - agentid = Settings.UserId; - userid = Settings.EndUserId; - - var result = api.Voice.OpenUserProfileInAgentBrowserAsync(agentid, userid); - Assert.That(result.Result, Is.True); - } - - [Test] - public void GetAllAgentAvailability() - { - var res = api.Voice.GetVoiceAgentActivity(); - - var agent = res.AgentActivity.FirstOrDefault(); - Assert.That(agent, Is.Not.Null); - Assert.That(agent.AgentId, Is.EqualTo(2110053086)); - } - - [Test] - public void GetAllAgentAvailabilityAsync() - { - var res = api.Voice.GetVoiceAgentActivityAsync(); - - var agent = res.Result.AgentActivity.FirstOrDefault(); - Assert.That(agent, Is.Not.Null); - Assert.That(agent.AgentId, Is.EqualTo(2110053086)); - } - - [Test] - public void GetCurrentQueueActivity() - { - var res = api.Voice.GetCurrentQueueActivity(); - - Assert.That(res, Is.Not.Null); - } - - [Test] - public void GetCurrentQueueActivityAsync() - { - var res = api.Voice.GetCurrentQueueActivityAsync(); - Assert.That(res, Is.Not.Null); - } - - [Test] - public void GetAccountOverview() - { - var res = api.Voice.GetAccountOverview(); - Assert.That(res, Is.Not.Null); - } - - [Test] - public void GetAccountOverviewAsync() - { - var res = api.Voice.GetAccountOverviewAsync(); - Assert.That(res, Is.Not.Null); - } - - } -} diff --git a/tests/ZendeskApi_v2.Tests/AccountsAndActivityTests.cs b/tests/ZendeskApi_v2.Tests/AccountsAndActivityTests.cs new file mode 100644 index 00000000..3b294073 --- /dev/null +++ b/tests/ZendeskApi_v2.Tests/AccountsAndActivityTests.cs @@ -0,0 +1,16 @@ +using NUnit.Framework; +using ZendeskApi_v2.Tests.Base; + +namespace ZendeskApi_v2.Tests +{ + [TestFixture] + public class AccountsAndActivityTests : TestBase + { + [Test] + public void CanGetSettings() + { + var res = Api.AccountsAndActivity.GetSettings(); + Assert.That(res.Settings.Branding.HeaderColor, Is.Not.Empty); + } + } +} diff --git a/test/ZendeskApi_v2.Test/AttachmentTests.cs b/tests/ZendeskApi_v2.Tests/AttachmentTests.cs similarity index 75% rename from test/ZendeskApi_v2.Test/AttachmentTests.cs rename to tests/ZendeskApi_v2.Tests/AttachmentTests.cs index be691d9f..6b01b838 100644 --- a/test/ZendeskApi_v2.Test/AttachmentTests.cs +++ b/tests/ZendeskApi_v2.Tests/AttachmentTests.cs @@ -1,27 +1,22 @@ -using System; +using NUnit.Framework; +using System.Collections.Generic; using System.IO; -using NUnit.Framework; -using ZendeskApi_v2; -using ZendeskApi_v2.Models.Shared; +using System.Linq; using System.Threading.Tasks; -using ZendeskApi_v2.Models.Tickets; using ZendeskApi_v2.Models.Constants; -using System.Collections.Generic; -using System.Linq; -using Newtonsoft.Json; -using System.Net; +using ZendeskApi_v2.Models.Shared; +using ZendeskApi_v2.Models.Tickets; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class AttachmentTests + public class AttachmentTests : TestBase { - readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanUploadAttachments() { - var res = api.Attachments.UploadAttachment(new ZenFile() + var res = Api.Attachments.UploadAttachment(new ZenFile() { ContentType = "text/plain", FileName = "testupload.txt", @@ -30,13 +25,12 @@ public void CanUploadAttachments() Assert.That(!string.IsNullOrEmpty(res.Token), Is.True); } - [Test] public async Task CanDowloadAttachment() { var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "testupload.txt"); - var res = await api.Attachments.UploadAttachmentAsync(new ZenFile() + var res = await Api.Attachments.UploadAttachmentAsync(new ZenFile() { ContentType = "text/plain", FileName = "testupload.txt", @@ -55,16 +49,16 @@ public async Task CanDowloadAttachment() }, }; - var t1 = await api.Tickets.CreateTicketAsync(ticket); + var t1 = await Api.Tickets.CreateTicketAsync(ticket); Assert.That(t1.Audit.Events.First().Attachments.Count, Is.EqualTo(1)); var test = t1.Audit.Events.First().Attachments.First(); - var file = await api.Attachments.DownloadAttachmentAsync(test); + var file = await Api.Attachments.DownloadAttachmentAsync(test); Assert.That(file.FileData, Is.Not.Null); - Assert.That(api.Tickets.Delete(t1.Ticket.Id.Value), Is.True); - Assert.That(api.Attachments.DeleteUpload(res)); + Assert.That(Api.Tickets.Delete(t1.Ticket.Id.Value), Is.True); + Assert.That(Api.Attachments.DeleteUpload(res)); } [Test] @@ -73,7 +67,7 @@ public async Task CanRedactAttachment() //This could probably be brought into a helper for above two tests perhaps var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "testupload.txt"); - var res = await api.Attachments.UploadAttachmentAsync(new ZenFile() + var res = await Api.Attachments.UploadAttachmentAsync(new ZenFile() { ContentType = "text/plain", FileName = "testupload.txt", @@ -92,18 +86,18 @@ public async Task CanRedactAttachment() }, }; - var t1 = await api.Tickets.CreateTicketAsync(ticket); + var t1 = await Api.Tickets.CreateTicketAsync(ticket); - var comments = api.Tickets.GetTicketComments(t1.Ticket.Id.Value); + var comments = Api.Tickets.GetTicketComments(t1.Ticket.Id.Value); var attach = comments.Comments[0].Attachments[0]; - var delRes = api.Attachments.RedactCommentAttachment(attach.Id, t1.Ticket.Id.Value, comments.Comments[0].Id.Value); + var delRes = Api.Attachments.RedactCommentAttachment(attach.Id, t1.Ticket.Id.Value, comments.Comments[0].Id.Value); //Returned correct attachment Assert.That(delRes.Attachment.Id, Is.EqualTo(attach.Id)); //Check the file has been replaced by redacted.txt - Assert.That(api.Tickets.GetTicketComments(t1.Ticket.Id.Value).Comments[0].Attachments[0].FileName, Is.EqualTo("redacted.txt")); + Assert.That(Api.Tickets.GetTicketComments(t1.Ticket.Id.Value).Comments[0].Attachments[0].FileName, Is.EqualTo("redacted.txt")); } } } diff --git a/test/ZendeskApi_v2.Test/AutomationTests.cs b/tests/ZendeskApi_v2.Tests/AutomationTests.cs similarity index 74% rename from test/ZendeskApi_v2.Test/AutomationTests.cs rename to tests/ZendeskApi_v2.Tests/AutomationTests.cs index 02fb83b6..f3b02708 100644 --- a/test/ZendeskApi_v2.Test/AutomationTests.cs +++ b/tests/ZendeskApi_v2.Tests/AutomationTests.cs @@ -1,26 +1,23 @@ using NUnit.Framework; -using System.Collections; using System.Collections.Generic; using System.Linq; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Automations; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class AutomationTests + public class AutomationTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [OneTimeSetUp] - public void Init() + public void Setup() { - var automations = api.Automations.GetAutomations(); + var automations = Api.Automations.GetAutomations(); if (automations != null) { foreach (var automation in automations.Automations.Where(o => o.Title.Contains("Test Automation") || o.Title.Contains("Test Automation Updated") || o.Title.Contains("Test Automation1") || o.Title.Contains("Test Automation2"))) { - api.Automations.DeleteAutomation(automation.Id.Value); + Api.Automations.DeleteAutomation(automation.Id.Value); } } } @@ -28,10 +25,10 @@ public void Init() [Test] public void CanGetAutomations() { - var res = api.Automations.GetAutomations(); + var res = Api.Automations.GetAutomations(); Assert.That(res.Count, Is.GreaterThan(0)); - var ind = api.Automations.GetAutomationById(res.Automations[0].Id.Value); + var ind = Api.Automations.GetAutomationById(res.Automations[0].Id.Value); Assert.That(res.Automations[0].Id, Is.EqualTo(ind.Automation.Id)); } @@ -52,21 +49,21 @@ public void CanCreateUpdateAndDeleteAutomations() automation.Conditions.All.Add(new All() { Field = "NEW", Operator = "is", Value = "24" }); automation.Actions.Add(new Action() { Field = "group_id", Value = "20402842" }); - var res = api.Automations.CreateAutomation(automation); + var res = Api.Automations.CreateAutomation(automation); Assert.That(res.Automation.Id, Is.GreaterThan(0)); res.Automation.Title = "Test Automation Updated"; - var update = api.Automations.UpdateAutomation(res.Automation); + var update = Api.Automations.UpdateAutomation(res.Automation); Assert.That(res.Automation.Title, Is.EqualTo(update.Automation.Title)); - Assert.That(api.Automations.DeleteAutomation(res.Automation.Id.Value), Is.True); + Assert.That(Api.Automations.DeleteAutomation(res.Automation.Id.Value), Is.True); } [Test] public void CanSearchAutomations() { - var res = api.Automations.SearchAutomations("Close").Automations; + var res = Api.Automations.SearchAutomations("Close").Automations; Assert.That(res.Count(), Is.EqualTo(1)); Assert.That(res[0].Title, Is.EqualTo("Close ticket 4 days after status is set to solved")); } diff --git a/test/ZendeskApi_v2.Test/InitializeTests.cs b/tests/ZendeskApi_v2.Tests/Base/InitializeTests.cs similarity index 84% rename from test/ZendeskApi_v2.Test/InitializeTests.cs rename to tests/ZendeskApi_v2.Tests/Base/InitializeTests.cs index 49bda871..a001c08e 100644 --- a/test/ZendeskApi_v2.Test/InitializeTests.cs +++ b/tests/ZendeskApi_v2.Tests/Base/InitializeTests.cs @@ -1,5 +1,5 @@ -using System.Net; -using NUnit.Framework; +using NUnit.Framework; +using System.Net; [SetUpFixture] public class InitializeTests diff --git a/tests/ZendeskApi_v2.Tests/Base/OrganizationSettings.cs b/tests/ZendeskApi_v2.Tests/Base/OrganizationSettings.cs new file mode 100644 index 00000000..134536db --- /dev/null +++ b/tests/ZendeskApi_v2.Tests/Base/OrganizationSettings.cs @@ -0,0 +1,10 @@ +namespace ZendeskApi_v2.Tests.Base +{ + public class OrganizationSettings + { + public long ID { get; set; } + public string Name { get; set; } + public string SiteURL { get; set; } = "https://csharpapi.zendesk.com/api/v2/"; + public string ExternalID { get; set; } + } +} diff --git a/tests/ZendeskApi_v2.Tests/Base/TestBase.cs b/tests/ZendeskApi_v2.Tests/Base/TestBase.cs new file mode 100644 index 00000000..8e37701d --- /dev/null +++ b/tests/ZendeskApi_v2.Tests/Base/TestBase.cs @@ -0,0 +1,41 @@ +using Microsoft.Extensions.Configuration; +using NUnit.Framework; +using System.Linq; +using System.Threading.Tasks; + +namespace ZendeskApi_v2.Tests.Base +{ + public class TestBase + { + public const string TEST_EXTERNAL_ID = "clean up after unit test run"; + public UserSettings Admin { get; internal set; } + public OrganizationSettings Organization { get; set; } + public ZendeskApi Api { get; internal set; } + + [OneTimeSetUp] + public void BaseSetUp() + { + var configuration = new ConfigurationBuilder().SetBasePath(TestContext.CurrentContext.TestDirectory) + .AddJsonFile("appsettings.json", optional: true) + .AddUserSecrets("411e2606-2274-427d-ad1e-89c0d4bc9f5a", true) + .AddEnvironmentVariables() + .Build(); + + Admin = configuration.GetSection("admin").Get(); + Organization = configuration.GetSection("organization").Get(); + Api = new ZendeskApi(Organization.SiteURL, Admin.Email, Admin.Password); + } + + [OneTimeTearDown] + public async Task BaseCleanUp() + { + var response = await Api.Tickets.GetTicketsByExternalIdAsync(TEST_EXTERNAL_ID); + var ids = response.Tickets.Select(t => t.Id.Value).ToList(); + if (ids.Any()) + { + await Api.Tickets.DeleteMultipleAsync(ids); + } + } + + } +} diff --git a/tests/ZendeskApi_v2.Tests/Base/UserSettings.cs b/tests/ZendeskApi_v2.Tests/Base/UserSettings.cs new file mode 100644 index 00000000..fd824740 --- /dev/null +++ b/tests/ZendeskApi_v2.Tests/Base/UserSettings.cs @@ -0,0 +1,11 @@ +namespace ZendeskApi_v2.Tests.Base +{ + public class UserSettings + { + public long ID { get; set; } + public string Email { get; set; } + public string Password { get; set; } + public string ApiToken { get; set; } + public string OAuthToken { get; set; } + } +} diff --git a/test/ZendeskApi_v2.Test/BrandTests.cs b/tests/ZendeskApi_v2.Tests/BrandTests.cs similarity index 61% rename from test/ZendeskApi_v2.Test/BrandTests.cs rename to tests/ZendeskApi_v2.Tests/BrandTests.cs index c5fa151a..93bd1138 100644 --- a/test/ZendeskApi_v2.Test/BrandTests.cs +++ b/tests/ZendeskApi_v2.Tests/BrandTests.cs @@ -1,27 +1,23 @@ using NUnit.Framework; -using System.Collections; -using System.Collections.Generic; +using System; using System.Linq; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Brands; -using System; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class BrandTests + public class BrandTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [OneTimeSetUp] - public void Init() + public void Setup() { - var brands = api.Brands.GetBrands(); + var brands = Api.Brands.GetBrands(); if (brands != null) { foreach (var brand in brands.Brands.Where(o => o.Name.Contains("Test Brand"))) { - api.Brands.DeleteBrand(brand.Id.Value); + Api.Brands.DeleteBrand(brand.Id.Value); } } } @@ -29,10 +25,10 @@ public void Init() [Test] public void CanGetBrands() { - var res = api.Brands.GetBrands(); + var res = Api.Brands.GetBrands(); Assert.That(res.Count, Is.GreaterThan(0)); - var ind = api.Brands.GetBrand(res.Brands[0].Id.Value); + var ind = Api.Brands.GetBrand(res.Brands[0].Id.Value); Assert.That(res.Brands[0].Id, Is.EqualTo(ind.Brand.Id)); } @@ -46,16 +42,15 @@ public void CanCreateUpdateAndDeleteBrand() Subdomain = string.Format("test-{0}", Guid.NewGuid()) }; - var res = api.Brands.CreateBrand(brand); + var res = Api.Brands.CreateBrand(brand); Assert.That(res.Brand.Id, Is.GreaterThan(0)); res.Brand.Name = "Test Brand Updated"; - var update = api.Brands.UpdateBrand(res.Brand); + var update = Api.Brands.UpdateBrand(res.Brand); Assert.That(res.Brand.Name, Is.EqualTo(update.Brand.Name)); - Assert.That(api.Brands.DeleteBrand(res.Brand.Id.Value), Is.True); + Assert.That(Api.Brands.DeleteBrand(res.Brand.Id.Value), Is.True); } - } -} \ No newline at end of file +} diff --git a/tests/ZendeskApi_v2.Tests/CoreTests.cs b/tests/ZendeskApi_v2.Tests/CoreTests.cs new file mode 100644 index 00000000..85350a85 --- /dev/null +++ b/tests/ZendeskApi_v2.Tests/CoreTests.cs @@ -0,0 +1,90 @@ +using NUnit.Framework; +using System; +using System.Net; +using ZendeskApi_v2.Models.Tickets; +using ZendeskApi_v2.Tests.Base; + +namespace ZendeskApi_v2.Tests +{ + [TestFixture] + public class CoreTests : TestBase + { + [Test] + public void CreatesUrisCorrectly() + { + var res = new ZendeskApi("https://csharpapi.zendesk.com/api/v2", Admin.Email, Admin.Password); + Assert.That(res.ZendeskUrl, Is.EqualTo(Organization.SiteURL)); + + var res1 = new ZendeskApi("csharpapi.zendesk.com/api/v2", Admin.Email, Admin.Password); + Assert.That(res1.ZendeskUrl, Is.EqualTo(Organization.SiteURL)); + + var res2 = new ZendeskApi("csharpapi.zendesk.com", Admin.Email, Admin.Password); + Assert.That(res2.ZendeskUrl, Is.EqualTo(Organization.SiteURL)); + + var api3 = new ZendeskApi("csharpapi", Admin.Email, Admin.Password); + Assert.That(api3.ZendeskUrl, Is.EqualTo(Organization.SiteURL)); + + var api4 = new ZendeskApi("http://csharpapi.zendesk.com/api/v2", Admin.Email, Admin.Password); + Assert.That(api4.ZendeskUrl, Is.EqualTo(Organization.SiteURL)); + } + + [Test] + public void CanUseTokenAccess() + { + var api = new ZendeskApi("https://csharpapi.zendesk.com/Api/v2", Admin.Email, "", Admin.ApiToken, "en-us", null); + var id = Settings.SampleTicketId; + var ticket = api.Tickets.GetTicket(id).Ticket; + + Assert.That(ticket, Is.Not.Null); + Assert.That(id, Is.EqualTo(ticket.Id)); + } + + [Test] + public void AsyncGivesCorrectException() + { + var api = new ZendeskApi( + "http://csharpapi.zendesk.com/Api/v2", + Admin.Email, + "Incorrect password"); + + Assert.ThrowsAsync(async () => + { + await api.Tickets.CreateTicketAsync(new Ticket + { + Subject = "subject" + }); + }); + } + + [Test] + public void GivesCorrectException() + { + var api = new ZendeskApi( + Organization.SiteURL, + Admin.Email, + "Incorrect password"); + + Assert.Throws(() => + { + api.Tickets.CreateTicket(new Ticket + { + Subject = "subject" + }); + }); + + api = new ZendeskApi( + Organization.SiteURL, + Admin.Email, + Admin.Password); + + try + { + api.Users.CreateUser(new ZendeskApi_v2.Models.Users.User() { Name = "sdfsd sadfs", Email = "" }); + } + catch (Exception e) + { + Assert.That(e.Message.Contains("Email: cannot be blank") && e.Data["jsonException"] != null && e.Data["jsonException"].ToString().Contains("Email: cannot be blank"), Is.True); + } + } + } +} diff --git a/test/ZendeskApi_v2.Test/GlobalSuppressions.cs b/tests/ZendeskApi_v2.Tests/GlobalSuppressions.cs similarity index 100% rename from test/ZendeskApi_v2.Test/GlobalSuppressions.cs rename to tests/ZendeskApi_v2.Tests/GlobalSuppressions.cs diff --git a/test/ZendeskApi_v2.Test/GroupTests.cs b/tests/ZendeskApi_v2.Tests/GroupTests.cs similarity index 59% rename from test/ZendeskApi_v2.Test/GroupTests.cs rename to tests/ZendeskApi_v2.Tests/GroupTests.cs index 0d68831b..88e5b689 100644 --- a/test/ZendeskApi_v2.Test/GroupTests.cs +++ b/tests/ZendeskApi_v2.Tests/GroupTests.cs @@ -1,48 +1,46 @@ +using NUnit.Framework; using System.Linq; using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Constants; using ZendeskApi_v2.Models.Groups; using ZendeskApi_v2.Models.Users; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class GroupTests + public class GroupTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [OneTimeSetUp] public async Task CleanUp() { - var resp = await api.Search.SearchForAsync("test133@test.com"); + var resp = await Api.Search.SearchForAsync("test133@test.com"); foreach (var user in resp.Results) { - await api.Users.DeleteUserAsync(user.Id.Value); + await Api.Users.DeleteUserAsync(user.Id.Value); } } [Test] public void CanGetGroups() { - var res = api.Groups.GetGroups(); + var res = Api.Groups.GetGroups(); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanGetAssignableGroups() { - var res = api.Groups.GetAssignableGroups(); + var res = Api.Groups.GetAssignableGroups(); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanGetGroup() { - var res = api.Groups.GetGroups(); - var res1 = api.Groups.GetGroupById(res.Groups[0].Id.Value); + var res = Api.Groups.GetGroups(); + var res1 = Api.Groups.GetGroupById(res.Groups[0].Id.Value); Assert.That(res.Groups[0].Id.Value, Is.EqualTo(res1.Group.Id.Value)); } @@ -50,65 +48,65 @@ public void CanGetGroup() [Test] public void CanCreateUpdateAndDeleteGroup() { - var res = api.Groups.CreateGroup("Test Group"); + var res = Api.Groups.CreateGroup("Test Group"); Assert.That(res.Group.Id, Is.GreaterThan(0)); res.Group.Name = "Updated Test Group"; - var res1 = api.Groups.UpdateGroup(res.Group); + var res1 = Api.Groups.UpdateGroup(res.Group); Assert.That(res.Group.Name, Is.EqualTo(res1.Group.Name)); - Assert.That(api.Groups.DeleteGroup(res.Group.Id.Value), Is.True); + Assert.That(Api.Groups.DeleteGroup(res.Group.Id.Value), Is.True); } [Test] public void CanGetGroupMemberships() { - var res = api.Groups.GetGroupMemberships(); + var res = Api.Groups.GetGroupMemberships(); Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = api.Groups.GetGroupMembershipsByUser(Settings.UserId); + var res1 = Api.Groups.GetGroupMembershipsByUser(Admin.ID); Assert.That(res1.Count, Is.GreaterThan(0)); - var groups = api.Groups.GetGroups(); - var res2 = api.Groups.GetGroupMembershipsByGroup(groups.Groups[0].Id.Value); + var groups = Api.Groups.GetGroups(); + var res2 = Api.Groups.GetGroupMembershipsByGroup(groups.Groups[0].Id.Value); Assert.That(res2.Count, Is.GreaterThan(0)); } [Test] public void CanGetAssignableGroupMemberships() { - var res = api.Groups.GetAssignableGroupMemberships(); + var res = Api.Groups.GetAssignableGroupMemberships(); Assert.That(res.Count, Is.GreaterThan(0)); - var groups = api.Groups.GetGroups(); - var res1 = api.Groups.GetAssignableGroupMembershipsByGroup(groups.Groups[0].Id.Value); + var groups = Api.Groups.GetGroups(); + var res1 = Api.Groups.GetAssignableGroupMembershipsByGroup(groups.Groups[0].Id.Value); Assert.That(res1.Count, Is.GreaterThan(0)); } [Test] public void CanGetIndividualGroupMemberships() { - var res = api.Groups.GetGroupMemberships(); + var res = Api.Groups.GetGroupMemberships(); - var res1 = api.Groups.GetGroupMembershipsByMembershipId(res.GroupMemberships[0].Id.Value); + var res1 = Api.Groups.GetGroupMembershipsByMembershipId(res.GroupMemberships[0].Id.Value); Assert.That(res.GroupMemberships[0].Id, Is.EqualTo(res1.GroupMembership.Id)); - var res2 = api.Groups.GetGroupMembershipsByUserAndMembershipId(res1.GroupMembership.UserId, res.GroupMemberships[0].Id.Value); + var res2 = Api.Groups.GetGroupMembershipsByUserAndMembershipId(res1.GroupMembership.UserId, res.GroupMemberships[0].Id.Value); Assert.That(res1.GroupMembership.UserId, Is.EqualTo(res2.GroupMembership.UserId)); } [Test] public void CanCreateUpdateAndDeleteMembership() { - var group = api.Groups.CreateGroup("Test Group 2").Group; - var user = api.Users.CreateUser(new User() + var group = Api.Groups.CreateGroup("Test Group 2").Group; + var user = Api.Users.CreateUser(new User() { Name = "test user133", Email = "test133@test.com", Role = UserRoles.Agent }).User; - var res = api.Groups.CreateGroupMembership(new GroupMembership() + var res = Api.Groups.CreateGroupMembership(new GroupMembership() { UserId = user.Id.Value, GroupId = group.Id.Value @@ -116,25 +114,25 @@ public void CanCreateUpdateAndDeleteMembership() Assert.That(res.GroupMembership.Id, Is.GreaterThan(0)); - var res2 = api.Groups.SetGroupMembershipAsDefault(user.Id.Value, res.GroupMembership.Id.Value); + var res2 = Api.Groups.SetGroupMembershipAsDefault(user.Id.Value, res.GroupMembership.Id.Value); Assert.That(res2.GroupMemberships.First(x => x.Id == res.GroupMembership.Id).Default, Is.True); - Assert.That(api.Groups.DeleteGroupMembership(res.GroupMembership.Id.Value), Is.True); - Assert.That(api.Users.DeleteUser(user.Id.Value), Is.True); - Assert.That(api.Groups.DeleteGroup(group.Id.Value), Is.True); + Assert.That(Api.Groups.DeleteGroupMembership(res.GroupMembership.Id.Value), Is.True); + Assert.That(Api.Users.DeleteUser(user.Id.Value), Is.True); + Assert.That(Api.Groups.DeleteGroup(group.Id.Value), Is.True); } [Test] public void CanGetGroupMembershipsAsync() { - var res = api.Groups.GetGroupMembershipsAsync().Result; + var res = Api.Groups.GetGroupMembershipsAsync().Result; Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = api.Groups.GetGroupMembershipsByUserAsync(Settings.UserId).Result; + var res1 = Api.Groups.GetGroupMembershipsByUserAsync(Admin.ID).Result; Assert.That(res1.Count, Is.GreaterThan(0)); - var groups = api.Groups.GetGroupsAsync().Result; - var res2 = api.Groups.GetGroupMembershipsByGroupAsync(groups.Groups[0].Id.Value).Result; + var groups = Api.Groups.GetGroupsAsync().Result; + var res2 = Api.Groups.GetGroupMembershipsByGroupAsync(groups.Groups[0].Id.Value).Result; Assert.That(res2.Count, Is.GreaterThan(0)); } } diff --git a/test/ZendeskApi_v2.Test/HelpCenter/ArticleAttachmentsTest.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/ArticleAttachmentsTest.cs similarity index 70% rename from test/ZendeskApi_v2.Test/HelpCenter/ArticleAttachmentsTest.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/ArticleAttachmentsTest.cs index 5452d6a0..37c8e8de 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/ArticleAttachmentsTest.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/ArticleAttachmentsTest.cs @@ -1,17 +1,16 @@ using NUnit.Framework; using System.IO; using System.Threading.Tasks; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Articles; using ZendeskApi_v2.Models.Shared; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - public class ArticleAttachmentsTest + public class ArticleAttachmentsTest : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private readonly long _sectionId = 201010935; [Test] @@ -24,22 +23,22 @@ public void CanUploadAttachmentsForArticle() FileData = File.ReadAllBytes(TestContext.CurrentContext.TestDirectory + "\\testupload.txt") }; - var articleResponse = api.HelpCenter.Articles.CreateArticle(_sectionId, new Article + var articleResponse = Api.HelpCenter.Articles.CreateArticle(_sectionId, new Article { Title = "My Test article", Body = "The body of my article", Locale = "en-us" }); - var resp = api.HelpCenter.ArticleAttachments.UploadAttachment(articleResponse.Article.Id, file); + var resp = Api.HelpCenter.ArticleAttachments.UploadAttachment(articleResponse.Article.Id, file); Assert.That(resp.Attachment, Is.Not.Null); - var res = api.HelpCenter.ArticleAttachments.GetAttachments(articleResponse.Article.Id); + var res = Api.HelpCenter.ArticleAttachments.GetAttachments(articleResponse.Article.Id); Assert.That(res.Attachments, Is.Not.Null); - Assert.That(api.HelpCenter.ArticleAttachments.DeleteAttachment(resp.Attachment.Id), Is.True); - Assert.That(api.HelpCenter.Articles.DeleteArticle(articleResponse.Article.Id.Value), Is.True); + Assert.That(Api.HelpCenter.ArticleAttachments.DeleteAttachment(resp.Attachment.Id), Is.True); + Assert.That(Api.HelpCenter.Articles.DeleteArticle(articleResponse.Article.Id.Value), Is.True); } [Test] @@ -52,23 +51,23 @@ public async Task CanUploadAttachmentsForArticleAsync() FileData = File.ReadAllBytes(TestContext.CurrentContext.TestDirectory + "\\gracehoppertocat3.jpg") }; - var articleResponse = await api.HelpCenter.Articles.CreateArticleAsync(_sectionId, new Article + var articleResponse = await Api.HelpCenter.Articles.CreateArticleAsync(_sectionId, new Article { Title = "My Test article", Body = "The body of my article", Locale = "en-us" }); - var resp = await api.HelpCenter.ArticleAttachments.UploadAttachmentAsync(articleResponse.Article.Id, file, true); + var resp = await Api.HelpCenter.ArticleAttachments.UploadAttachmentAsync(articleResponse.Article.Id, file, true); Assert.That(resp.Attachment, Is.Not.Null); Assert.That(resp.Attachment.Inline, Is.True); - var res = await api.HelpCenter.ArticleAttachments.GetAttachmentsAsync(articleResponse.Article.Id); + var res = await Api.HelpCenter.ArticleAttachments.GetAttachmentsAsync(articleResponse.Article.Id); Assert.That(res.Attachments, Is.Not.Null); - Assert.That(await api.HelpCenter.ArticleAttachments.DeleteAttachmentAsync(resp.Attachment.Id), Is.True); - Assert.That(await api.HelpCenter.Articles.DeleteArticleAsync(articleResponse.Article.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.ArticleAttachments.DeleteAttachmentAsync(resp.Attachment.Id), Is.True); + Assert.That(await Api.HelpCenter.Articles.DeleteArticleAsync(articleResponse.Article.Id.Value), Is.True); } } } diff --git a/test/ZendeskApi_v2.Test/HelpCenter/ArticleTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/ArticleTests.cs similarity index 72% rename from test/ZendeskApi_v2.Test/HelpCenter/ArticleTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/ArticleTests.cs index 3542dd13..10eecf64 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/ArticleTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/ArticleTests.cs @@ -1,38 +1,31 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Threading; +using NUnit.Framework; +using System; using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Articles; -using ZendeskApi_v2.Models.Sections; -using ZendeskApi_v2.Models.Users; using ZendeskApi_v2.Requests.HelpCenter; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] [Parallelizable(ParallelScope.None)] - public class ArticleTests + public class ArticleTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private readonly long _articleIdWithComments = 360021096471; //https://csharpapi.zendesk.com/hc/en-us/articles/204838115-Thing-4?page=1#comment_200486479 private readonly long sectionId = 360002891952; [Test] public void CanGetSingleArticle() { - var res = api.HelpCenter.Articles.GetArticle(_articleIdWithComments); + var res = Api.HelpCenter.Articles.GetArticle(_articleIdWithComments); Assert.That(res.Article, Is.Not.Null); } [Test] public void CanGetSingleArticleWithTranslations() { - var res = api.HelpCenter.Articles.GetArticle(_articleIdWithComments, ArticleSideLoadOptionsEnum.Translations); + var res = Api.HelpCenter.Articles.GetArticle(_articleIdWithComments, ArticleSideLoadOptionsEnum.Translations); Assert.That(res.Article, Is.Not.Null); Assert.That(res.Article.Translations.Count, Is.GreaterThan(0)); } @@ -40,18 +33,18 @@ public void CanGetSingleArticleWithTranslations() [Test] public void CanGetArticles() { - var res = api.HelpCenter.Articles.GetArticles(); + var res = Api.HelpCenter.Articles.GetArticles(); Assert.That(res.Count, Is.GreaterThan(0)); - api.HelpCenter.Sections.GetSections(); - var res1 = api.HelpCenter.Articles.GetArticlesBySectionId(sectionId); + Api.HelpCenter.Sections.GetSections(); + var res1 = Api.HelpCenter.Articles.GetArticlesBySectionId(sectionId); Assert.That(res1.Articles[0].SectionId, Is.EqualTo(sectionId)); } [Test] public void CanGetArticleSideloadedWith() { - var res = api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Sections | ArticleSideLoadOptionsEnum.Categories | ArticleSideLoadOptionsEnum.Users); + var res = Api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Sections | ArticleSideLoadOptionsEnum.Categories | ArticleSideLoadOptionsEnum.Users); Assert.That(res.Articles.Count, Is.GreaterThan(0)); Assert.That(res.Categories.Count, Is.GreaterThan(0)); @@ -62,7 +55,7 @@ public void CanGetArticleSideloadedWith() [Test] public void CanGetArticleSideloadedWithUsers() { - var res = api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Users); + var res = Api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Users); Assert.That(res.Articles.Count, Is.GreaterThan(0)); Assert.That(res.Users.Count, Is.GreaterThan(0)); @@ -71,7 +64,7 @@ public void CanGetArticleSideloadedWithUsers() [Test] public void CanGetArticleSideloadedWithSections() { - var res = api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Sections); + var res = Api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Sections); Assert.That(res.Articles.Count, Is.GreaterThan(0)); Assert.That(res.Sections.Count, Is.GreaterThan(0)); @@ -80,7 +73,7 @@ public void CanGetArticleSideloadedWithSections() [Test] public void CanGetArticleSideloadedWithCategories() { - var res = api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Categories); + var res = Api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Categories); Assert.That(res.Articles.Count, Is.GreaterThan(0)); Assert.That(res.Categories.Count, Is.GreaterThan(0)); @@ -89,7 +82,7 @@ public void CanGetArticleSideloadedWithCategories() [Test] public void CanGetArticleSideloadedWithTranslations() { - var res = api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Categories | ArticleSideLoadOptionsEnum.Sections | ArticleSideLoadOptionsEnum.Users | ArticleSideLoadOptionsEnum.Translations); + var res = Api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.Categories | ArticleSideLoadOptionsEnum.Sections | ArticleSideLoadOptionsEnum.Users | ArticleSideLoadOptionsEnum.Translations); Assert.That(res.Categories[0].Translations.Count, Is.GreaterThan(0)); Assert.That(res.Articles[0].Translations.Count, Is.GreaterThan(0)); @@ -99,8 +92,8 @@ public void CanGetArticleSideloadedWithTranslations() [Test] public void CanGetArticleByCategoryWithSideloadedSections() { - var firstCategory = api.HelpCenter.Categories.GetCategoryById(200382245).Category; - var res = api.HelpCenter.Articles.GetArticlesByCategoryId(firstCategory.Id.Value, ArticleSideLoadOptionsEnum.Sections); + var firstCategory = Api.HelpCenter.Categories.GetCategoryById(200382245).Category; + var res = Api.HelpCenter.Articles.GetArticlesByCategoryId(firstCategory.Id.Value, ArticleSideLoadOptionsEnum.Sections); Assert.That(res.Sections.Count, Is.GreaterThan(0)); } @@ -108,8 +101,8 @@ public void CanGetArticleByCategoryWithSideloadedSections() [Test] public void CanGetArticlesSorted() { - var articlesAscending = api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title }); - var articlesDescending = api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title, SortOrder = ArticleSortOrderEnum.Desc }); + var articlesAscending = Api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title }); + var articlesDescending = Api.HelpCenter.Articles.GetArticles(ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title, SortOrder = ArticleSortOrderEnum.Desc }); Assert.That(articlesAscending.Articles[0].Title, Is.Not.EqualTo(articlesDescending.Articles[0].Title)); } @@ -117,11 +110,11 @@ public void CanGetArticlesSorted() [Test] public void CanGetArticlesSortedInASection() { - var section = api.HelpCenter.Sections.GetSectionById(sectionId).Section; + var section = Api.HelpCenter.Sections.GetSectionById(sectionId).Section; - var articlesAscending = api.HelpCenter.Articles.GetArticlesBySectionId(section.Id.Value, ArticleSideLoadOptionsEnum.None, + var articlesAscending = Api.HelpCenter.Articles.GetArticlesBySectionId(section.Id.Value, ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title }); - var articlesDescending = api.HelpCenter.Articles.GetArticlesBySectionId(section.Id.Value, ArticleSideLoadOptionsEnum.None, + var articlesDescending = Api.HelpCenter.Articles.GetArticlesBySectionId(section.Id.Value, ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title, SortOrder = ArticleSortOrderEnum.Desc }); Assert.That(articlesAscending.Articles[0].Title, Is.Not.EqualTo(articlesDescending.Articles[0].Title)); @@ -133,9 +126,9 @@ public void CanGetArticlesSortedInASection() [Test] public void CanGetArticlesSortedInACategory() { - var category = api.HelpCenter.Categories.GetCategoryById(200382245).Category; - var articlesAscending = api.HelpCenter.Articles.GetArticlesByCategoryId(category.Id.Value, ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title }); - var articlesDescending = api.HelpCenter.Articles.GetArticlesByCategoryId(category.Id.Value, ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title, SortOrder = ArticleSortOrderEnum.Desc }); + var category = Api.HelpCenter.Categories.GetCategoryById(200382245).Category; + var articlesAscending = Api.HelpCenter.Articles.GetArticlesByCategoryId(category.Id.Value, ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title }); + var articlesDescending = Api.HelpCenter.Articles.GetArticlesByCategoryId(category.Id.Value, ArticleSideLoadOptionsEnum.None, new ArticleSortingOptions() { SortBy = ArticleSortEnum.Title, SortOrder = ArticleSortOrderEnum.Desc }); Assert.That(articlesAscending.Articles[0].Title, Is.Not.EqualTo(articlesDescending.Articles[0].Title)); } @@ -143,8 +136,8 @@ public void CanGetArticlesSortedInACategory() [Test] public void CanCreateUpdateAndDeleteArticles() { - var resSections = api.HelpCenter.Sections.GetSections(); - var res = api.HelpCenter.Articles.CreateArticle(resSections.Sections[0].Id.Value, new Article() + var resSections = Api.HelpCenter.Sections.GetSections(); + var res = Api.HelpCenter.Articles.CreateArticle(resSections.Sections[0].Id.Value, new Article() { Title = "My Test article", Body = "The body of my article", @@ -154,16 +147,16 @@ public void CanCreateUpdateAndDeleteArticles() Assert.That(res.Article.Id, Is.GreaterThan(0)); res.Article.LabelNames = new string[] { "updated" }; - var update = api.HelpCenter.Articles.UpdateArticleAsync(res.Article).Result; + var update = Api.HelpCenter.Articles.UpdateArticleAsync(res.Article).Result; Assert.That(update.Article.LabelNames, Is.EqualTo(res.Article.LabelNames)); - Assert.That(api.HelpCenter.Articles.DeleteArticle(res.Article.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Articles.DeleteArticle(res.Article.Id.Value), Is.True); } [Test] public void CanGetSingleArticleWithTranslationsAsync() { - var res = api.HelpCenter.Articles.GetArticleAsync(_articleIdWithComments, ArticleSideLoadOptionsEnum.Translations).Result; + var res = Api.HelpCenter.Articles.GetArticleAsync(_articleIdWithComments, ArticleSideLoadOptionsEnum.Translations).Result; Assert.That(res.Article, Is.Not.Null); Assert.That(res.Article.Translations.Count, Is.GreaterThan(0)); } @@ -171,19 +164,19 @@ public void CanGetSingleArticleWithTranslationsAsync() [Test] public async Task CanGetArticlesAsync() { - var res = await api.HelpCenter.Articles.GetArticlesAsync(); + var res = await Api.HelpCenter.Articles.GetArticlesAsync(); Assert.That(res.Count, Is.GreaterThan(0)); - await api.HelpCenter.Sections.GetSectionsAsync(); - var res1 = await api.HelpCenter.Articles.GetArticlesBySectionIdAsync(sectionId); + await Api.HelpCenter.Sections.GetSectionsAsync(); + var res1 = await Api.HelpCenter.Articles.GetArticlesBySectionIdAsync(sectionId); Assert.That(res1.Articles[0].SectionId, Is.EqualTo(sectionId)); } [Test] public async Task CanCreateUpdateAndDeleteArticlesAsync() { - var resSections = await api.HelpCenter.Sections.GetSectionsAsync(); - var res = await api.HelpCenter.Articles.CreateArticleAsync(resSections.Sections[0].Id.Value, new Article + var resSections = await Api.HelpCenter.Sections.GetSectionsAsync(); + var res = await Api.HelpCenter.Articles.CreateArticleAsync(resSections.Sections[0].Id.Value, new Article { Title = "My Test article", Body = "The body of my article", @@ -194,10 +187,10 @@ public async Task CanCreateUpdateAndDeleteArticlesAsync() Assert.That(res.Article.Id, Is.GreaterThan(0)); res.Article.LabelNames = new string[] { "photo", "tripod" }; - var update = await api.HelpCenter.Articles.UpdateArticleAsync(res.Article); + var update = await Api.HelpCenter.Articles.UpdateArticleAsync(res.Article); Assert.That(res.Article.LabelNames, Is.EqualTo(update.Article.LabelNames)); - Assert.That(await api.HelpCenter.Articles.DeleteArticleAsync(res.Article.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Articles.DeleteArticleAsync(res.Article.Id.Value), Is.True); } [Test] @@ -205,17 +198,17 @@ public async Task CanGetSecondPageUisngGetByPageUrl() { var pageSize = 3; - var res = await api.HelpCenter.Articles.GetArticlesAsync(perPage: pageSize); + var res = await Api.HelpCenter.Articles.GetArticlesAsync(perPage: pageSize); Assert.That(res.PageSize, Is.EqualTo(pageSize)); - var resp = await api.HelpCenter.Articles.GetByPageUrlAsync(res.NextPage, pageSize); + var resp = await Api.HelpCenter.Articles.GetByPageUrlAsync(res.NextPage, pageSize); Assert.That(resp.Page, Is.EqualTo(2)); } [Test] public async Task CanSearchForArticlesAsync() { - var resp = await api.HelpCenter.Articles.SearchArticlesForAsync("Test", createdBefore: DateTime.Now); + var resp = await Api.HelpCenter.Articles.SearchArticlesForAsync("Test", createdBefore: DateTime.Now); Assert.That(resp.Count, Is.GreaterThan(0)); } @@ -223,7 +216,7 @@ public async Task CanSearchForArticlesAsync() [Test] public void CanSearchForArticles() { - var resp = api.HelpCenter.Articles.SearchArticlesFor("Test", createdBefore: DateTime.Now); + var resp = Api.HelpCenter.Articles.SearchArticlesFor("Test", createdBefore: DateTime.Now); Assert.That(resp.Count, Is.GreaterThan(0)); } diff --git a/test/ZendeskApi_v2.Test/HelpCenter/CategoryTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/CategoryTests.cs similarity index 68% rename from test/ZendeskApi_v2.Test/HelpCenter/CategoryTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/CategoryTests.cs index 323ff02c..61056f3a 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/CategoryTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/CategoryTests.cs @@ -1,23 +1,20 @@ -using System.Linq; +using NUnit.Framework; +using System.Linq; using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; using ZendeskApi_v2.Extensions; using ZendeskApi_v2.Models.HelpCenter.Categories; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - public class CategoryTests + public class CategoryTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - - [OneTimeSetUp] public async Task Setup() { - var categoriesResponse = await api.HelpCenter.Categories.GetCategoriesAsync(); + var categoriesResponse = await Api.HelpCenter.Categories.GetCategoriesAsync(); do { @@ -25,52 +22,52 @@ public async Task Setup() { if (category.Name == "My Test category") { - await api.HelpCenter.Categories.DeleteCategoryAsync(category.Id.Value); + await Api.HelpCenter.Categories.DeleteCategoryAsync(category.Id.Value); } } if (!string.IsNullOrWhiteSpace(categoriesResponse.NextPage)) { - categoriesResponse = await api.HelpCenter.Articles.GetByPageUrlAsync(categoriesResponse.NextPage, 100); + categoriesResponse = await Api.HelpCenter.Articles.GetByPageUrlAsync(categoriesResponse.NextPage, 100); } - } while (!string.IsNullOrWhiteSpace(categoriesResponse.NextPage)); } - [Test] public void CanGetCategories() { - var res = api.HelpCenter.Categories.GetCategories(); + var res = Api.HelpCenter.Categories.GetCategories(); Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = api.HelpCenter.Categories.GetCategoryById(res.Categories[0].Id.Value); + var res1 = Api.HelpCenter.Categories.GetCategoryById(res.Categories[0].Id.Value); Assert.That(res.Categories[0].Id.Value, Is.EqualTo(res1.Category.Id)); } [Test] public void CanGetCategoriesPaged() { - var category1 = api.HelpCenter.Categories.CreateCategory(new Category { + var category1 = Api.HelpCenter.Categories.CreateCategory(new Category + { Name = "My Test category 1", Position = 0, Description = "First category" }); - var category2 = api.HelpCenter.Categories.CreateCategory(new Category { + var category2 = Api.HelpCenter.Categories.CreateCategory(new Category + { Name = "My Test category 2", Position = 0, Description = "Second category" }); const int count = 2; - var categories = api.HelpCenter.Categories.GetCategories(count, 1); + var categories = Api.HelpCenter.Categories.GetCategories(count, 1); Assert.That(categories.Categories.Count, Is.EqualTo(count)); // 2 Assert.That(categories.Count, Is.Not.EqualTo(categories.Categories.Count)); // 2 != total count of categories (assumption) const int page = 2; - var secondPage = api.HelpCenter.Categories.GetCategories(count, page); + var secondPage = Api.HelpCenter.Categories.GetCategories(count, page); Assert.That(secondPage.Categories.Count, Is.EqualTo(count)); @@ -81,37 +78,39 @@ public void CanGetCategoriesPaged() Assert.That(nextPage, Is.Not.Null); Assert.That(nextPage, Is.EqualTo((page + 1).ToString())); - Assert.That(api.HelpCenter.Categories.DeleteCategory(category1.Category.Id.Value), Is.True); - Assert.That(api.HelpCenter.Categories.DeleteCategory(category2.Category.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Categories.DeleteCategory(category1.Category.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Categories.DeleteCategory(category2.Category.Id.Value), Is.True); } [Test] public void CanGetCategoriesPagedAsync() { - var category1 = api.HelpCenter.Categories.CreateCategory(new Category { + var category1 = Api.HelpCenter.Categories.CreateCategory(new Category + { Name = "My Test category 1", Position = 0, Description = "First category" }); - var category2 = api.HelpCenter.Categories.CreateCategory(new Category { + var category2 = Api.HelpCenter.Categories.CreateCategory(new Category + { Name = "My Test category 2", Position = 0, Description = "Second category" }); const int count = 2; - var categoriesAsync = api.HelpCenter.Categories.GetCategoriesAsync(count, 1).Result; + var categoriesAsync = Api.HelpCenter.Categories.GetCategoriesAsync(count, 1).Result; - Assert.That(categoriesAsync.Count, Is.GreaterThan(0)); + Assert.That(categoriesAsync.Count, Is.GreaterThan(0)); - var categoryById1 = api.HelpCenter.Categories.GetCategoryById(categoriesAsync.Categories[0].Id.Value); + var categoryById1 = Api.HelpCenter.Categories.GetCategoryById(categoriesAsync.Categories[0].Id.Value); Assert.That(categoryById1.Category.Id, Is.EqualTo(categoriesAsync.Categories[0].Id.Value)); const int page = 2; - var secondPage = api.HelpCenter.Categories.GetCategoriesAsync(count, page).Result; - var categoryById2 = api.HelpCenter.Categories.GetCategoryById(secondPage.Categories[0].Id.Value); + var secondPage = Api.HelpCenter.Categories.GetCategoriesAsync(count, page).Result; + var categoryById2 = Api.HelpCenter.Categories.GetCategoryById(secondPage.Categories[0].Id.Value); Assert.That(secondPage.Categories.Count, Is.EqualTo(count)); Assert.That(categoryById2.Category.Id, Is.EqualTo(secondPage.Categories[0].Id.Value)); @@ -123,14 +122,14 @@ public void CanGetCategoriesPagedAsync() Assert.That(nextPage, Is.Not.Null); Assert.That(nextPage, Is.EqualTo((page + 1).ToString())); - Assert.That(api.HelpCenter.Categories.DeleteCategory(category1.Category.Id.Value), Is.True); - Assert.That(api.HelpCenter.Categories.DeleteCategory(category2.Category.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Categories.DeleteCategory(category1.Category.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Categories.DeleteCategory(category2.Category.Id.Value), Is.True); } [Test] public void CanCreateUpdateAndDeleteCategories() { - var res = api.HelpCenter.Categories.CreateCategory(new Category() + var res = Api.HelpCenter.Categories.CreateCategory(new Category() { Name = "My Test category", Description = "stuff and things", @@ -140,10 +139,10 @@ public void CanCreateUpdateAndDeleteCategories() Assert.That(res.Category.Id, Is.GreaterThan(0)); res.Category.Position = 2; - var update = api.HelpCenter.Categories.UpdateCategory(res.Category); + var update = Api.HelpCenter.Categories.UpdateCategory(res.Category); Assert.That(res.Category.Position, Is.EqualTo(update.Category.Position)); - Assert.That(api.HelpCenter.Categories.DeleteCategory(res.Category.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Categories.DeleteCategory(res.Category.Id.Value), Is.True); } } } diff --git a/test/ZendeskApi_v2.Test/HelpCenter/CommentTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/CommentTests.cs similarity index 72% rename from test/ZendeskApi_v2.Test/HelpCenter/CommentTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/CommentTests.cs index fa3522c4..c38a6e69 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/CommentTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/CommentTests.cs @@ -1,16 +1,16 @@ -using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; +using NUnit.Framework; +using System.Threading.Tasks; using ZendeskApi_v2.Models.Articles; using ZendeskApi_v2.Models.HelpCenter.Comments; using ZendeskApi_v2.Models.HelpCenter.Post; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] - public class CommentTests + [Category("HelpCenter_Comment")] + public class CommentTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private readonly long _testSectionIdForCommentsTest = 360000205286; //https://csharpapi.zendesk.com/hc/en-us/sections/360000205286-Test-Section-For-Comment-Tests private readonly long _testTopicIdForCommentsTest = Settings.Topic_ID; //https://csharpapi.zendesk.com/hc/en-us/community/topics/360000016546-Test-Topic-For-Comment-Tests @@ -30,47 +30,44 @@ public void OneTimeTearDown() private void DeleteAllArticlesFromTestSection() { - var articlesBySectionId = api.HelpCenter.Articles.GetArticlesBySectionId(_testSectionIdForCommentsTest); + var articlesBySectionId = Api.HelpCenter.Articles.GetArticlesBySectionId(_testSectionIdForCommentsTest); foreach (var article in articlesBySectionId.Articles) { - - api.HelpCenter.Articles.DeleteArticle(article.Id.Value); + Api.HelpCenter.Articles.DeleteArticle(article.Id.Value); } } - private void DeleteAllPostsFromTestTopic() { - var articlesBySectionId = api.HelpCenter.Posts.GetPostsByTopicId(_testTopicIdForCommentsTest); + var articlesBySectionId = Api.HelpCenter.Posts.GetPostsByTopicId(_testTopicIdForCommentsTest); foreach (var post in articlesBySectionId.Posts) { if (post.Title == "Help me!") { - api.HelpCenter.Posts.DeletePost(post.Id.Value); + Api.HelpCenter.Posts.DeletePost(post.Id.Value); } } } [Test] - [Ignore("this test is having an issue. Ticket has been opened see #5324783")] public void CanCreateUpdateAndDeleteCommentsForArticle() { var articleId = CreateTestArticle("Test-Article-For-Comments"); //Create 3 Comments - var individualCommentsResponse1 = api.HelpCenter.Comments.CreateCommentForArticle(articleId, new Comment {Body = "Comment 1", Locale = "en-us"}); + var individualCommentsResponse1 = Api.HelpCenter.Comments.CreateCommentForArticle(articleId, new Comment { Body = "Comment 1", Locale = "en-us" }); Assert.That(individualCommentsResponse1.Comment, Is.Not.Null); Assert.That(individualCommentsResponse1.Comment.Id, Is.GreaterThan(0)); - var individualCommentsResponse2 = api.HelpCenter.Comments.CreateCommentForArticle(articleId, new Comment {Body = "Comment 2", Locale = "en-us" }); + var individualCommentsResponse2 = Api.HelpCenter.Comments.CreateCommentForArticle(articleId, new Comment { Body = "Comment 2", Locale = "en-us" }); Assert.That(individualCommentsResponse2.Comment, Is.Not.Null); Assert.That(individualCommentsResponse2.Comment.Id, Is.GreaterThan(0)); - var individualCommentsResponse3 = api.HelpCenter.Comments.CreateCommentForArticle(articleId, new Comment {Body = "Comment 3", Locale = "en-us" }); + var individualCommentsResponse3 = Api.HelpCenter.Comments.CreateCommentForArticle(articleId, new Comment { Body = "Comment 3", Locale = "en-us" }); Assert.That(individualCommentsResponse3.Comment, Is.Not.Null); Assert.That(individualCommentsResponse3.Comment.Id, Is.GreaterThan(0)); - - Assert.That(api.HelpCenter.Comments.GetCommentsForArticle(articleId).Count, Is.EqualTo(3)); //That article have 3 comments + + Assert.That(Api.HelpCenter.Comments.GetCommentsForArticle(articleId).Count, Is.EqualTo(3)); //That article have 3 comments Assert.That(individualCommentsResponse1.Comment.Body, Is.EqualTo("Comment 1")); Assert.That(individualCommentsResponse2.Comment.Body, Is.EqualTo("Comment 2")); @@ -79,12 +76,12 @@ public void CanCreateUpdateAndDeleteCommentsForArticle() //Update Comment var updatedCommentBody = "Comment 2 Updated"; individualCommentsResponse2.Comment.Body = updatedCommentBody; - var updateCommentForArticle = api.HelpCenter.Comments.UpdateCommentForArticle(articleId, individualCommentsResponse2.Comment); - Assert.That(updateCommentForArticle.Comment.Body, Is.EqualTo(updatedCommentBody)); + var updateCommentForArticle = Api.HelpCenter.Comments.UpdateCommentForArticle(articleId, individualCommentsResponse2.Comment); + Assert.That(updateCommentForArticle.Comment.Body, Is.EqualTo($"

{updatedCommentBody}

")); //Delete Comment - api.HelpCenter.Comments.DeleteCommentForArticle(articleId, individualCommentsResponse2.Comment.Id.Value); - Assert.That(api.HelpCenter.Comments.GetCommentsForArticle(articleId).Count, Is.EqualTo(2)); //One less comments now + Api.HelpCenter.Comments.DeleteCommentForArticle(articleId, individualCommentsResponse2.Comment.Id.Value); + Assert.That(Api.HelpCenter.Comments.GetCommentsForArticle(articleId).Count, Is.EqualTo(2)); //One less comments now } [Test] @@ -93,19 +90,19 @@ public void CanCreateUpdateAndDeleteCommentsForPost() var postId = CreateTestPost("Test-Post-For-Comments"); //Create 3 Comments - var individualCommentsResponse1 = api.HelpCenter.Comments.CreateCommentForPost(postId, new Comment { Body = "Comment 1" }); + var individualCommentsResponse1 = Api.HelpCenter.Comments.CreateCommentForPost(postId, new Comment { Body = "Comment 1" }); Assert.That(individualCommentsResponse1.Comment, Is.Not.Null); Assert.That(individualCommentsResponse1.Comment.Id, Is.GreaterThan(0)); - var individualCommentsResponse2 = api.HelpCenter.Comments.CreateCommentForPost(postId, new Comment { Body = "Comment 2" }); + var individualCommentsResponse2 = Api.HelpCenter.Comments.CreateCommentForPost(postId, new Comment { Body = "Comment 2" }); Assert.That(individualCommentsResponse2.Comment, Is.Not.Null); Assert.That(individualCommentsResponse2.Comment.Id, Is.GreaterThan(0)); - var individualCommentsResponse3 = api.HelpCenter.Comments.CreateCommentForPost(postId, new Comment { Body = "Comment 3" }); + var individualCommentsResponse3 = Api.HelpCenter.Comments.CreateCommentForPost(postId, new Comment { Body = "Comment 3" }); Assert.That(individualCommentsResponse3.Comment, Is.Not.Null); Assert.That(individualCommentsResponse3.Comment.Id, Is.GreaterThan(0)); - Assert.That(api.HelpCenter.Comments.GetCommentsForPost(postId).Count, Is.EqualTo(3)); //That post have 3 comments + Assert.That(Api.HelpCenter.Comments.GetCommentsForPost(postId).Count, Is.EqualTo(3)); //That post have 3 comments Assert.That(individualCommentsResponse1.Comment.Body, Is.EqualTo("Comment 1")); Assert.That(individualCommentsResponse2.Comment.Body, Is.EqualTo("Comment 2")); @@ -114,34 +111,33 @@ public void CanCreateUpdateAndDeleteCommentsForPost() //Update Comment var updatedCommentBody = "Comment 2 Updated"; individualCommentsResponse2.Comment.Body = updatedCommentBody; - var updateCommentForPost = api.HelpCenter.Comments.UpdateCommentForPost(postId, individualCommentsResponse2.Comment); + var updateCommentForPost = Api.HelpCenter.Comments.UpdateCommentForPost(postId, individualCommentsResponse2.Comment); Assert.That(updateCommentForPost.Comment.Body, Is.EqualTo(updatedCommentBody)); //Delete Comment - api.HelpCenter.Comments.DeleteCommentForPost(postId, individualCommentsResponse2.Comment.Id.Value); - Assert.That(api.HelpCenter.Comments.GetCommentsForPost(postId).Count, Is.EqualTo(2)); //One less comments now + Api.HelpCenter.Comments.DeleteCommentForPost(postId, individualCommentsResponse2.Comment.Id.Value); + Assert.That(Api.HelpCenter.Comments.GetCommentsForPost(postId).Count, Is.EqualTo(2)); //One less comments now } [Test] - [Ignore("this test is having an issue. Ticket has been opened see #5324783")] public async Task CanCreateUpdateAndDeleteCommentsForArticleAsync() { var articleId = CreateTestArticle("Test-Article-For-Comments-Async"); //Create 3 Comments - var individualCommentsResponse1 = await api.HelpCenter.Comments.CreateCommentForArticleAsync(articleId, new Comment {Body = "Comment 1", Locale = "en-us"}); + var individualCommentsResponse1 = await Api.HelpCenter.Comments.CreateCommentForArticleAsync(articleId, new Comment { Body = "Comment 1", Locale = "en-us" }); Assert.That(individualCommentsResponse1.Comment, Is.Not.Null); Assert.That(individualCommentsResponse1.Comment.Id, Is.GreaterThan(0)); - var individualCommentsResponse2 = await api.HelpCenter.Comments.CreateCommentForArticleAsync(articleId, new Comment {Body = "Comment 2", Locale = "en-us" }); + var individualCommentsResponse2 = await Api.HelpCenter.Comments.CreateCommentForArticleAsync(articleId, new Comment { Body = "Comment 2", Locale = "en-us" }); Assert.That(individualCommentsResponse2.Comment, Is.Not.Null); Assert.That(individualCommentsResponse2.Comment.Id, Is.GreaterThan(0)); - var individualCommentsResponse3 = await api.HelpCenter.Comments.CreateCommentForArticleAsync(articleId, new Comment {Body = "Comment 3", Locale = "en-us" }); + var individualCommentsResponse3 = await Api.HelpCenter.Comments.CreateCommentForArticleAsync(articleId, new Comment { Body = "Comment 3", Locale = "en-us" }); Assert.That(individualCommentsResponse3.Comment, Is.Not.Null); Assert.That(individualCommentsResponse3.Comment.Id, Is.GreaterThan(0)); - - Assert.That((await api.HelpCenter.Comments.GetCommentsForArticleAsync(articleId)).Count, Is.EqualTo(3)); //That article have 3 comments + + Assert.That((await Api.HelpCenter.Comments.GetCommentsForArticleAsync(articleId)).Count, Is.EqualTo(3)); //That article have 3 comments Assert.That(individualCommentsResponse1.Comment.Body, Is.EqualTo("Comment 1")); Assert.That(individualCommentsResponse2.Comment.Body, Is.EqualTo("Comment 2")); @@ -150,12 +146,12 @@ public async Task CanCreateUpdateAndDeleteCommentsForArticleAsync() //Update Comment var updatedCommentBody = "Comment 2 Updated"; individualCommentsResponse2.Comment.Body = updatedCommentBody; - var updateCommentForArticle = await api.HelpCenter.Comments.UpdateCommentForArticleAsync(articleId, individualCommentsResponse2.Comment); - Assert.That(updateCommentForArticle.Comment.Body, Is.EqualTo(updatedCommentBody)); + var updateCommentForArticle = await Api.HelpCenter.Comments.UpdateCommentForArticleAsync(articleId, individualCommentsResponse2.Comment); + Assert.That(updateCommentForArticle.Comment.Body, Is.EqualTo($"

{updatedCommentBody}

")); //Delete Comment - await api.HelpCenter.Comments.DeleteCommentForArticleAsync(articleId, individualCommentsResponse2.Comment.Id.Value); - Assert.That((await api.HelpCenter.Comments.GetCommentsForArticleAsync(articleId)).Count, Is.EqualTo(2)); //One less comments now + await Api.HelpCenter.Comments.DeleteCommentForArticleAsync(articleId, individualCommentsResponse2.Comment.Id.Value); + Assert.That((await Api.HelpCenter.Comments.GetCommentsForArticleAsync(articleId)).Count, Is.EqualTo(2)); //One less comments now } [Test] @@ -164,19 +160,19 @@ public async Task CanCreateUpdateAndDeleteCommentsForPostAsync() var postId = CreateTestPost("Test-Post-For-Comments-Async"); //Create 3 Comments - var individualCommentsResponse1 = await api.HelpCenter.Comments.CreateCommentForPostAsync(postId, new Comment { Body = "Comment 1" }); + var individualCommentsResponse1 = await Api.HelpCenter.Comments.CreateCommentForPostAsync(postId, new Comment { Body = "Comment 1" }); Assert.That(individualCommentsResponse1.Comment, Is.Not.Null); Assert.That(individualCommentsResponse1.Comment.Id, Is.GreaterThan(0)); - var individualCommentsResponse2 = await api.HelpCenter.Comments.CreateCommentForPostAsync(postId, new Comment { Body = "Comment 2" }); + var individualCommentsResponse2 = await Api.HelpCenter.Comments.CreateCommentForPostAsync(postId, new Comment { Body = "Comment 2" }); Assert.That(individualCommentsResponse2.Comment, Is.Not.Null); Assert.That(individualCommentsResponse2.Comment.Id, Is.GreaterThan(0)); - var individualCommentsResponse3 = await api.HelpCenter.Comments.CreateCommentForPostAsync(postId, new Comment { Body = "Comment 3" }); + var individualCommentsResponse3 = await Api.HelpCenter.Comments.CreateCommentForPostAsync(postId, new Comment { Body = "Comment 3" }); Assert.That(individualCommentsResponse3.Comment, Is.Not.Null); Assert.That(individualCommentsResponse3.Comment.Id, Is.GreaterThan(0)); - Assert.That((await api.HelpCenter.Comments.GetCommentsForPostAsync(postId)).Count, Is.EqualTo(3)); //That post have 3 comments + Assert.That((await Api.HelpCenter.Comments.GetCommentsForPostAsync(postId)).Count, Is.EqualTo(3)); //That post have 3 comments Assert.That(individualCommentsResponse1.Comment.Body, Is.EqualTo("Comment 1")); Assert.That(individualCommentsResponse2.Comment.Body, Is.EqualTo("Comment 2")); @@ -185,27 +181,27 @@ public async Task CanCreateUpdateAndDeleteCommentsForPostAsync() //Update Comment var updatedCommentBody = "Comment 2 Updated"; individualCommentsResponse2.Comment.Body = updatedCommentBody; - var updateCommentForPost = await api.HelpCenter.Comments.UpdateCommentForPostAsync(postId, individualCommentsResponse2.Comment); + var updateCommentForPost = await Api.HelpCenter.Comments.UpdateCommentForPostAsync(postId, individualCommentsResponse2.Comment); Assert.That(updateCommentForPost.Comment.Body, Is.EqualTo(updatedCommentBody)); //Delete Comment - await api.HelpCenter.Comments.DeleteCommentForPostAsync(postId, individualCommentsResponse2.Comment.Id.Value); - Assert.That((await api.HelpCenter.Comments.GetCommentsForPostAsync(postId)).Count, Is.EqualTo(2)); //One less comments now + await Api.HelpCenter.Comments.DeleteCommentForPostAsync(postId, individualCommentsResponse2.Comment.Id.Value); + Assert.That((await Api.HelpCenter.Comments.GetCommentsForPostAsync(postId)).Count, Is.EqualTo(2)); //One less comments now } private long CreateTestArticle(string testArticleForComments) { - var article = new Article {Title = testArticleForComments, Body = "Test"}; + var article = new Article { Title = testArticleForComments, Body = "Test" }; - var individualArticleResponse = api.HelpCenter.Articles.CreateArticle(_testSectionIdForCommentsTest, article); + var individualArticleResponse = Api.HelpCenter.Articles.CreateArticle(_testSectionIdForCommentsTest, article); return individualArticleResponse.Article.Id.Value; } private long CreateTestPost(string testPostForComments) { - var post = new Post {Title = testPostForComments, TopicId = _testTopicIdForCommentsTest}; + var post = new Post { Title = testPostForComments, TopicId = _testTopicIdForCommentsTest }; - var individualArticleResponse = api.HelpCenter.Posts.CreatePost(post); + var individualArticleResponse = Api.HelpCenter.Posts.CreatePost(post); return individualArticleResponse.Post.Id.Value; } } diff --git a/test/ZendeskApi_v2.Test/HelpCenter/PostTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/PostTests.cs similarity index 69% rename from test/ZendeskApi_v2.Test/HelpCenter/PostTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/PostTests.cs index dc2a0b58..145912ad 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/PostTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/PostTests.cs @@ -1,36 +1,32 @@ using NUnit.Framework; -using System; -using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; -using ZendeskApi_v2; using ZendeskApi_v2.Models.HelpCenter.Post; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - public class PostTests + public class PostTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private const string postTitile = "Help me!"; private const string postDetails = "My printer is on fire!"; [OneTimeSetUp] public void Setup() { - var res = api.HelpCenter.Posts.GetPostsByTopicId(Settings.Topic_ID, 100); + var res = Api.HelpCenter.Posts.GetPostsByTopicId(Settings.Topic_ID, 100); foreach (var post in res.Posts?.Where(x => x.Title == "Help me!")) { - api.HelpCenter.Posts.DeletePost(post.Id.Value); + Api.HelpCenter.Posts.DeletePost(post.Id.Value); } } [Test] public void CanGetPosts() { - var res = api.HelpCenter.Posts.GetPosts(); + var res = Api.HelpCenter.Posts.GetPosts(); Assert.That(res.Posts.Count, Is.GreaterThan(0)); } @@ -38,7 +34,7 @@ public void CanGetPosts() public void CanCreatePost() { var post = new Post { Title = postTitile, Details = postDetails, TopicId = Settings.Topic_ID }; - var res = api.HelpCenter.Posts.CreatePost(post); + var res = Api.HelpCenter.Posts.CreatePost(post); Assert.That(res?.Post, Is.Not.Null); } @@ -46,23 +42,23 @@ public void CanCreatePost() public void CanDeletePost() { var post = new Post { Title = postTitile, Details = postDetails, TopicId = Settings.Topic_ID }; - var res = api.HelpCenter.Posts.CreatePost(post); - Assert.That(api.HelpCenter.Posts.DeletePost(res.Post.Id.Value), Is.True); + var res = Api.HelpCenter.Posts.CreatePost(post); + Assert.That(Api.HelpCenter.Posts.DeletePost(res.Post.Id.Value), Is.True); } [Test] public void CanGetPost() { var post = new Post { Title = postTitile, Details = postDetails, TopicId = Settings.Topic_ID }; - var res = api.HelpCenter.Posts.CreatePost(post); - var get = api.HelpCenter.Posts.GetPost(res.Post.Id.Value); + var res = Api.HelpCenter.Posts.CreatePost(post); + var get = Api.HelpCenter.Posts.GetPost(res.Post.Id.Value); Assert.That(get.Post.Id, Is.EqualTo(res.Post.Id)); } [Test] public void CanGetPostForTopicId() { - var res = api.HelpCenter.Posts.GetPostsByTopicId(Settings.Topic_ID); + var res = Api.HelpCenter.Posts.GetPostsByTopicId(Settings.Topic_ID); Assert.That(res.Posts, Is.Not.Null); Assert.That(res.Posts.Count, Is.GreaterThan(0)); } @@ -72,10 +68,10 @@ public void CanUpdatePost() { var updatedPostDetails = "This has been updated"; var post = new Post { Title = postTitile, Details = postDetails, TopicId = Settings.Topic_ID }; - var res = api.HelpCenter.Posts.CreatePost(post); + var res = Api.HelpCenter.Posts.CreatePost(post); res.Post.Details = updatedPostDetails; - var updated = api.HelpCenter.Posts.UpdatePost(res.Post); + var updated = Api.HelpCenter.Posts.UpdatePost(res.Post); Assert.That(updated?.Post, Is.Not.Null); Assert.That(updated.Post.Details, Is.EqualTo(updatedPostDetails)); @@ -84,7 +80,7 @@ public void CanUpdatePost() [Test] public async Task CanGetPostsAsync() { - var res = await api.HelpCenter.Posts.GetPostsAsync(); + var res = await Api.HelpCenter.Posts.GetPostsAsync(); Assert.That(res.Posts.Count, Is.GreaterThan(0)); } @@ -92,7 +88,7 @@ public async Task CanGetPostsAsync() public async Task CanCreatePostAsync() { var post = new Post { Title = postTitile, Details = postDetails, TopicId = Settings.Topic_ID }; - var res = await api.HelpCenter.Posts.CreatePostAsync(post); + var res = await Api.HelpCenter.Posts.CreatePostAsync(post); Assert.That(res?.Post, Is.Not.Null); } @@ -100,23 +96,23 @@ public async Task CanCreatePostAsync() public async Task CanDeletePostAsync() { var post = new Post { Title = postTitile, Details = postDetails, TopicId = Settings.Topic_ID }; - var res = await api.HelpCenter.Posts.CreatePostAsync(post); - Assert.That( await api.HelpCenter.Posts.DeletePostAsync(res.Post.Id.Value), Is.True); + var res = await Api.HelpCenter.Posts.CreatePostAsync(post); + Assert.That(await Api.HelpCenter.Posts.DeletePostAsync(res.Post.Id.Value), Is.True); } [Test] public async Task CanGetPostAsync() { var post = new Post { Title = postTitile, Details = postDetails, TopicId = Settings.Topic_ID }; - var res = await api.HelpCenter.Posts.CreatePostAsync(post); - var get = await api.HelpCenter.Posts.GetPostAsync(res.Post.Id.Value); + var res = await Api.HelpCenter.Posts.CreatePostAsync(post); + var get = await Api.HelpCenter.Posts.GetPostAsync(res.Post.Id.Value); Assert.That(get.Post.Id, Is.EqualTo(res.Post.Id)); } [Test] public async Task CanGetPostForTopicIdAsync() { - var res = await api.HelpCenter.Posts.GetPostsByTopicIdAsync(Settings.Topic_ID); + var res = await Api.HelpCenter.Posts.GetPostsByTopicIdAsync(Settings.Topic_ID); Assert.That(res.Posts, Is.Not.Null); Assert.That(res.Posts.Count, Is.GreaterThan(0)); } @@ -126,10 +122,10 @@ public async Task CanUpdatePostAsync() { var updatedPostDetails = "This has been updated"; var post = new Post { Title = postTitile, Details = postDetails, TopicId = Settings.Topic_ID }; - var res = await api.HelpCenter.Posts.CreatePostAsync(post); + var res = await Api.HelpCenter.Posts.CreatePostAsync(post); res.Post.Details = updatedPostDetails; - var updated = await api.HelpCenter.Posts.UpdatePostAsync(res.Post); + var updated = await Api.HelpCenter.Posts.UpdatePostAsync(res.Post); Assert.That(updated?.Post, Is.Not.Null); Assert.That(updated.Post.Details, Is.EqualTo(updatedPostDetails)); diff --git a/test/ZendeskApi_v2.Test/HelpCenter/SectionTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/SectionTests.cs similarity index 71% rename from test/ZendeskApi_v2.Test/HelpCenter/SectionTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/SectionTests.cs index d2b599e3..0b4edc38 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/SectionTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/SectionTests.cs @@ -1,37 +1,35 @@ -using System.Linq; +using NUnit.Framework; +using System.Linq; using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; using ZendeskApi_v2.Extensions; using ZendeskApi_v2.Models.Sections; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - public class SectionTests + public class SectionTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - private readonly long[] safeSections = new long[] { 360002891952, 360000205286, 201010935 }; [OneTimeSetUp] public async Task Setup() { - var sectionsResp = await api.HelpCenter.Sections.GetSectionsAsync(); + var sectionsResp = await Api.HelpCenter.Sections.GetSectionsAsync(); do { foreach (var section in sectionsResp.Sections) { if (!safeSections.Contains(section.Id.Value)) { - await api.HelpCenter.Sections.DeleteSectionAsync(section.Id.Value); + await Api.HelpCenter.Sections.DeleteSectionAsync(section.Id.Value); } } if (!string.IsNullOrWhiteSpace(sectionsResp.NextPage)) { - sectionsResp = await api.HelpCenter.Sections.GetSectionsAsync(); + sectionsResp = await Api.HelpCenter.Sections.GetSectionsAsync(); } } while (!string.IsNullOrWhiteSpace(sectionsResp.NextPage)); } @@ -39,10 +37,10 @@ public async Task Setup() [Test] public void CanGetSections() { - var res = api.HelpCenter.Sections.GetSections(); + var res = Api.HelpCenter.Sections.GetSections(); Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = api.HelpCenter.Sections.GetSectionById(res.Sections[0].Id.Value); + var res1 = Api.HelpCenter.Sections.GetSectionById(res.Sections[0].Id.Value); Assert.That(res.Sections[0].Id.Value, Is.EqualTo(res1.Section.Id)); } @@ -52,26 +50,28 @@ public void CanGetSectionsPaged() //https://csharpapi.zendesk.com/hc/en-us/categories/200382245-Category-1 long category_id = 200382245; - var section1 = api.HelpCenter.Sections.CreateSection(new Section { + var section1 = Api.HelpCenter.Sections.CreateSection(new Section + { Name = "My Test section 1", Position = 0, CategoryId = category_id }); - var section2 = api.HelpCenter.Sections.CreateSection(new Section { + var section2 = Api.HelpCenter.Sections.CreateSection(new Section + { Name = "My Test section 2", Position = 0, CategoryId = category_id }); const int count = 2; - var sections = api.HelpCenter.Sections.GetSections(count, 1); + var sections = Api.HelpCenter.Sections.GetSections(count, 1); Assert.That(sections.Sections.Count, Is.EqualTo(count)); // 2 Assert.That(sections.Count, Is.Not.EqualTo(sections.Sections.Count)); // 2 != total count of sections (assumption) const int page = 2; - var secondPage = api.HelpCenter.Sections.GetSections(count, page); + var secondPage = Api.HelpCenter.Sections.GetSections(count, page); Assert.That(secondPage.Sections.Count, Is.EqualTo(count)); @@ -82,8 +82,8 @@ public void CanGetSectionsPaged() Assert.That(nextPage, Is.Not.Null); Assert.That(nextPage, Is.EqualTo((page + 1).ToString())); - Assert.That(api.HelpCenter.Sections.DeleteSection(section1.Section.Id.Value), Is.True); - Assert.That(api.HelpCenter.Sections.DeleteSection(section2.Section.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Sections.DeleteSection(section1.Section.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Sections.DeleteSection(section2.Section.Id.Value), Is.True); } [Test] @@ -92,30 +92,32 @@ public void CanGetSectionsPagedAsync() //https://csharpapi.zendesk.com/hc/en-us/categories/200382245-Category-1 long category_id = 200382245; - var section1 = api.HelpCenter.Sections.CreateSection(new Section { + var section1 = Api.HelpCenter.Sections.CreateSection(new Section + { Name = "My Test section 1", Position = 0, CategoryId = category_id }); - var section2 = api.HelpCenter.Sections.CreateSection(new Section { + var section2 = Api.HelpCenter.Sections.CreateSection(new Section + { Name = "My Test section 2", Position = 0, CategoryId = category_id }); const int count = 2; - var sectionsAsync = api.HelpCenter.Sections.GetSectionsAsync(count, 1).Result; + var sectionsAsync = Api.HelpCenter.Sections.GetSectionsAsync(count, 1).Result; Assert.That(sectionsAsync.Count, Is.GreaterThan(0)); - var sectionById1 = api.HelpCenter.Sections.GetSectionById(sectionsAsync.Sections[0].Id.Value); + var sectionById1 = Api.HelpCenter.Sections.GetSectionById(sectionsAsync.Sections[0].Id.Value); Assert.That(sectionById1.Section.Id, Is.EqualTo(sectionsAsync.Sections[0].Id.Value)); const int page = 2; - var secondPage = api.HelpCenter.Sections.GetSectionsAsync(count, page).Result; - var sectionById2 = api.HelpCenter.Sections.GetSectionById(secondPage.Sections[0].Id.Value); + var secondPage = Api.HelpCenter.Sections.GetSectionsAsync(count, page).Result; + var sectionById2 = Api.HelpCenter.Sections.GetSectionById(secondPage.Sections[0].Id.Value); Assert.That(secondPage.Sections.Count, Is.EqualTo(count)); Assert.That(sectionById2.Section.Id, Is.EqualTo(secondPage.Sections[0].Id.Value)); @@ -127,8 +129,8 @@ public void CanGetSectionsPagedAsync() Assert.That(nextPage, Is.Not.Null); Assert.That(nextPage, Is.EqualTo((page + 1).ToString())); - Assert.That(api.HelpCenter.Sections.DeleteSection(section1.Section.Id.Value), Is.True); - Assert.That(api.HelpCenter.Sections.DeleteSection(section2.Section.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Sections.DeleteSection(section1.Section.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Sections.DeleteSection(section2.Section.Id.Value), Is.True); } [Test] @@ -137,7 +139,7 @@ public void CanCreateUpdateAndDeleteSections() //https://csharpapi.zendesk.com/hc/en-us/categories/200382245-Category-1 long category_id = 200382245; - var res = api.HelpCenter.Sections.CreateSection(new Section + var res = Api.HelpCenter.Sections.CreateSection(new Section { Name = "My Test section", Position = 12, @@ -146,18 +148,18 @@ public void CanCreateUpdateAndDeleteSections() Assert.That(res.Section.Id, Is.GreaterThan(0)); res.Section.Position = 42; - var update = api.HelpCenter.Sections.UpdateSection(res.Section); + var update = Api.HelpCenter.Sections.UpdateSection(res.Section); Assert.That(update.Section.Position, Is.EqualTo(res.Section.Position)); - Assert.That(api.HelpCenter.Sections.DeleteSection(res.Section.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Sections.DeleteSection(res.Section.Id.Value), Is.True); } [Test] public void CanGetSectionsAsync() { - var res = api.HelpCenter.Sections.GetSectionsAsync().Result; + var res = Api.HelpCenter.Sections.GetSectionsAsync().Result; Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = api.HelpCenter.Sections.GetSectionById(res.Sections[0].Id.Value); + var res1 = Api.HelpCenter.Sections.GetSectionById(res.Sections[0].Id.Value); Assert.That(res.Sections[0].Id.Value, Is.EqualTo(res1.Section.Id)); } @@ -167,7 +169,7 @@ public async Task CanCreateUpdateAndDeleteSectionsAsync() //https://csharpapi.zendesk.com/hc/en-us/categories/200382245-Category-1 long category_id = 200382245; - var res = await api.HelpCenter.Sections.CreateSectionAsync(new Section + var res = await Api.HelpCenter.Sections.CreateSectionAsync(new Section { Name = "My Test section", Position = 12, @@ -177,9 +179,9 @@ public async Task CanCreateUpdateAndDeleteSectionsAsync() Assert.That(res.Section.Id, Is.GreaterThan(0)); res.Section.Position = 42; - var update = await api.HelpCenter.Sections.UpdateSectionAsync(res.Section); + var update = await Api.HelpCenter.Sections.UpdateSectionAsync(res.Section); Assert.That(update.Section.Position, Is.EqualTo(res.Section.Position)); - Assert.That(await api.HelpCenter.Sections.DeleteSectionAsync(res.Section.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Sections.DeleteSectionAsync(res.Section.Id.Value), Is.True); } } } diff --git a/test/ZendeskApi_v2.Test/HelpCenter/SubscriptionTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/SubscriptionTests.cs similarity index 70% rename from test/ZendeskApi_v2.Test/HelpCenter/SubscriptionTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/SubscriptionTests.cs index e2ff2727..47560c0d 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/SubscriptionTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/SubscriptionTests.cs @@ -1,24 +1,23 @@ -using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; +using NUnit.Framework; +using System.Threading.Tasks; using ZendeskApi_v2.Models.Articles; using ZendeskApi_v2.Models.HelpCenter.Post; using ZendeskApi_v2.Models.HelpCenter.Subscriptions; using ZendeskApi_v2.Models.HelpCenter.Topics; using ZendeskApi_v2.Models.Sections; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - public class SubscriptionTests + public class SubscriptionTests : TestBase { private const string ARTICLE_TITLE = "Subscription Testing Please Delete"; private const string SECTION_NAME = "Subscription Test Section"; private const string TOPIC_NAME = "Subscription Testing Please Delete"; private const string POST_TITLE = "Subscription Testing Please Delete"; private const string LOCALE = "en-us"; - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private Section section; private Article article; private Topic topic; @@ -27,38 +26,38 @@ public class SubscriptionTests [OneTimeSetUp] public async Task SetupAsync() { - var articlesResp = await api.HelpCenter.Articles.SearchArticlesForAsync(ARTICLE_TITLE); + var articlesResp = await Api.HelpCenter.Articles.SearchArticlesForAsync(ARTICLE_TITLE); do { foreach (var result in articlesResp.Results) { - await api.HelpCenter.Articles.DeleteArticleAsync(result.Id.Value); + await Api.HelpCenter.Articles.DeleteArticleAsync(result.Id.Value); } if (!string.IsNullOrWhiteSpace(articlesResp.NextPage)) { - articlesResp = await api.HelpCenter.Articles.GetByPageUrlAsync(articlesResp.NextPage, 100); + articlesResp = await Api.HelpCenter.Articles.GetByPageUrlAsync(articlesResp.NextPage, 100); } } while (articlesResp.Results.Count > 0); - var sectionsResp = await api.HelpCenter.Sections.GetSectionsAsync(); + var sectionsResp = await Api.HelpCenter.Sections.GetSectionsAsync(); do { foreach (var section in sectionsResp.Sections) { if (section.Name == SECTION_NAME) { - await api.HelpCenter.Sections.DeleteSectionAsync(section.Id.Value); + await Api.HelpCenter.Sections.DeleteSectionAsync(section.Id.Value); } } if (!string.IsNullOrWhiteSpace(sectionsResp.NextPage)) { - sectionsResp = await api.HelpCenter.Articles.GetByPageUrlAsync(sectionsResp.NextPage, 100); + sectionsResp = await Api.HelpCenter.Articles.GetByPageUrlAsync(sectionsResp.NextPage, 100); } } while (!string.IsNullOrWhiteSpace(sectionsResp.NextPage)); - var usersSubscriptions = await api.Users.GetSubscriptionsAsync(Settings.UserId, SubscriptionSideLoadOptions.None, 100, 1); + var usersSubscriptions = await Api.Users.GetSubscriptionsAsync(Admin.ID, SubscriptionSideLoadOptions.None, 100, 1); do { foreach (var subscription in usersSubscriptions.Subscriptions) @@ -66,36 +65,36 @@ public async Task SetupAsync() switch (subscription.ContentType) { case "Article": - await api.HelpCenter.Articles.DeleteSubscriptionAsync(subscription.ContentId, subscription.Id.Value); + await Api.HelpCenter.Articles.DeleteSubscriptionAsync(subscription.ContentId, subscription.Id.Value); break; case "Section": - await api.HelpCenter.Sections.DeleteSubscriptionAsync(subscription.ContentId, subscription.Id.Value); + await Api.HelpCenter.Sections.DeleteSubscriptionAsync(subscription.ContentId, subscription.Id.Value); break; case "Post": - await api.HelpCenter.Posts.DeleteSubscriptionAsync(subscription.ContentId, subscription.Id.Value); + await Api.HelpCenter.Posts.DeleteSubscriptionAsync(subscription.ContentId, subscription.Id.Value); break; case "Topic": - await api.HelpCenter.Topics.DeleteSubscriptionAsync(subscription.ContentId, subscription.Id.Value); + await Api.HelpCenter.Topics.DeleteSubscriptionAsync(subscription.ContentId, subscription.Id.Value); break; } } if (!string.IsNullOrWhiteSpace(usersSubscriptions.NextPage)) { - usersSubscriptions = await api.Users.GetByPageUrlAsync(usersSubscriptions.NextPage, 100); + usersSubscriptions = await Api.Users.GetByPageUrlAsync(usersSubscriptions.NextPage, 100); } } while (!string.IsNullOrWhiteSpace(usersSubscriptions.NextPage)); - var sectionResp = await api.HelpCenter.Sections.CreateSectionAsync(new Section { Name = SECTION_NAME, Locale = LOCALE, CategoryId = Settings.Category_ID }); + var sectionResp = await Api.HelpCenter.Sections.CreateSectionAsync(new Section { Name = SECTION_NAME, Locale = LOCALE, CategoryId = Settings.Category_ID }); section = sectionResp.Section; - var articleResp = await api.HelpCenter.Articles.CreateArticleAsync(section.Id.Value, new Article { Title = ARTICLE_TITLE }); + var articleResp = await Api.HelpCenter.Articles.CreateArticleAsync(section.Id.Value, new Article { Title = ARTICLE_TITLE }); article = articleResp.Article; - var topicResp = await api.HelpCenter.Topics.CreateTopicAsync(new Topic { Name = TOPIC_NAME }); + var topicResp = await Api.HelpCenter.Topics.CreateTopicAsync(new Topic { Name = TOPIC_NAME }); topic = topicResp.Topic; - var postResp = await api.HelpCenter.Posts.CreatePostAsync(new Post { Title = POST_TITLE, TopicId = topic.Id.Value }); + var postResp = await Api.HelpCenter.Posts.CreatePostAsync(new Post { Title = POST_TITLE, TopicId = topic.Id.Value }); post = postResp.Post; await Task.Delay(10); } @@ -103,16 +102,16 @@ public async Task SetupAsync() [OneTimeTearDown] public async Task CleanUpAsync() { - await api.HelpCenter.Articles.DeleteArticleAsync(article.Id.Value); - await api.HelpCenter.Sections.DeleteSectionAsync(section.Id.Value); - await api.HelpCenter.Posts.DeletePostAsync(post.Id.Value); - await api.HelpCenter.Topics.DeleteTopicAsync(topic.Id.Value); + await Api.HelpCenter.Articles.DeleteArticleAsync(article.Id.Value); + await Api.HelpCenter.Sections.DeleteSectionAsync(section.Id.Value); + await Api.HelpCenter.Posts.DeletePostAsync(post.Id.Value); + await Api.HelpCenter.Topics.DeleteTopicAsync(topic.Id.Value); } [Test] public async Task CanCreateArticleSubscriptionAsync() { - var resp = await api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE)); + var resp = await Api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE)); Assert.That(resp.Subscription, Is.Not.Null); } @@ -120,9 +119,9 @@ public async Task CanCreateArticleSubscriptionAsync() [Test] public async Task CanGetArticleSubscriptionAsync() { - var resp = await api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE)); + var resp = await Api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE)); - var listResp = await api.HelpCenter.Articles.GetSubscriptionAsync(article.Id.Value, resp.Subscription.Id.Value, SubscriptionSideLoadOptions.Articles | SubscriptionSideLoadOptions.Sections); + var listResp = await Api.HelpCenter.Articles.GetSubscriptionAsync(article.Id.Value, resp.Subscription.Id.Value, SubscriptionSideLoadOptions.Articles | SubscriptionSideLoadOptions.Sections); Assert.That(listResp.Subscription, Is.Not.Null); Assert.That(listResp.Articles.Count, Is.GreaterThan(0)); @@ -132,9 +131,9 @@ public async Task CanGetArticleSubscriptionAsync() [Test] public async Task CanGetArticlesSubscriptionAsync() { - await api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE)); + await Api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE)); - var listResp = await api.HelpCenter.Articles.GetSubscriptionsAsync(article.Id.Value, SubscriptionSideLoadOptions.Articles | SubscriptionSideLoadOptions.Sections); + var listResp = await Api.HelpCenter.Articles.GetSubscriptionsAsync(article.Id.Value, SubscriptionSideLoadOptions.Articles | SubscriptionSideLoadOptions.Sections); Assert.That(listResp.Subscriptions, Is.Not.Null); Assert.That(listResp.Articles, Is.Not.Null); @@ -143,15 +142,15 @@ public async Task CanGetArticlesSubscriptionAsync() [Test] public async Task CanDeleteArticleSubscriptionAsync() { - var resp = await api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE)); + var resp = await Api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE)); - Assert.That(await api.HelpCenter.Articles.DeleteSubscriptionAsync(article.Id.Value, resp.Subscription.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Articles.DeleteSubscriptionAsync(article.Id.Value, resp.Subscription.Id.Value), Is.True); } [Test] public async Task CanCreateSectionSubscriptionAsync() { - var resp = await api.HelpCenter.Sections.CreateSubscriptionAsync(section.Id.Value, new SectionSubscription(LOCALE)); + var resp = await Api.HelpCenter.Sections.CreateSubscriptionAsync(section.Id.Value, new SectionSubscription(LOCALE)); Assert.That(resp.Subscription, Is.Not.Null); } @@ -159,9 +158,9 @@ public async Task CanCreateSectionSubscriptionAsync() [Test] public async Task CanGetSectionSubscriptionAsync() { - var resp = await api.HelpCenter.Sections.CreateSubscriptionAsync(section.Id.Value, new SectionSubscription(LOCALE)); + var resp = await Api.HelpCenter.Sections.CreateSubscriptionAsync(section.Id.Value, new SectionSubscription(LOCALE)); - var listResp = await api.HelpCenter.Sections.GetSubscriptionAsync(section.Id.Value, resp.Subscription.Id.Value, SubscriptionSideLoadOptions.Sections); + var listResp = await Api.HelpCenter.Sections.GetSubscriptionAsync(section.Id.Value, resp.Subscription.Id.Value, SubscriptionSideLoadOptions.Sections); Assert.That(resp.Subscription, Is.Not.Null); Assert.That(listResp.Sections.Count, Is.GreaterThan(0)); @@ -170,17 +169,17 @@ public async Task CanGetSectionSubscriptionAsync() [Test] public async Task CanDeleteSectionsSubscriptionAsync() { - var resp = await api.HelpCenter.Sections.CreateSubscriptionAsync(section.Id.Value, new SectionSubscription(LOCALE)); + var resp = await Api.HelpCenter.Sections.CreateSubscriptionAsync(section.Id.Value, new SectionSubscription(LOCALE)); - Assert.That(await api.HelpCenter.Sections.DeleteSubscriptionAsync(section.Id.Value, resp.Subscription.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Sections.DeleteSubscriptionAsync(section.Id.Value, resp.Subscription.Id.Value), Is.True); } [Test] public async Task CanListUserSubscriptionsAsync() { - await api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE) { UserId = Settings.UserId }); + await Api.HelpCenter.Articles.CreateSubscriptionAsync(article.Id.Value, new ArticleSubscription(LOCALE) { UserId = Admin.ID }); - var listResp = await api.Users.GetSubscriptionsAsync(Settings.UserId); + var listResp = await Api.Users.GetSubscriptionsAsync(Admin.ID); Assert.That(listResp.Subscriptions.Count, Is.GreaterThan(0)); } @@ -188,7 +187,7 @@ public async Task CanListUserSubscriptionsAsync() [Test] public async Task CanCreatePostSubscriptionAsync() { - var resp = await api.HelpCenter.Posts.CreateSubscriptionAsync(post.Id.Value, new Subscription { Locale = LOCALE }); + var resp = await Api.HelpCenter.Posts.CreateSubscriptionAsync(post.Id.Value, new Subscription { Locale = LOCALE }); Assert.That(resp.Subscription, Is.Not.Null); } @@ -196,9 +195,9 @@ public async Task CanCreatePostSubscriptionAsync() [Test] public async Task CanGetPostSubscriptionAsync() { - var resp = await api.HelpCenter.Posts.CreateSubscriptionAsync(post.Id.Value, new Subscription { Locale = LOCALE }); + var resp = await Api.HelpCenter.Posts.CreateSubscriptionAsync(post.Id.Value, new Subscription { Locale = LOCALE }); - var listResp = await api.HelpCenter.Posts.GetSubscriptionAsync(post.Id.Value, resp.Subscription.Id.Value, SubscriptionSideLoadOptions.Users); + var listResp = await Api.HelpCenter.Posts.GetSubscriptionAsync(post.Id.Value, resp.Subscription.Id.Value, SubscriptionSideLoadOptions.Users); Assert.That(resp.Subscription, Is.Not.Null); Assert.That(listResp.Users.Count, Is.GreaterThan(0)); @@ -207,9 +206,9 @@ public async Task CanGetPostSubscriptionAsync() [Test] public async Task CanGetPostSubscriptionsAsync() { - var resp = await api.HelpCenter.Posts.CreateSubscriptionAsync(post.Id.Value, new Subscription { Locale = LOCALE }); + var resp = await Api.HelpCenter.Posts.CreateSubscriptionAsync(post.Id.Value, new Subscription { Locale = LOCALE }); - var listResp = await api.HelpCenter.Posts.GetSubscriptionsAsync(post.Id.Value, SubscriptionSideLoadOptions.Users); + var listResp = await Api.HelpCenter.Posts.GetSubscriptionsAsync(post.Id.Value, SubscriptionSideLoadOptions.Users); Assert.That(resp.Subscription, Is.Not.Null); Assert.That(listResp.Users.Count, Is.GreaterThan(0)); @@ -218,15 +217,15 @@ public async Task CanGetPostSubscriptionsAsync() [Test] public async Task CanDeletePostSubscriptionAsync() { - var resp = await api.HelpCenter.Posts.CreateSubscriptionAsync(post.Id.Value, new Subscription { Locale = LOCALE }); + var resp = await Api.HelpCenter.Posts.CreateSubscriptionAsync(post.Id.Value, new Subscription { Locale = LOCALE }); - Assert.That(await api.HelpCenter.Posts.DeleteSubscriptionAsync(post.Id.Value, resp.Subscription.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Posts.DeleteSubscriptionAsync(post.Id.Value, resp.Subscription.Id.Value), Is.True); } [Test] public async Task CanCreateTopicSubscriptionAsync() { - var resp = await api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE, IncludeComments = true }); + var resp = await Api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE, IncludeComments = true }); Assert.That(resp.Subscription, Is.Not.Null); Assert.That(resp.Subscription.IncludeComments, Is.True); @@ -235,9 +234,9 @@ public async Task CanCreateTopicSubscriptionAsync() [Test] public async Task CanGetTopicSubscriptionAsync() { - var resp = await api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE }); + var resp = await Api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE }); - var listResp = await api.HelpCenter.Topics.GetSubscriptionAsync(topic.Id.Value, resp.Subscription.Id.Value, SubscriptionSideLoadOptions.Users); + var listResp = await Api.HelpCenter.Topics.GetSubscriptionAsync(topic.Id.Value, resp.Subscription.Id.Value, SubscriptionSideLoadOptions.Users); Assert.That(resp.Subscription, Is.Not.Null); Assert.That(listResp.Users.Count, Is.GreaterThan(0)); @@ -246,9 +245,9 @@ public async Task CanGetTopicSubscriptionAsync() [Test] public async Task CanGetTopicSubscriptionsAsync() { - var resp = await api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE }); + var resp = await Api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE }); - var listResp = await api.HelpCenter.Topics.GetSubscriptionsAsync(topic.Id.Value, SubscriptionSideLoadOptions.Users); + var listResp = await Api.HelpCenter.Topics.GetSubscriptionsAsync(topic.Id.Value, SubscriptionSideLoadOptions.Users); Assert.That(resp.Subscription, Is.Not.Null); Assert.That(listResp.Users.Count, Is.GreaterThan(0)); @@ -257,11 +256,11 @@ public async Task CanGetTopicSubscriptionsAsync() [Test] public async Task CanUpdateTopicSubscriptionAsync() { - var resp = await api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE, IncludeComments = true }); + var resp = await Api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE, IncludeComments = true }); var sub = resp.Subscription; sub.IncludeComments = false; - var updateResp = await api.HelpCenter.Topics.UpdateSubscriptionAsync(topic.Id.Value, sub); + var updateResp = await Api.HelpCenter.Topics.UpdateSubscriptionAsync(topic.Id.Value, sub); Assert.That(updateResp.Subscription, Is.Not.Null); Assert.That(updateResp.Subscription.IncludeComments, Is.False); } @@ -269,9 +268,9 @@ public async Task CanUpdateTopicSubscriptionAsync() [Test] public async Task CanDeleteTopicSubscriptionAsync() { - var resp = await api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE }); + var resp = await Api.HelpCenter.Topics.CreateSubscriptionAsync(topic.Id.Value, new Subscription { Locale = LOCALE }); - Assert.That(await api.HelpCenter.Topics.DeleteSubscriptionAsync(topic.Id.Value, resp.Subscription.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Topics.DeleteSubscriptionAsync(topic.Id.Value, resp.Subscription.Id.Value), Is.True); } } } \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/HelpCenter/TopicTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/TopicTests.cs similarity index 56% rename from test/ZendeskApi_v2.Test/HelpCenter/TopicTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/TopicTests.cs index b674b9f9..bc413fd8 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/TopicTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/TopicTests.cs @@ -1,31 +1,26 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using NUnit.Framework; using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; using ZendeskApi_v2.Models.HelpCenter.Topics; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - public class TopicTests + public class TopicTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private readonly long topicId = 360032658531; [OneTimeSetUp] public async Task CleanUp() { - var topics = await api.HelpCenter.Topics.GetTopicsAsync(); + var topics = await Api.HelpCenter.Topics.GetTopicsAsync(); foreach (var topic in topics.Topics) { if (topic.Id != topicId & topic.Id != Settings.Topic_ID & !topic.Name.Contains("Do Not Delete")) { - await api.HelpCenter.Topics.DeleteTopicAsync(topic.Id.Value); + await Api.HelpCenter.Topics.DeleteTopicAsync(topic.Id.Value); } } } @@ -35,17 +30,17 @@ public void CanCreateUpdateAndDeleteTopic() { var topic = new Topic { Name = "This is a Test" }; - var res = api.HelpCenter.Topics.CreateTopic(topic); + var res = Api.HelpCenter.Topics.CreateTopic(topic); Assert.That(res?.Topic, Is.Not.Null); res.Topic.Description = "More Testing"; - var update = api.HelpCenter.Topics.UpdateTopic(res.Topic).Topic; + var update = Api.HelpCenter.Topics.UpdateTopic(res.Topic).Topic; Assert.That(update.Description, Is.EqualTo("More Testing")); - var res2 = api.HelpCenter.Topics.GetTopic(res.Topic.Id.Value); + var res2 = Api.HelpCenter.Topics.GetTopic(res.Topic.Id.Value); Assert.That(res2.Topic, Is.Not.Null); - Assert.That(api.HelpCenter.Topics.DeleteTopic(res.Topic.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Topics.DeleteTopic(res.Topic.Id.Value), Is.True); } } } diff --git a/test/ZendeskApi_v2.Test/HelpCenter/TranslationTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/TranslationTests.cs similarity index 78% rename from test/ZendeskApi_v2.Test/HelpCenter/TranslationTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/TranslationTests.cs index 9c2693df..f551351c 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/TranslationTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/TranslationTests.cs @@ -1,18 +1,17 @@ -using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; +using NUnit.Framework; +using System.Threading.Tasks; using ZendeskApi_v2.Models.Articles; using ZendeskApi_v2.Models.HelpCenter.Categories; using ZendeskApi_v2.Models.HelpCenter.Translations; using ZendeskApi_v2.Models.Sections; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - public class TranslationTests + public class TranslationTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private readonly long _articleId = 360021096471; //https://csharpapi.zendesk.com/hc/en-us/articles/204838115-Thing-4?page=1#comment_200486479 private readonly long _sectionId = 201010935; private readonly long _categoryId = 200382245; @@ -20,20 +19,20 @@ public class TranslationTests [Test] public void CanListTranslations() { - var res = api.HelpCenter.Translations.ListTranslationsForArticle(_articleId); + var res = Api.HelpCenter.Translations.ListTranslationsForArticle(_articleId); Assert.That(res.Count, Is.EqualTo(2)); - res = api.HelpCenter.Translations.ListTranslationsForSection(_sectionId); + res = Api.HelpCenter.Translations.ListTranslationsForSection(_sectionId); Assert.That(res.Count, Is.EqualTo(2)); - res = api.HelpCenter.Translations.ListTranslationsForCategory(_categoryId); + res = Api.HelpCenter.Translations.ListTranslationsForCategory(_categoryId); Assert.That(res.Count, Is.EqualTo(2)); } [Test] public void CanShowTranslationForArticle() { - var res = api.HelpCenter.Translations.ShowTranslationForArticle(_articleId, "en-us"); + var res = Api.HelpCenter.Translations.ShowTranslationForArticle(_articleId, "en-us"); Assert.That(res.Translation.Locale, Is.EqualTo("en-us")); } @@ -48,7 +47,7 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForArticle() //delete new article. //prep - var new_article_res = api.HelpCenter.Articles.CreateArticle(_sectionId, new Article() + var new_article_res = Api.HelpCenter.Articles.CreateArticle(_sectionId, new Article() { Title = "My Test article for translations", Body = "The body of my article", @@ -56,7 +55,7 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForArticle() }); var article_id = new_article_res.Article.Id.Value; - var missing_res = api.HelpCenter.Translations.ListMissingTranslationsForArticle(article_id); + var missing_res = Api.HelpCenter.Translations.ListMissingTranslationsForArticle(article_id); Assert.That(missing_res.Count, Is.EqualTo(1)); Assert.That(missing_res[0], Is.EqualTo("fr")); @@ -68,21 +67,20 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForArticle() }; //create translation - var add_res = api.HelpCenter.Translations.CreateArticleTranslation(article_id, fr_translation); + var add_res = Api.HelpCenter.Translations.CreateArticleTranslation(article_id, fr_translation); Assert.That(add_res.Translation.Id, Is.GreaterThan(0)); add_res.Translation.Body = "insérer plus français ici ."; //update translation - var update_res = api.HelpCenter.Translations.UpdateArticleTranslation(add_res.Translation); + var update_res = Api.HelpCenter.Translations.UpdateArticleTranslation(add_res.Translation); Assert.That(update_res.Translation.Body, Is.EqualTo("insérer plus français ici .")); // delete translation - Assert.That(api.HelpCenter.Translations.DeleteTranslation(update_res.Translation.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Translations.DeleteTranslation(update_res.Translation.Id.Value), Is.True); // teardown. - Assert.That(api.HelpCenter.Articles.DeleteArticle(article_id), Is.True); - + Assert.That(Api.HelpCenter.Articles.DeleteArticle(article_id), Is.True); } [Test] @@ -96,8 +94,8 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForSection() //delete new section. //prep - var resCategoies = api.HelpCenter.Categories.GetCategories(); - var new_section_res = api.HelpCenter.Sections.CreateSection(new Section() + var resCategoies = Api.HelpCenter.Categories.GetCategories(); + var new_section_res = Api.HelpCenter.Sections.CreateSection(new Section() { Name = "My Test section for translations", Description = "The body of my section (en-us)", @@ -106,7 +104,7 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForSection() }); var section_id = new_section_res.Section.Id.Value; - var missing_res = api.HelpCenter.Translations.ListMissingTranslationsForSection(section_id); + var missing_res = Api.HelpCenter.Translations.ListMissingTranslationsForSection(section_id); Assert.That(missing_res.Count, Is.EqualTo(1)); Assert.That(missing_res[0], Is.EqualTo("fr")); @@ -118,21 +116,20 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForSection() }; //create translation - var add_res = api.HelpCenter.Translations.CreateSectionTranslation(section_id, fr_translation); + var add_res = Api.HelpCenter.Translations.CreateSectionTranslation(section_id, fr_translation); Assert.That(add_res.Translation.Id, Is.GreaterThan(0)); add_res.Translation.Body = "insérer plus français ici ."; //update translation - var update_res = api.HelpCenter.Translations.UpdateSectionTranslation(add_res.Translation); + var update_res = Api.HelpCenter.Translations.UpdateSectionTranslation(add_res.Translation); Assert.That(update_res.Translation.Body, Is.EqualTo("insérer plus français ici .")); //delete translation - Assert.That(api.HelpCenter.Translations.DeleteTranslation(update_res.Translation.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Translations.DeleteTranslation(update_res.Translation.Id.Value), Is.True); //teardown. - Assert.That(api.HelpCenter.Sections.DeleteSection(section_id), Is.True); - + Assert.That(Api.HelpCenter.Sections.DeleteSection(section_id), Is.True); } [Test] @@ -145,9 +142,8 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForCategory() //delete translation and verify. //delete new category. - //prep - var new_category_res = api.HelpCenter.Categories.CreateCategory(new Category() + var new_category_res = Api.HelpCenter.Categories.CreateCategory(new Category() { Name = "My Test category for translations", Description = "The body of my category (en-us)", @@ -155,7 +151,7 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForCategory() }); var category_id = new_category_res.Category.Id.Value; - var missing_res = api.HelpCenter.Translations.ListMissingTranslationsForCategory(category_id); + var missing_res = Api.HelpCenter.Translations.ListMissingTranslationsForCategory(category_id); Assert.That(missing_res.Count, Is.EqualTo(1)); Assert.That(missing_res[0], Is.EqualTo("fr")); @@ -167,21 +163,20 @@ public void CanListMissingCreateUpdateAndDeleteTranslationsForCategory() }; //create translation - var add_res = api.HelpCenter.Translations.CreateCategoryTranslation(category_id, fr_translation); + var add_res = Api.HelpCenter.Translations.CreateCategoryTranslation(category_id, fr_translation); Assert.That(add_res.Translation.Id, Is.GreaterThan(0)); add_res.Translation.Body = "insérer plus français ici . (category)"; //update translation - var update_res = api.HelpCenter.Translations.UpdateCategoryTranslation(add_res.Translation); + var update_res = Api.HelpCenter.Translations.UpdateCategoryTranslation(add_res.Translation); Assert.That(update_res.Translation.Body, Is.EqualTo("insérer plus français ici . (category)")); //delete translation - Assert.That(api.HelpCenter.Translations.DeleteTranslation(update_res.Translation.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Translations.DeleteTranslation(update_res.Translation.Id.Value), Is.True); //teardown. - Assert.That(api.HelpCenter.Categories.DeleteCategory(category_id), Is.True); - + Assert.That(Api.HelpCenter.Categories.DeleteCategory(category_id), Is.True); } [Test] @@ -189,31 +184,30 @@ public void CanListAllEnabledLocales() { // the only two locales enabled on the test site are us-en and fr. us-en is the default. // note: FR was already enabled in the Zendesk settings, however it had to be enabled again in the help center preferences. - var res = api.HelpCenter.Translations.ListAllEnabledLocalesAndDefaultLocale(out var default_locale); + var res = Api.HelpCenter.Translations.ListAllEnabledLocalesAndDefaultLocale(out var default_locale); Assert.That(default_locale, Is.EqualTo("en-us")); Assert.That(res.Contains("en-us"), Is.True); Assert.That(res.Contains("fr"), Is.True); } - [Test] public async Task CanListTranslationsAsync() { - var res = await api.HelpCenter.Translations.ListTranslationsForArticleAsync(_articleId); + var res = await Api.HelpCenter.Translations.ListTranslationsForArticleAsync(_articleId); Assert.That(res.Count, Is.EqualTo(2)); - res = await api.HelpCenter.Translations.ListTranslationsForSectionAsync(_sectionId); + res = await Api.HelpCenter.Translations.ListTranslationsForSectionAsync(_sectionId); Assert.That(res.Count, Is.EqualTo(2)); - res = await api.HelpCenter.Translations.ListTranslationsForCategoryAsync(_categoryId); + res = await Api.HelpCenter.Translations.ListTranslationsForCategoryAsync(_categoryId); Assert.That(res.Count, Is.EqualTo(2)); } [Test] public async Task CanShowTranslationForArticleAsync() { - var res = await api.HelpCenter.Translations.ShowTranslationForArticleAsync(_articleId, "en-us"); + var res = await Api.HelpCenter.Translations.ShowTranslationForArticleAsync(_articleId, "en-us"); Assert.That(res.Translation.Locale, Is.EqualTo("en-us")); } @@ -228,7 +222,7 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForArticleAsync //delete new article. //prep - var new_article_res = await api.HelpCenter.Articles.CreateArticleAsync(_sectionId, new Article + var new_article_res = await Api.HelpCenter.Articles.CreateArticleAsync(_sectionId, new Article { Title = "My Test article for translations", Body = "The body of my article", @@ -236,7 +230,7 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForArticleAsync }); var article_id = new_article_res.Article.Id.Value; - var missing_res = await api.HelpCenter.Translations.ListMissingTranslationsForArticleAsync(article_id); + var missing_res = await Api.HelpCenter.Translations.ListMissingTranslationsForArticleAsync(article_id); Assert.That(missing_res.Count, Is.EqualTo(1)); Assert.That(missing_res[0], Is.EqualTo("fr")); @@ -248,21 +242,20 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForArticleAsync }; //create translation - var add_res = await api.HelpCenter.Translations.CreateArticleTranslationAsync(article_id, fr_translation); + var add_res = await Api.HelpCenter.Translations.CreateArticleTranslationAsync(article_id, fr_translation); Assert.That(add_res.Translation.Id, Is.GreaterThan(0)); add_res.Translation.Body = "insérer plus français ici ."; //update translation - var update_res = await api.HelpCenter.Translations.UpdateArticleTranslationAsync(add_res.Translation); + var update_res = await Api.HelpCenter.Translations.UpdateArticleTranslationAsync(add_res.Translation); Assert.That(update_res.Translation.Body, Is.EqualTo("insérer plus français ici .")); //delete translation - Assert.That(await api.HelpCenter.Translations.DeleteTranslationAsync(update_res.Translation.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Translations.DeleteTranslationAsync(update_res.Translation.Id.Value), Is.True); //tear-down. - Assert.That(await api.HelpCenter.Articles.DeleteArticleAsync(article_id), Is.True); - + Assert.That(await Api.HelpCenter.Articles.DeleteArticleAsync(article_id), Is.True); } [Test] @@ -276,8 +269,8 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForSectionAsync //delete new section. //prep - var resCategoies = await api.HelpCenter.Categories.GetCategoriesAsync(); - var new_section_res = await api.HelpCenter.Sections.CreateSectionAsync(new Section + var resCategoies = await Api.HelpCenter.Categories.GetCategoriesAsync(); + var new_section_res = await Api.HelpCenter.Sections.CreateSectionAsync(new Section { Name = "My Test section for translations", Description = "The body of my section (en-us)", @@ -287,7 +280,7 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForSectionAsync var section_id = new_section_res.Section.Id.Value; - var missing_res = await api.HelpCenter.Translations.ListMissingTranslationsForSectionAsync(section_id); + var missing_res = await Api.HelpCenter.Translations.ListMissingTranslationsForSectionAsync(section_id); Assert.That(missing_res.Count, Is.EqualTo(1)); Assert.That(missing_res[0], Is.EqualTo("fr")); @@ -299,20 +292,20 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForSectionAsync }; //create translation - var add_res = await api.HelpCenter.Translations.CreateSectionTranslationAsync(section_id, fr_translation); + var add_res = await Api.HelpCenter.Translations.CreateSectionTranslationAsync(section_id, fr_translation); Assert.That(add_res.Translation.Id, Is.GreaterThan(0)); add_res.Translation.Body = "insérer plus français ici ."; //update translation - var update_res = await api.HelpCenter.Translations.UpdateSectionTranslationAsync(add_res.Translation); + var update_res = await Api.HelpCenter.Translations.UpdateSectionTranslationAsync(add_res.Translation); Assert.That(update_res.Translation.Body, Is.EqualTo("insérer plus français ici .")); //delete translation - Assert.That(await api.HelpCenter.Translations.DeleteTranslationAsync(update_res.Translation.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Translations.DeleteTranslationAsync(update_res.Translation.Id.Value), Is.True); //tear-down. - Assert.That(await api.HelpCenter.Sections.DeleteSectionAsync(section_id), Is.True); + Assert.That(await Api.HelpCenter.Sections.DeleteSectionAsync(section_id), Is.True); } [Test] @@ -325,9 +318,8 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForCategoryAsyn //delete translation and verify. //delete new category. - //prep - var new_category_res = await api.HelpCenter.Categories.CreateCategoryAsync(new Category() + var new_category_res = await Api.HelpCenter.Categories.CreateCategoryAsync(new Category() { Name = "My Test category for translations", Description = "The body of my category (en-us)", @@ -335,7 +327,7 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForCategoryAsyn }); var category_id = new_category_res.Category.Id.Value; - var missing_res = await api.HelpCenter.Translations.ListMissingTranslationsForCategoryAsync(category_id); + var missing_res = await Api.HelpCenter.Translations.ListMissingTranslationsForCategoryAsync(category_id); Assert.That(missing_res.Count, Is.EqualTo(1)); Assert.That(missing_res[0], Is.EqualTo("fr")); @@ -347,20 +339,20 @@ public async Task CanListMissingCreateUpdateAndDeleteTranslationsForCategoryAsyn }; //create translation - var add_res = await api.HelpCenter.Translations.CreateCategoryTranslationAsync(category_id, fr_translation); + var add_res = await Api.HelpCenter.Translations.CreateCategoryTranslationAsync(category_id, fr_translation); Assert.That(add_res.Translation.Id, Is.GreaterThan(0)); add_res.Translation.Body = "insérer plus français ici . (category)"; //update translation - var update_res = await api.HelpCenter.Translations.UpdateCategoryTranslationAsync(add_res.Translation); + var update_res = await Api.HelpCenter.Translations.UpdateCategoryTranslationAsync(add_res.Translation); Assert.That(update_res.Translation.Body, Is.EqualTo("insérer plus français ici . (category)")); //delete translation - Assert.That(await api.HelpCenter.Translations.DeleteTranslationAsync(update_res.Translation.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Translations.DeleteTranslationAsync(update_res.Translation.Id.Value), Is.True); //tear-down. - Assert.That(await api.HelpCenter.Categories.DeleteCategoryAsync(category_id), Is.True); + Assert.That(await Api.HelpCenter.Categories.DeleteCategoryAsync(category_id), Is.True); } [Test] @@ -368,7 +360,7 @@ public async Task CanListAllEnabledLocalesAsync() { //the only two locales enabled on the test site are us-en and fr. us-en is the default. //note: FR was already enabled in the Zendesk settings, however it had to be enabled again in the help center preferences. - var res = await api.HelpCenter.Translations.ListAllEnabledLocalesAndDefaultLocaleAsync(); + var res = await Api.HelpCenter.Translations.ListAllEnabledLocalesAndDefaultLocaleAsync(); Assert.That(res.Item2, Is.EqualTo("en-us")); Assert.That(res.Item1.Contains("en-us"), Is.True); diff --git a/test/ZendeskApi_v2.Test/HelpCenter/UserSegmentTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/UserSegmentTests.cs similarity index 55% rename from test/ZendeskApi_v2.Test/HelpCenter/UserSegmentTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/UserSegmentTests.cs index 688037df..b2e0b377 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/UserSegmentTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/UserSegmentTests.cs @@ -1,52 +1,51 @@ -using System.Linq; +using NUnit.Framework; +using System.Linq; using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; using ZendeskApi_v2.Models.HelpCenter.Topics; using ZendeskApi_v2.Models.UserSegments; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - internal class UserSegmentTests + internal class UserSegmentTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanGetUserSegments() { - var res = api.HelpCenter.UserSegments.GetUserSegments(); + var res = Api.HelpCenter.UserSegments.GetUserSegments(); Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = api.HelpCenter.UserSegments.GetUserSegment(res.UserSegments[0].Id.Value); + var res1 = Api.HelpCenter.UserSegments.GetUserSegment(res.UserSegments[0].Id.Value); Assert.That(res.UserSegments[0].Id.Value, Is.EqualTo(res1.UserSegment.Id)); } [Test] public void CanGetUserSegmentsApplicable() { - var res = api.HelpCenter.UserSegments.GetUserSegmentsApplicable(); + var res = Api.HelpCenter.UserSegments.GetUserSegmentsApplicable(); Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = api.HelpCenter.UserSegments.GetUserSegment(res.UserSegments[0].Id.Value); + var res1 = Api.HelpCenter.UserSegments.GetUserSegment(res.UserSegments[0].Id.Value); Assert.That(res.UserSegments[0].Id.Value, Is.EqualTo(res1.UserSegment.Id)); } [Test] public void CanCreateUpdateAndDeleteUserSegments() { - var userSegment = new UserSegment() { + var userSegment = new UserSegment() + { Name = "My Test User Segment", UserType = UserType.signed_in_users }; - var res = api.HelpCenter.UserSegments.CreateUserSegment(userSegment); + var res = Api.HelpCenter.UserSegments.CreateUserSegment(userSegment); Assert.That(res.UserSegment.Id, Is.GreaterThan(0)); res.UserSegment.UserType = UserType.staff; - var update = api.HelpCenter.UserSegments.UpdateUserSegment(res.UserSegment); + var update = Api.HelpCenter.UserSegments.UpdateUserSegment(res.UserSegment); Assert.That(update.UserSegment.UserType, Is.EqualTo(res.UserSegment.UserType)); - Assert.That(api.HelpCenter.UserSegments.DeleteUserSegment(res.UserSegment.Id.Value), Is.True); + Assert.That(Api.HelpCenter.UserSegments.DeleteUserSegment(res.UserSegment.Id.Value), Is.True); } [Test] @@ -54,58 +53,42 @@ public void CanGetSecondPageUisngGetByPageUrl() { var pageSize = 3; - var res = api.HelpCenter.UserSegments.GetUserSegments(perPage: pageSize); + var res = Api.HelpCenter.UserSegments.GetUserSegments(perPage: pageSize); Assert.That(res.PageSize, Is.EqualTo(pageSize)); - var resp = api.HelpCenter.UserSegments.GetByPageUrl(res.NextPage, pageSize); + var resp = Api.HelpCenter.UserSegments.GetByPageUrl(res.NextPage, pageSize); Assert.That(resp.Page, Is.EqualTo(2)); } - //[Test] - //public void CanGetSectionsByUserSegment() - //{ - // var res = api.HelpCenter.UserSegments.GetUserSegments(); - // long category_id = 200382245; - - // var sectionRes = api.HelpCenter.Sections.CreateSection(new Section { - // Name = "My Test section", - // CategoryId = category_id, - // UserSegmentId = res.UserSegments[0].Id - // }); - - // var res1 = api.HelpCenter.UserSegments.GetSectionsByUserSegmentId(res.UserSegments[0].Id.Value); - - // Assert.That(res1.Sections.Count, Is.GreaterThan(0)); - //} - [Test] public void CanGetTopicsByUserSegment() { - var res = api.HelpCenter.UserSegments.GetUserSegments(); + var res = Api.HelpCenter.UserSegments.GetUserSegments(); - var topicRes = api.HelpCenter.Topics.CreateTopic(new Topic { + var topicRes = Api.HelpCenter.Topics.CreateTopic(new Topic + { Name = "My Test Topic", UserSegmentId = res.UserSegments[0].Id }); - var res1 = api.HelpCenter.UserSegments.GetTopicsByUserSegmentId(res.UserSegments[0].Id.Value); + var res1 = Api.HelpCenter.UserSegments.GetTopicsByUserSegmentId(res.UserSegments[0].Id.Value); Assert.That(res1.Topics.Count, Is.GreaterThan(0)); - Assert.That(api.HelpCenter.Topics.DeleteTopic(topicRes.Topic.Id.Value), Is.True); + Assert.That(Api.HelpCenter.Topics.DeleteTopic(topicRes.Topic.Id.Value), Is.True); } [Test] public void CanGetUserSegmentsByUserId() { - var res = api.HelpCenter.UserSegments.GetUserSegmentsByUserId(Settings.UserId); + var res = Api.HelpCenter.UserSegments.GetUserSegmentsByUserId(Admin.ID); Assert.That(res.UserSegments.Count, Is.GreaterThan(0)); } [Test] public void CanRetrieveUserSegmentOrTags() { - var res = api.HelpCenter.UserSegments.GetUserSegments().UserSegments; + var res = Api.HelpCenter.UserSegments.GetUserSegments().UserSegments; var segment = res.First(seg => seg.Name == "Agents and managers (or_tags: tag1, tag2)"); Assert.That(segment.OrTags.Count, Is.EqualTo(2)); @@ -116,37 +99,38 @@ public void CanRetrieveUserSegmentOrTags() [Test] public async Task CanGetUserSegmentsAsync() { - var res = await api.HelpCenter.UserSegments.GetUserSegmentsAsync(); + var res = await Api.HelpCenter.UserSegments.GetUserSegmentsAsync(); Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = await api.HelpCenter.UserSegments.GetUserSegmentAsync(res.UserSegments[0].Id.Value); + var res1 = await Api.HelpCenter.UserSegments.GetUserSegmentAsync(res.UserSegments[0].Id.Value); Assert.That(res.UserSegments[0].Id.Value, Is.EqualTo(res1.UserSegment.Id)); } [Test] public async Task CanGetUserSegmentsApplicableAsync() { - var res = await api.HelpCenter.UserSegments.GetUserSegmentsApplicableAsync(); + var res = await Api.HelpCenter.UserSegments.GetUserSegmentsApplicableAsync(); Assert.That(res.Count, Is.GreaterThan(0)); - var res1 = await api.HelpCenter.UserSegments.GetUserSegmentAsync(res.UserSegments[0].Id.Value); + var res1 = await Api.HelpCenter.UserSegments.GetUserSegmentAsync(res.UserSegments[0].Id.Value); Assert.That(res.UserSegments[0].Id.Value, Is.EqualTo(res1.UserSegment.Id)); } [Test] public async Task CanCreateUpdateAndDeleteUserSegmentsAsync() { - var userSegment = new UserSegment() { + var userSegment = new UserSegment() + { Name = "My Test User Segment Async", UserType = UserType.signed_in_users }; - var res = await api.HelpCenter.UserSegments.CreateUserSegmentAsync(userSegment); + var res = await Api.HelpCenter.UserSegments.CreateUserSegmentAsync(userSegment); Assert.That(res.UserSegment.Id, Is.GreaterThan(0)); res.UserSegment.UserType = UserType.staff; - var update = await api.HelpCenter.UserSegments.UpdateUserSegmentAsync(res.UserSegment); + var update = await Api.HelpCenter.UserSegments.UpdateUserSegmentAsync(res.UserSegment); Assert.That(update.UserSegment.UserType, Is.EqualTo(res.UserSegment.UserType)); - Assert.That(await api.HelpCenter.UserSegments.DeleteUserSegmentAsync(res.UserSegment.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.UserSegments.DeleteUserSegmentAsync(res.UserSegment.Id.Value), Is.True); } [Test] @@ -154,52 +138,35 @@ public async Task CanGetSecondPageUisngGetByPageUrlAsync() { var pageSize = 3; - var res = await api.HelpCenter.UserSegments.GetUserSegmentsAsync(perPage: pageSize); + var res = await Api.HelpCenter.UserSegments.GetUserSegmentsAsync(perPage: pageSize); Assert.That(res.PageSize, Is.EqualTo(pageSize)); - var resp = await api.HelpCenter.UserSegments.GetByPageUrlAsync(res.NextPage, pageSize); + var resp = await Api.HelpCenter.UserSegments.GetByPageUrlAsync(res.NextPage, pageSize); Assert.That(resp.Page, Is.EqualTo(2)); } - //[Test] - //public async Task CanGetSectionsByUserSegmentAsync() - //{ - // var res = await api.HelpCenter.UserSegments.GetUserSegmentsAsync(); - // long category_id = 200382245; - - // var sectionRes = await api.HelpCenter.Sections.CreateSectionAsync(new Section { - // Name = "My Test section", - // CategoryId = category_id, - // UserSegmentId = res.UserSegments[0].Id - // }); - - // var res1 = await api.HelpCenter.UserSegments.GetSectionsByUserSegmentIdAsync(res.UserSegments[0].Id.Value); - - // Assert.That(res1.Sections.Count, Is.GreaterThan(0)); - //} - [Test] public async Task CanGetTopicsByUserSegmentAsync() { - var res = await api.HelpCenter.UserSegments.GetUserSegmentsAsync(); + var res = await Api.HelpCenter.UserSegments.GetUserSegmentsAsync(); - var topicRes = await api.HelpCenter.Topics.CreateTopicAsync(new Topic { + var topicRes = await Api.HelpCenter.Topics.CreateTopicAsync(new Topic + { Name = "My Test Topic", UserSegmentId = res.UserSegments[0].Id }); - var res1 = await api.HelpCenter.UserSegments.GetTopicsByUserSegmentIdAsync(res.UserSegments[0].Id.Value); + var res1 = await Api.HelpCenter.UserSegments.GetTopicsByUserSegmentIdAsync(res.UserSegments[0].Id.Value); Assert.That(res1.Topics.Count, Is.GreaterThan(0)); - Assert.That(await api.HelpCenter.Topics.DeleteTopicAsync(topicRes.Topic.Id.Value), Is.True); + Assert.That(await Api.HelpCenter.Topics.DeleteTopicAsync(topicRes.Topic.Id.Value), Is.True); } [Test] public async Task CanGetUserSegmentsByUserIdAsync() { - - var res = await api.HelpCenter.UserSegments.GetUserSegmentsByUserIdAsync(Settings.UserId); + var res = await Api.HelpCenter.UserSegments.GetUserSegmentsByUserIdAsync(Admin.ID); Assert.That(res.UserSegments.Count, Is.GreaterThan(0)); } } -} \ No newline at end of file +} diff --git a/test/ZendeskApi_v2.Test/HelpCenter/VoteTests.cs b/tests/ZendeskApi_v2.Tests/HelpCenter/VoteTests.cs similarity index 54% rename from test/ZendeskApi_v2.Test/HelpCenter/VoteTests.cs rename to tests/ZendeskApi_v2.Tests/HelpCenter/VoteTests.cs index e5db1f75..a067423e 100644 --- a/test/ZendeskApi_v2.Test/HelpCenter/VoteTests.cs +++ b/tests/ZendeskApi_v2.Tests/HelpCenter/VoteTests.cs @@ -1,21 +1,18 @@ using NUnit.Framework; -using ZendeskApi_v2; -using ZendeskApi_v2.Models.Articles; -using ZendeskApi_v2.Requests.HelpCenter; +using ZendeskApi_v2.Tests.Base; -namespace Tests.HelpCenter +namespace ZendeskApi_v2.Tests.HelpCenter { [TestFixture] [Category("HelpCenter")] - public class VoteTests + public class VoteTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private readonly long _articleIdWithVotes = 360019896991; //https://csharpapi.zendesk.com/hc/en-us/articles/204838115-Thing-4?page=1#comment_200486479 [Test] public void CanGetArticleVotes() { - var votes = api.HelpCenter.Votes.GetVotesForArticle(_articleIdWithVotes); + var votes = Api.HelpCenter.Votes.GetVotesForArticle(_articleIdWithVotes); Assert.That(votes.Count, Is.GreaterThan(0)); } diff --git a/test/ZendeskApi_v2.Test/JobStatusTests.cs b/tests/ZendeskApi_v2.Tests/JobStatusTests.cs similarity index 81% rename from test/ZendeskApi_v2.Test/JobStatusTests.cs rename to tests/ZendeskApi_v2.Tests/JobStatusTests.cs index 996645e7..bd75aace 100644 --- a/test/ZendeskApi_v2.Test/JobStatusTests.cs +++ b/tests/ZendeskApi_v2.Tests/JobStatusTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] public class JobStatusTests diff --git a/test/ZendeskApi_v2.Test/LocaleTests.cs b/tests/ZendeskApi_v2.Tests/LocaleTests.cs similarity index 62% rename from test/ZendeskApi_v2.Test/LocaleTests.cs rename to tests/ZendeskApi_v2.Tests/LocaleTests.cs index 43b1f344..cdf6a6a4 100644 --- a/test/ZendeskApi_v2.Test/LocaleTests.cs +++ b/tests/ZendeskApi_v2.Tests/LocaleTests.cs @@ -1,35 +1,33 @@ using NUnit.Framework; -using ZendeskApi_v2; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class LocaleTests + public class LocaleTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanGetLocales() { - var all = api.Locales.GetAllLocales(); + var all = Api.Locales.GetAllLocales(); Assert.That(all.Count, Is.GreaterThan(0)); - var agent = api.Locales.GetLocalesForAgents(); + var agent = Api.Locales.GetLocalesForAgents(); Assert.That(agent.Count, Is.GreaterThan(0)); - var specific = api.Locales.GetLocaleById(all.Locales[0].Id); + var specific = Api.Locales.GetLocaleById(all.Locales[0].Id); Assert.That(all.Locales[0].Id, Is.EqualTo(specific.Locale.Id)); Assert.That(specific.Locale.Translations, Is.Null); - var specificWithTranslation = api.Locales.GetLocaleById(all.Locales[0].Id, true); + var specificWithTranslation = Api.Locales.GetLocaleById(all.Locales[0].Id, true); Assert.That(all.Locales[0].Id, Is.EqualTo(specificWithTranslation.Locale.Id)); Assert.That(specificWithTranslation.Locale.Translations, Is.Not.Null); - var current = api.Locales.GetCurrentLocale(); + var current = Api.Locales.GetCurrentLocale(); Assert.That(current.Locale.Id, Is.GreaterThan(0)); Assert.That(current.Locale.Translations, Is.Null); - var currentWithTranslation = api.Locales.GetCurrentLocale(true); + var currentWithTranslation = Api.Locales.GetCurrentLocale(true); Assert.That(currentWithTranslation.Locale.Id, Is.GreaterThan(0)); Assert.That(currentWithTranslation.Locale.Translations, Is.Not.Null); } diff --git a/test/ZendeskApi_v2.Test/MacroTests.cs b/tests/ZendeskApi_v2.Tests/MacroTests.cs similarity index 64% rename from test/ZendeskApi_v2.Test/MacroTests.cs rename to tests/ZendeskApi_v2.Tests/MacroTests.cs index a58b8f7e..651ebbe3 100644 --- a/test/ZendeskApi_v2.Test/MacroTests.cs +++ b/tests/ZendeskApi_v2.Tests/MacroTests.cs @@ -1,34 +1,32 @@ -using System.Collections.Generic; using NUnit.Framework; -using ZendeskApi_v2; +using System.Collections.Generic; using ZendeskApi_v2.Models.Constants; using ZendeskApi_v2.Models.Macros; using ZendeskApi_v2.Models.Tickets; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class MacroTests + public class MacroTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanGetMacros() { - var all = api.Macros.GetAllMacros(); + var all = Api.Macros.GetAllMacros(); Assert.That(all.Count, Is.GreaterThan(0)); - api.Macros.GetMacroById(all.Macros[0].Id.Value); + Api.Macros.GetMacroById(all.Macros[0].Id.Value); Assert.That(all.Count, Is.GreaterThan(0)); - var active = api.Macros.GetActiveMacros(); + var active = Api.Macros.GetActiveMacros(); Assert.That(active.Count, Is.GreaterThan(0)); } [Test] public void CanCreateUpdateAndDeleteMacros() { - var create = api.Macros.CreateMacro(new Macro + var create = Api.Macros.CreateMacro(new Macro { Title = "Roger Wilco", Actions = new List { new Action { Field = "status", Value = new List { "open" } } } @@ -37,28 +35,27 @@ public void CanCreateUpdateAndDeleteMacros() Assert.That(create.Macro.Id, Is.GreaterThan(0)); create.Macro.Title = "Roger wilco 2"; - var update = api.Macros.UpdateMacro(create.Macro); + var update = Api.Macros.UpdateMacro(create.Macro); Assert.That(create.Macro.Id, Is.EqualTo(update.Macro.Id)); //Test apply macro - var ticket = api.Tickets.CreateTicket(new Ticket + var ticket = Api.Tickets.CreateTicket(new Ticket { Subject = "macro test ticket", Comment = new Comment { Body = "Testing macros" }, Priority = TicketPriorities.Normal }).Ticket; - var applyToTicket = api.Macros.ApplyMacroToTicket(ticket.Id.Value, create.Macro.Id.Value); + var applyToTicket = Api.Macros.ApplyMacroToTicket(ticket.Id.Value, create.Macro.Id.Value); Assert.That(ticket.Id, Is.EqualTo(applyToTicket.Result.Ticket.Id)); - Assert.That(api.Tickets.Delete(ticket.Id.Value), Is.True); - Assert.That(api.Macros.DeleteMacro(create.Macro.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(ticket.Id.Value), Is.True); + Assert.That(Api.Macros.DeleteMacro(create.Macro.Id.Value), Is.True); } - [Test] public void CanGetMacroByID() { - var macro = api.Macros.GetMacroById(45319945); + var macro = Api.Macros.GetMacroById(45319945); Assert.That(macro, Is.Not.Null); } diff --git a/test/ZendeskApi_v2.Test/Models/Requests/RequestTests.cs b/tests/ZendeskApi_v2.Tests/Models/Requests/RequestTests.cs similarity index 92% rename from test/ZendeskApi_v2.Test/Models/Requests/RequestTests.cs rename to tests/ZendeskApi_v2.Tests/Models/Requests/RequestTests.cs index fe17dabb..882750dc 100644 --- a/test/ZendeskApi_v2.Test/Models/Requests/RequestTests.cs +++ b/tests/ZendeskApi_v2.Tests/Models/Requests/RequestTests.cs @@ -1,13 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json; +using Newtonsoft.Json; using NUnit.Framework; using ZendeskApi_v2.Models.Requests; -namespace Tests.Models.Requests +namespace ZendeskApi_v2.Tests.Models.Requests { [TestFixture] public class RequestTests @@ -16,10 +11,10 @@ public class RequestTests private const string ToJson = "{}"; private const string FromJson = "{}"; private const string SourceJsonFormat = "{{\"from\":{0},\"to\":{1},\"rel\":null}}"; - private const string ViaJsonFormat = "{{\"channel\":\"api\",\"source\":{0}}}"; + private const string ViaJsonFormat = "{{\"channel\":\"Api\",\"source\":{0}}}"; private const string CustomFieldsJsonFormat = "[{{\"id\":{0},\"value\":\"{1}\"}}]"; private const long Id = 1; - private const string UrlFormat = "https://example.zendesk.com/api/v2/requests/{0}.json"; + private const string UrlFormat = "https://example.zendesk.com/Api/v2/requests/{0}.json"; private const string OpenStatus = "open"; private const string SolvedStatus = "solved"; private const string Subject = "Example Subject"; diff --git a/test/ZendeskApi_v2.Test/Models/Tickets/FromTests.cs b/tests/ZendeskApi_v2.Tests/Models/Tickets/FromTests.cs similarity index 96% rename from test/ZendeskApi_v2.Test/Models/Tickets/FromTests.cs rename to tests/ZendeskApi_v2.Tests/Models/Tickets/FromTests.cs index 44b1f29e..4b2671d6 100644 --- a/test/ZendeskApi_v2.Test/Models/Tickets/FromTests.cs +++ b/tests/ZendeskApi_v2.Tests/Models/Tickets/FromTests.cs @@ -2,7 +2,7 @@ using NUnit.Framework; using ZendeskApi_v2.Models.Tickets; -namespace Tests.Models.Tickets +namespace ZendeskApi_v2.Tests.Models.Tickets { [TestFixture] public class FromTests diff --git a/test/ZendeskApi_v2.Test/Models/Tickets/ToTests.cs b/tests/ZendeskApi_v2.Tests/Models/Tickets/ToTests.cs similarity index 96% rename from test/ZendeskApi_v2.Test/Models/Tickets/ToTests.cs rename to tests/ZendeskApi_v2.Tests/Models/Tickets/ToTests.cs index f6292e9b..5e153aeb 100644 --- a/test/ZendeskApi_v2.Test/Models/Tickets/ToTests.cs +++ b/tests/ZendeskApi_v2.Tests/Models/Tickets/ToTests.cs @@ -2,7 +2,7 @@ using NUnit.Framework; using ZendeskApi_v2.Models.Tickets; -namespace Tests.Models.Tickets +namespace ZendeskApi_v2.Tests.Models.Tickets { [TestFixture] public class ToTests diff --git a/test/ZendeskApi_v2.Test/Models/Voice/FromTests.cs b/tests/ZendeskApi_v2.Tests/Models/Voice/FromTests.cs similarity index 95% rename from test/ZendeskApi_v2.Test/Models/Voice/FromTests.cs rename to tests/ZendeskApi_v2.Tests/Models/Voice/FromTests.cs index 70449e57..3c81235d 100644 --- a/test/ZendeskApi_v2.Test/Models/Voice/FromTests.cs +++ b/tests/ZendeskApi_v2.Tests/Models/Voice/FromTests.cs @@ -2,7 +2,7 @@ using NUnit.Framework; using ZendeskApi_v2.Models.Voice; -namespace Tests.Models.Voice +namespace ZendeskApi_v2.Tests.Models.Voice { [TestFixture] public class FromTests diff --git a/test/ZendeskApi_v2.Test/OrganizationTests.cs b/tests/ZendeskApi_v2.Tests/OrganizationTests.cs similarity index 61% rename from test/ZendeskApi_v2.Test/OrganizationTests.cs rename to tests/ZendeskApi_v2.Tests/OrganizationTests.cs index f52844c4..fbd94bd1 100644 --- a/test/ZendeskApi_v2.Test/OrganizationTests.cs +++ b/tests/ZendeskApi_v2.Tests/OrganizationTests.cs @@ -1,40 +1,38 @@ +using NUnit.Framework; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using System.Threading; -using NUnit.Framework; -using ZendeskApi_v2; +using System.Threading.Tasks; using ZendeskApi_v2.Models.Organizations; using ZendeskApi_v2.Models.Shared; using ZendeskApi_v2.Models.Tags; using ZendeskApi_v2.Models.Users; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class OrganizationTests + public class OrganizationTests : TestBase { - readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [OneTimeSetUp] [OneTimeTearDown] public void Init() { - var orgs = api.Organizations.GetOrganizations(); + var orgs = Api.Organizations.GetOrganizations(); if (orgs != null) { foreach (var org in orgs.Organizations.Where(o => o.Name != "CsharpAPI")) { - api.Organizations.DeleteOrganization(org.Id.Value); + Api.Organizations.DeleteOrganization(org.Id.Value); } } - var users = api.Users.SearchByEmail("test_org_mem@test.com"); + var users = Api.Users.SearchByEmail("test_org_mem@test.com"); if (users != null) { foreach (var user in users.Users.Where(o => o.Name.Contains("Test User Org Mem"))) { - api.Users.DeleteUser(user.Id.Value); + Api.Users.DeleteUser(user.Id.Value); } } } @@ -43,68 +41,68 @@ public void Init() public void CanAddAndRemoveTagsFromOrganization() { var tag = new Tag(); - var organization = api.Organizations.GetOrganizations().Organizations.First(); + var organization = Api.Organizations.GetOrganizations().Organizations.First(); tag.Name = "MM"; organization.Tags.Add(tag.Name); - var org = api.Organizations.UpdateOrganization(organization); + var org = Api.Organizations.UpdateOrganization(organization); org.Organization.Tags.Add("New"); - var org2 = api.Organizations.UpdateOrganization(org.Organization); + var org2 = Api.Organizations.UpdateOrganization(org.Organization); org2.Organization.Tags.Remove("MM"); org2.Organization.Tags.Remove("New"); - api.Organizations.UpdateOrganization(org2.Organization); + Api.Organizations.UpdateOrganization(org2.Organization); } [Test] public void CanGetOrganizations() { - var res = api.Organizations.GetOrganizations(); + var res = Api.Organizations.GetOrganizations(); Assert.That(res.Count, Is.GreaterThan(0)); - var org = api.Organizations.GetOrganization(res.Organizations[0].Id.Value); + var org = Api.Organizations.GetOrganization(res.Organizations[0].Id.Value); Assert.That(res.Organizations[0].Id, Is.EqualTo(org.Organization.Id)); } [Test] public void CanSearchForOrganizations() { - var res = api.Organizations.GetOrganizationsStartingWith(Settings.DefaultOrg.Substring(0, 3)); + var res = Api.Organizations.GetOrganizationsStartingWith(Organization.Name.Substring(0, 3)); Assert.That(res.Count, Is.GreaterThan(0)); - var search = api.Organizations.SearchForOrganizationsByExternalId(Settings.DefaultExternalId); + var search = Api.Organizations.SearchForOrganizationsByExternalId(Organization.ExternalID); Assert.That(search.Count, Is.GreaterThan(0)); } [Test] public void CanGetMultipleOrganizations() { - var org = api.Organizations.CreateOrganization(new Organization() + var org = Api.Organizations.CreateOrganization(new Organization() { Name = "Test Org" }); Assert.That(org.Organization.Id, Is.GreaterThan(0)); - var org2 = api.Organizations.CreateOrganization(new Organization() + var org2 = Api.Organizations.CreateOrganization(new Organization() { Name = "Test Org2" }); - var orgs = api.Organizations.GetMultipleOrganizations(new[] { org.Organization.Id.Value, org2.Organization.Id.Value }); + var orgs = Api.Organizations.GetMultipleOrganizations(new[] { org.Organization.Id.Value, org2.Organization.Id.Value }); Assert.That(orgs.Organizations.Count, Is.EqualTo(2)); } [Test] public void CanGetMultipleOrganizationsByExternalId() { - var org = api.Organizations.CreateOrganization(new Organization() + var org = Api.Organizations.CreateOrganization(new Organization() { Name = "Test Org with externalId", ExternalId = "TestExternalId1" }); - var org2 = api.Organizations.CreateOrganization(new Organization() + var org2 = Api.Organizations.CreateOrganization(new Organization() { Name = "Test Org2 with externalId", ExternalId = "TestExternalId2" @@ -113,7 +111,7 @@ public void CanGetMultipleOrganizationsByExternalId() Assert.That(org.Organization.Id, Is.GreaterThan(0)); Assert.That(org2.Organization.Id, Is.GreaterThan(0)); - var orgs = api.Organizations.GetMultipleOrganizationsByExternalIds(new[] { org.Organization.ExternalId.ToString(), org2.Organization.ExternalId.ToString() }); + var orgs = Api.Organizations.GetMultipleOrganizationsByExternalIds(new[] { org.Organization.ExternalId.ToString(), org2.Organization.ExternalId.ToString() }); Assert.That(orgs.Organizations.Count, Is.EqualTo(2)); } @@ -121,7 +119,7 @@ public void CanGetMultipleOrganizationsByExternalId() [Test] public void CanCreateUpdateAndDeleteOrganizations() { - var res = api.Organizations.CreateOrganization(new Organization() + var res = Api.Organizations.CreateOrganization(new Organization() { Name = "Test Org" }); @@ -129,16 +127,16 @@ public void CanCreateUpdateAndDeleteOrganizations() Assert.That(res.Organization.Id, Is.GreaterThan(0)); res.Organization.Notes = "Here is a sample note"; - var update = api.Organizations.UpdateOrganization(res.Organization); + var update = Api.Organizations.UpdateOrganization(res.Organization); Assert.That(res.Organization.Notes, Is.EqualTo(update.Organization.Notes)); - Assert.That(api.Organizations.DeleteOrganization(res.Organization.Id.Value), Is.True); + Assert.That(Api.Organizations.DeleteOrganization(res.Organization.Id.Value), Is.True); } [Test] public void CanCreateOrUpdateOrganizations() { - var res = api.Organizations.CreateOrUpdateOrganization(new Organization() + var res = Api.Organizations.CreateOrUpdateOrganization(new Organization() { Name = "Test Org (original)" }); @@ -146,17 +144,17 @@ public void CanCreateOrUpdateOrganizations() Assert.That(res.Organization.Id, Is.GreaterThan(0)); res.Organization.Name = "Test Org (updated)"; - var update = api.Organizations.CreateOrUpdateOrganization(res.Organization); + var update = Api.Organizations.CreateOrUpdateOrganization(res.Organization); Assert.That(update.Organization.Id, Is.EqualTo(res.Organization.Id)); Assert.That(update.Organization.Name, Is.EqualTo(res.Organization.Name)); - Assert.That(api.Organizations.DeleteOrganization(res.Organization.Id.Value), Is.True); + Assert.That(Api.Organizations.DeleteOrganization(res.Organization.Id.Value), Is.True); } [Test] public async Task CanCreateOrUpdateOrganizationsAsync() { - var res = await api.Organizations.CreateOrUpdateOrganizationAsync(new Organization() + var res = await Api.Organizations.CreateOrUpdateOrganizationAsync(new Organization() { Name = "Test Org (original)" }); @@ -164,22 +162,22 @@ public async Task CanCreateOrUpdateOrganizationsAsync() Assert.That(res.Organization.Id, Is.GreaterThan(0)); res.Organization.Name = "Test Org (updated)"; - var update = await api.Organizations.CreateOrUpdateOrganizationAsync(res.Organization); + var update = await Api.Organizations.CreateOrUpdateOrganizationAsync(res.Organization); Assert.That(update.Organization.Id, Is.EqualTo(res.Organization.Id)); Assert.That(update.Organization.Name, Is.EqualTo(res.Organization.Name)); - Assert.That(api.Organizations.DeleteOrganization(res.Organization.Id.Value), Is.True); + Assert.That(Api.Organizations.DeleteOrganization(res.Organization.Id.Value), Is.True); } [Test] public void CanCreateUpdateAndDeleteMultipeOrganizations() { - var res1 = api.Organizations.CreateOrganization(new Organization() + var res1 = Api.Organizations.CreateOrganization(new Organization() { Name = "Test Org 1" }); - var res2 = api.Organizations.CreateOrganization(new Organization() + var res2 = Api.Organizations.CreateOrganization(new Organization() { Name = "Test Org 2" }); @@ -191,7 +189,7 @@ public void CanCreateUpdateAndDeleteMultipeOrganizations() res2.Organization.Notes = "Here is a sample note 2"; var organisations = new List { res1.Organization, res2.Organization }; - var updateJobStatus = api.Organizations.UpdateMultipleOrganizations(organisations); + var updateJobStatus = Api.Organizations.UpdateMultipleOrganizations(organisations); Assert.That(updateJobStatus.JobStatus.Status, Is.EqualTo("queued")); JobStatusResponse job = null; @@ -199,26 +197,26 @@ public void CanCreateUpdateAndDeleteMultipeOrganizations() do { Thread.Sleep(5000); - job = api.JobStatuses.GetJobStatus(updateJobStatus.JobStatus.Id); + job = Api.JobStatuses.GetJobStatus(updateJobStatus.JobStatus.Id); Assert.That(job.JobStatus.Id, Is.EqualTo(updateJobStatus.JobStatus.Id)); if (job.JobStatus.Status == "completed") break; } while (true); var updatedOrganizationIds = new List { res1.Organization.Id.Value, res2.Organization.Id.Value }; - var updatedOrganizations = api.Organizations.GetMultipleOrganizations(updatedOrganizationIds); + var updatedOrganizations = Api.Organizations.GetMultipleOrganizations(updatedOrganizationIds); Assert.That(updatedOrganizations.Organizations.FirstOrDefault(o => o.Id == res1.Organization.Id).Notes, Is.EqualTo(res1.Organization.Notes)); Assert.That(updatedOrganizations.Organizations.FirstOrDefault(o => o.Id == res2.Organization.Id).Notes, Is.EqualTo(res2.Organization.Notes)); - api.Organizations.DeleteOrganization(res1.Organization.Id.Value); - api.Organizations.DeleteOrganization(res2.Organization.Id.Value); + Api.Organizations.DeleteOrganization(res1.Organization.Id.Value); + Api.Organizations.DeleteOrganization(res2.Organization.Id.Value); } [Test] public void CanCreateAndDeleteOrganizationMemberships() { - var org = api.Organizations.CreateOrganization(new Organization() + var org = Api.Organizations.CreateOrganization(new Organization() { Name = "Test Org" }); @@ -230,112 +228,54 @@ public void CanCreateAndDeleteOrganizationMemberships() Role = "end-user" }; - - var res = api.Users.CreateUser(user); + var res = Api.Users.CreateUser(user); var org_membership = new OrganizationMembership() { UserId = res.User.Id, OrganizationId = org.Organization.Id }; - var res2 = api.Organizations.CreateOrganizationMembership(org_membership); + var res2 = Api.Organizations.CreateOrganizationMembership(org_membership); Assert.That(res2.OrganizationMembership.Id, Is.GreaterThan(0)); - Assert.That(api.Organizations.DeleteOrganizationMembership(res2.OrganizationMembership.Id.Value), Is.True); - Assert.That(api.Users.DeleteUser(res.User.Id.Value), Is.True); - Assert.That(api.Organizations.DeleteOrganization(org.Organization.Id.Value), Is.True); - } - - - [Test] - [Ignore("Support ticket opend will update when I(Elizabeth) have a fix ")] - public void CanCreateManyAndDeleteOrganizationMemberships() - { - var org = api.Organizations.CreateOrganization(new Organization() - { - Name = "Test Org" - }); - - Assert.That(org.Organization.Id, Is.GreaterThan(0)); - - var org2 = api.Organizations.CreateOrganization(new Organization() - { - Name = "Test Org2" - }); - - Assert.That(org2.Organization.Id, Is.GreaterThan(0)); - - var res = api.Users.CreateUser(new User() - { - Name = "Test User Org Mem", - Email = "test_org_mem@test.com", - Role = "end-user" - }); - - Assert.That(res.User.Id, Is.GreaterThan(0)); - - var memberships = new List - { - new OrganizationMembership() { UserId = res.User.Id, OrganizationId = org.Organization.Id }, - new OrganizationMembership() { UserId = res.User.Id, OrganizationId = org2.Organization.Id } - }; - - var job = api.Organizations.CreateManyOrganizationMemberships(memberships).JobStatus; - - var sleep = 2000; - var retries = 0; - while (!job.Status.Equals("completed") && retries < 7) - { - System.Threading.Thread.Sleep(sleep); - job = api.JobStatuses.GetJobStatus(job.Id).JobStatus; - sleep = (sleep < 64000 ? sleep *= 2 : 64000); - retries++; - } - - Assert.That(job.Results.Count(), Is.GreaterThan(0)); - - Assert.That(api.Organizations.DeleteOrganizationMembership(job.Results[0].Id), Is.True); - Assert.That(api.Organizations.DeleteOrganizationMembership(job.Results[1].Id), Is.True); - - Assert.That(api.Users.DeleteUser(res.User.Id.Value), Is.True); - Assert.That(api.Organizations.DeleteOrganization(org.Organization.Id.Value), Is.True); - Assert.That(api.Organizations.DeleteOrganization(org2.Organization.Id.Value), Is.True); + Assert.That(Api.Organizations.DeleteOrganizationMembership(res2.OrganizationMembership.Id.Value), Is.True); + Assert.That(Api.Users.DeleteUser(res.User.Id.Value), Is.True); + Assert.That(Api.Organizations.DeleteOrganization(org.Organization.Id.Value), Is.True); } - [Test] public async Task CanSearchForOrganizationsAsync() { - var search = await api.Organizations.SearchForOrganizationsAsync(Settings.DefaultExternalId); + var search = await Api.Organizations.SearchForOrganizationsAsync(Organization.ExternalID); Assert.That(search.Count, Is.GreaterThan(0)); } [Test] public void CanGetIncrementalOrganizationExport() { - var incrementalOrganizationExport = api.Organizations.GetIncrementalOrganizationExport(Settings.Epoch); + var incrementalOrganizationExport = Api.Organizations.GetIncrementalOrganizationExport(Settings.Epoch); Assert.That(incrementalOrganizationExport.Organizations.Count, Is.GreaterThan(0)); - var incrementalOrganizationExportNextPage = api.Organizations.GetIncrementalOrganizationExportNextPage(incrementalOrganizationExport.NextPage); + var incrementalOrganizationExportNextPage = Api.Organizations.GetIncrementalOrganizationExportNextPage(incrementalOrganizationExport.NextPage); Assert.That(incrementalOrganizationExportNextPage.Organizations.Count, Is.GreaterThan(0)); } [Test] public async Task CanGetIncrementalOrganizationExportAsync() { - var incrementalOrganizationExport = await api.Organizations.GetIncrementalOrganizationExportAsync(Settings.Epoch); + var incrementalOrganizationExport = await Api.Organizations.GetIncrementalOrganizationExportAsync(Settings.Epoch); Assert.That(incrementalOrganizationExport.Organizations.Count, Is.GreaterThan(0)); - var incrementalOrganizationExportNextPage = await api.Organizations.GetIncrementalOrganizationExportNextPageAsync(incrementalOrganizationExport.NextPage); + var incrementalOrganizationExportNextPage = await Api.Organizations.GetIncrementalOrganizationExportNextPageAsync(incrementalOrganizationExport.NextPage); Assert.That(incrementalOrganizationExportNextPage.Organizations.Count, Is.GreaterThan(0)); } [Test] public async Task CanCreateUpdateAndDeleteMultipeOrganizationsAsync() { - var res1 = await api.Organizations.CreateOrganizationAsync(new Organization() + var res1 = await Api.Organizations.CreateOrganizationAsync(new Organization() { Name = "Test Org 1" }); - var res2 = await api.Organizations.CreateOrganizationAsync(new Organization() + var res2 = await Api.Organizations.CreateOrganizationAsync(new Organization() { Name = "Test Org 2" }); @@ -347,7 +287,7 @@ public async Task CanCreateUpdateAndDeleteMultipeOrganizationsAsync() res2.Organization.Notes = "Here is a sample note 2"; var organisations = new List { res1.Organization, res2.Organization }; - var updateJobStatus = await api.Organizations.UpdateMultipleOrganizationsAsync(organisations); + var updateJobStatus = await Api.Organizations.UpdateMultipleOrganizationsAsync(organisations); Assert.That(updateJobStatus.JobStatus.Status, Is.EqualTo("queued")); JobStatusResponse job = null; @@ -355,20 +295,20 @@ public async Task CanCreateUpdateAndDeleteMultipeOrganizationsAsync() do { Thread.Sleep(5000); - job = await api.JobStatuses.GetJobStatusAsync(updateJobStatus.JobStatus.Id); + job = await Api.JobStatuses.GetJobStatusAsync(updateJobStatus.JobStatus.Id); Assert.That(job.JobStatus.Id, Is.EqualTo(updateJobStatus.JobStatus.Id)); if (job.JobStatus.Status == "completed") break; } while (true); var updatedOrganizationIds = new List { res1.Organization.Id.Value, res2.Organization.Id.Value }; - var updatedOrganizations = await api.Organizations.GetMultipleOrganizationsAsync(updatedOrganizationIds); + var updatedOrganizations = await Api.Organizations.GetMultipleOrganizationsAsync(updatedOrganizationIds); Assert.That(updatedOrganizations.Organizations.FirstOrDefault(o => o.Id == res1.Organization.Id).Notes, Is.EqualTo(res1.Organization.Notes)); Assert.That(updatedOrganizations.Organizations.FirstOrDefault(o => o.Id == res2.Organization.Id).Notes, Is.EqualTo(res2.Organization.Notes)); - await api.Organizations.DeleteOrganizationAsync(res1.Organization.Id.Value); - await api.Organizations.DeleteOrganizationAsync(res2.Organization.Id.Value); + await Api.Organizations.DeleteOrganizationAsync(res1.Organization.Id.Value); + await Api.Organizations.DeleteOrganizationAsync(res2.Organization.Id.Value); } } } \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/RequestTests.cs b/tests/ZendeskApi_v2.Tests/RequestTests.cs similarity index 76% rename from test/ZendeskApi_v2.Test/RequestTests.cs rename to tests/ZendeskApi_v2.Tests/RequestTests.cs index dd844082..e74021fc 100644 --- a/test/ZendeskApi_v2.Test/RequestTests.cs +++ b/tests/ZendeskApi_v2.Tests/RequestTests.cs @@ -1,23 +1,20 @@ -using System; -using System.Collections.Generic; using NUnit.Framework; +using System.Collections.Generic; using System.Linq; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Requests; using ZendeskApi_v2.Models.Tickets; using ZendeskApi_v2.Models.Users; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class RequestTests + public class RequestTests : TestBase { - private readonly ZendeskApi _api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanGetAllRequests() { - var res = _api.Requests.GetAllRequests(); + var res = Api.Requests.GetAllRequests(); Assert.That(res.Count, Is.GreaterThan(0)); } @@ -27,7 +24,7 @@ public void CanGetAllRequestsPaged(int perPage, int page) { Assert.DoesNotThrow(() => { - var res = _api.Requests.GetAllRequests(perPage: perPage, page: page); + var res = Api.Requests.GetAllRequests(perPage: perPage, page: page); Assert.That(res, Is.Not.Null); Assert.That(res.Requests, Is.Not.Null); @@ -41,7 +38,7 @@ public void CanGetAllRequestsSorted() { Assert.DoesNotThrow(() => { - var unsorted = _api.Requests.GetAllRequests(); + var unsorted = Api.Requests.GetAllRequests(); Assert.That(unsorted, Is.Not.Null); Assert.That(unsorted.Requests, Is.Not.Null); @@ -50,7 +47,7 @@ public void CanGetAllRequestsSorted() #pragma warning restore NUnit2009 // The same value has been provided as both the actual and the expected argument Assert.That(unsorted.Requests.AsQueryable(), Is.Not.EqualTo(unsorted.Requests.OrderBy(request => request.UpdatedAt).AsQueryable())); - var sorted = _api.Requests.GetAllRequests(sortCol: "updated_at", sortAscending: true); + var sorted = Api.Requests.GetAllRequests(sortCol: "updated_at", sortAscending: true); Assert.That(sorted, Is.Not.Null); Assert.That(sorted.Requests, Is.Not.Null); @@ -64,7 +61,7 @@ public void CanGetAllRequestsSorted() [Test] public void CanGetOpenRequests() { - var res = _api.Requests.GetAllOpenRequests(); + var res = Api.Requests.GetAllOpenRequests(); Assert.That(res.Count, Is.GreaterThan(0)); } @@ -74,7 +71,7 @@ public void CanGetAllOpenRequestsPaged(int perPage, int page) { Assert.DoesNotThrow(() => { - var res = _api.Requests.GetAllOpenRequests(perPage: perPage, page: page); + var res = Api.Requests.GetAllOpenRequests(perPage: perPage, page: page); Assert.That(res, Is.Not.Null); Assert.That(res.Requests, Is.Not.Null); @@ -88,7 +85,7 @@ public void CanGetAllOpenRequestsSorted() { Assert.DoesNotThrow(() => { - var unsorted = _api.Requests.GetAllOpenRequests(); + var unsorted = Api.Requests.GetAllOpenRequests(); Assert.That(unsorted, Is.Not.Null); Assert.That(unsorted.Requests, Is.Not.Null); @@ -97,7 +94,7 @@ public void CanGetAllOpenRequestsSorted() #pragma warning restore NUnit2009 // The same value has been provided as both the actual and the expected argument Assert.That(unsorted.Requests.AsQueryable(), Is.Not.EqualTo(unsorted.Requests.OrderBy(request => request.UpdatedAt).AsQueryable())); - var sorted = _api.Requests.GetAllOpenRequests(sortCol: "updated_at", sortAscending: true); + var sorted = Api.Requests.GetAllOpenRequests(sortCol: "updated_at", sortAscending: true); Assert.That(sorted, Is.Not.Null); Assert.That(sorted.Requests, Is.Not.Null); @@ -111,7 +108,7 @@ public void CanGetAllOpenRequestsSorted() [Test] public void CanGetAllSolvedRequests() { - var res = _api.Requests.GetAllSolvedRequests(); + var res = Api.Requests.GetAllSolvedRequests(); Assert.That(res.Count, Is.GreaterThan(0)); } @@ -121,7 +118,7 @@ public void CanGetAllSolvedRequestsPaged(int perPage, int page) { Assert.DoesNotThrow(() => { - var res = _api.Requests.GetAllSolvedRequests(perPage: perPage, page: page); + var res = Api.Requests.GetAllSolvedRequests(perPage: perPage, page: page); Assert.That(res, Is.Not.Null); Assert.That(res.Requests, Is.Not.Null); @@ -135,7 +132,7 @@ public void CanGetAllSolvedRequestsSorted() { Assert.DoesNotThrow(() => { - var unsorted = _api.Requests.GetAllSolvedRequests(); + var unsorted = Api.Requests.GetAllSolvedRequests(); Assert.That(unsorted, Is.Not.Null); Assert.That(unsorted.Requests, Is.Not.Null); @@ -144,7 +141,7 @@ public void CanGetAllSolvedRequestsSorted() #pragma warning restore NUnit2009 // The same value has been provided as both the actual and the expected argument Assert.That(unsorted.Requests.AsQueryable(), Is.Not.EqualTo(unsorted.Requests.OrderBy(request => request.UpdatedAt).AsQueryable())); - var sorted = _api.Requests.GetAllSolvedRequests(sortCol: "updated_at", sortAscending: true); + var sorted = Api.Requests.GetAllSolvedRequests(sortCol: "updated_at", sortAscending: true); Assert.That(sorted, Is.Not.Null); Assert.That(sorted.Requests, Is.Not.Null); @@ -164,15 +161,15 @@ public void CanCreateAndUpdateRequests() Subject = "end user request test", Type = RequestType.incident, Comment = new Comment - {Body = "end user test", HtmlBody = "end user test with
new line", Public = true}, + { Body = "end user test", HtmlBody = "end user test with
new line", Public = true }, Requester = new Requester { Name = "Test Name" }, - Tags = new List {"tag1", "tag2"} + Tags = new List { "tag1", "tag2" } }; - var res = _api.Requests.CreateRequest(req); + var res = Api.Requests.CreateRequest(req); try { @@ -182,14 +179,13 @@ public void CanCreateAndUpdateRequests() Assert.That(res.Request.Type, Is.EqualTo(RequestType.incident)); Assert.That(res.Request.Id.Value, Is.GreaterThan(0)); - - IndividualUserResponse user = _api.Users.GetUser(res.Request.RequesterId.Value); + IndividualUserResponse user = Api.Users.GetUser(res.Request.RequesterId.Value); Assert.That(user.User.Name, Is.EqualTo("Test Name")); - IndividualTicketResponse ticket = _api.Tickets.GetTicket(res.Request.Id.Value); - CollectionAssert.AreEquivalent(new[] {"tag1", "tag2"}, ticket.Ticket.Tags); + IndividualTicketResponse ticket = Api.Tickets.GetTicket(res.Request.Id.Value); + CollectionAssert.AreEquivalent(new[] { "tag1", "tag2" }, ticket.Ticket.Tags); - var res1 = _api.Requests.GetRequestById(res.Request.Id.Value); + var res1 = Api.Requests.GetRequestById(res.Request.Id.Value); Assert.That(res.Request.Id, Is.EqualTo(res1.Request.Id)); res1.Request.Subject = "new subject"; @@ -198,23 +194,23 @@ public void CanCreateAndUpdateRequests() Body = "something more to say", Public = true }; - _ = _api.Requests.UpdateRequest(res1.Request); - var res3 = _api.Requests.GetRequestCommentsById(res.Request.Id.Value); + _ = Api.Requests.UpdateRequest(res1.Request); + var res3 = Api.Requests.GetRequestCommentsById(res.Request.Id.Value); Assert.That(res3.Comments.Last().Body.Replace("\n", ""), Is.EqualTo("something more to say")); - var res4 = _api.Requests.GetSpecificRequestComment(res.Request.Id.Value, res3.Comments.Last().Id.Value); + var res4 = Api.Requests.GetSpecificRequestComment(res.Request.Id.Value, res3.Comments.Last().Id.Value); res1.Request.RequesterId = 56766413L; - var res5 = _api.Requests.UpdateRequest(res1.Request); - var res6 = _api.Requests.GetRequestById(res.Request.Id.Value); + var res5 = Api.Requests.UpdateRequest(res1.Request); + var res6 = Api.Requests.GetRequestById(res.Request.Id.Value); Assert.That(res6.Request.RequesterId, Is.EqualTo(res5.Request.RequesterId)); Assert.That(res3.Comments.Last().Id, Is.EqualTo(res4.Comment.Id)); } finally { - Assert.That(_api.Tickets.Delete(res.Request.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Request.Id.Value), Is.True); } } @@ -241,7 +237,7 @@ public void CanCreateRequestWithEmailCCs() EmailCCs = emailCCs }; - var res = _api.Requests.CreateRequest(req); + var res = Api.Requests.CreateRequest(req); try { @@ -250,19 +246,19 @@ public void CanCreateRequestWithEmailCCs() Assert.That(res.Request.Id.HasValue, Is.True); Assert.That(res.Request.Id.Value, Is.GreaterThan(0)); - IndividualUserResponse user = _api.Users.GetUser(res.Request.RequesterId.Value); + IndividualUserResponse user = Api.Users.GetUser(res.Request.RequesterId.Value); Assert.That(user.User.Name, Is.EqualTo("Test Name")); - IndividualTicketResponse ticket = _api.Tickets.GetTicket(res.Request.Id.Value); + IndividualTicketResponse ticket = Api.Tickets.GetTicket(res.Request.Id.Value); CollectionAssert.AreEquivalent(new[] { "tag1", "tag2" }, ticket.Ticket.Tags); IList collaboratorsIds = ticket.Ticket.CollaboratorIds; - GroupUserResponse collaborators = _api.Users.GetMultipleUsers(collaboratorsIds.AsEnumerable()); + GroupUserResponse collaborators = Api.Users.GetMultipleUsers(collaboratorsIds.AsEnumerable()); CollectionAssert.AreEquivalent(emailCCs.Select(e => e.UserEmail), collaborators.Users.Select(u => u.Email)); } finally { - Assert.That(_api.Tickets.Delete(res.Request.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Request.Id.Value), Is.True); } } } diff --git a/test/ZendeskApi_v2.Test/SatisfactionRatingTests.cs b/tests/ZendeskApi_v2.Tests/SatisfactionRatingTests.cs similarity index 74% rename from test/ZendeskApi_v2.Test/SatisfactionRatingTests.cs rename to tests/ZendeskApi_v2.Tests/SatisfactionRatingTests.cs index cfa03f0b..5c750e54 100644 --- a/test/ZendeskApi_v2.Test/SatisfactionRatingTests.cs +++ b/tests/ZendeskApi_v2.Tests/SatisfactionRatingTests.cs @@ -1,26 +1,24 @@ using NUnit.Framework; -using ZendeskApi_v2; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class SatisfactionRatingTests + public class SatisfactionRatingTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanGetBadSatisfactionRatings() { - var receivedSatisfactionRating = api.SatisfactionRatings.GetSatisfactionRatingById(360342335066); //From Ticket 15157 + var receivedSatisfactionRating = Api.SatisfactionRatings.GetSatisfactionRatingById(360342335066); //From Ticket 15157 Assert.That(receivedSatisfactionRating.SatisfactionRating.Score, Is.EqualTo("bad")); Assert.That(receivedSatisfactionRating.SatisfactionRating.Comment, Is.EqualTo("poor job!")); Assert.That(receivedSatisfactionRating.SatisfactionRating.Reason, Is.EqualTo("The issue was not resolved")); } - + [Test] public void CanGetGoodSatisfactionRatings() { - var receivedSatisfactionRating = api.SatisfactionRatings.GetSatisfactionRatingById(360342335186); //From Ticket 15156 + var receivedSatisfactionRating = Api.SatisfactionRatings.GetSatisfactionRatingById(360342335186); //From Ticket 15156 Assert.That(receivedSatisfactionRating.SatisfactionRating.Score, Is.EqualTo("good")); Assert.That(receivedSatisfactionRating.SatisfactionRating.Comment, Is.EqualTo("nice job!")); Assert.That(receivedSatisfactionRating.SatisfactionRating.Reason, Is.EqualTo("No reason provided")); diff --git a/test/ZendeskApi_v2.Test/ScheduleTests.cs b/tests/ZendeskApi_v2.Tests/ScheduleTests.cs similarity index 68% rename from test/ZendeskApi_v2.Test/ScheduleTests.cs rename to tests/ZendeskApi_v2.Tests/ScheduleTests.cs index 7ea2b9df..8b849929 100644 --- a/test/ZendeskApi_v2.Test/ScheduleTests.cs +++ b/tests/ZendeskApi_v2.Tests/ScheduleTests.cs @@ -1,30 +1,27 @@ using NUnit.Framework; using System; -using System.Collections.Generic; using System.Linq; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Schedules; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class ScheduleTests + public class ScheduleTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [OneTimeSetUp] - public void Init() + public void Setup() { - var schedules = api.Schedules.GetAllSchedules(); + var schedules = Api.Schedules.GetAllSchedules(); if (schedules != null) { foreach (var schedule in schedules.Schedules.Where(o => o.Name.Contains("Test Schedule"))) { - api.Schedules.DeleteSchedule(schedule.Id.Value); + Api.Schedules.DeleteSchedule(schedule.Id.Value); } } - var res = api.Schedules.CreateSchedule(new Schedule() + var res = Api.Schedules.CreateSchedule(new Schedule() { Name = "Master Test Schedule", TimeZone = "Pacific Time (US & Canada)" @@ -34,12 +31,12 @@ public void Init() [OneTimeTearDown] public void Dispose() { - var schedules = api.Schedules.GetAllSchedules(); + var schedules = Api.Schedules.GetAllSchedules(); if (schedules != null) { foreach (var schedule in schedules.Schedules.Where(o => o.Name.Contains("Master Test Schedule"))) { - api.Schedules.DeleteSchedule(schedule.Id.Value); + Api.Schedules.DeleteSchedule(schedule.Id.Value); } } } @@ -47,17 +44,17 @@ public void Dispose() [Test] public void CanGetSchedules() { - var res = api.Schedules.GetAllSchedules(); + var res = Api.Schedules.GetAllSchedules(); Assert.That(res.Schedules.Count, Is.GreaterThan(0)); - var org = api.Schedules.GetSchedule(res.Schedules[0].Id.Value); + var org = Api.Schedules.GetSchedule(res.Schedules[0].Id.Value); Assert.That(res.Schedules[0].Id, Is.EqualTo(org.Schedule.Id)); } [Test] public void CanCreateUpdateAndDeleteSchedule() { - var res = api.Schedules.CreateSchedule(new Schedule() + var res = Api.Schedules.CreateSchedule(new Schedule() { Name = "Test Schedule", TimeZone = "Pacific Time (US & Canada)" @@ -66,16 +63,16 @@ public void CanCreateUpdateAndDeleteSchedule() Assert.That(res.Schedule.Id, Is.GreaterThan(0)); res.Schedule.TimeZone = "Central Time (US & Canada)"; - var update = api.Schedules.UpdateSchedule(res.Schedule); + var update = Api.Schedules.UpdateSchedule(res.Schedule); Assert.That(res.Schedule.TimeZone, Is.EqualTo(update.Schedule.TimeZone)); - Assert.That(api.Schedules.DeleteSchedule(res.Schedule.Id.Value), Is.True); + Assert.That(Api.Schedules.DeleteSchedule(res.Schedule.Id.Value), Is.True); } [Test] public void CanUpdateIntervals() { - var res = api.Schedules.CreateSchedule(new Schedule() + var res = Api.Schedules.CreateSchedule(new Schedule() { Name = "Test Schedule", TimeZone = "Pacific Time (US & Canada)" @@ -90,24 +87,24 @@ public void CanUpdateIntervals() work.Intervals[0].StartTime = 1860; work.Intervals[0].EndTime = 2460; - var update = api.Schedules.UpdateIntervals(res.Schedule.Id.Value, work); + var update = Api.Schedules.UpdateIntervals(res.Schedule.Id.Value, work); Assert.That(update.WorkWeek.Intervals.Count, Is.GreaterThan(0)); Assert.That(update.WorkWeek.Intervals[0].EndTime, Is.EqualTo(work.Intervals[0].EndTime)); - Assert.That(api.Schedules.DeleteSchedule(res.Schedule.Id.Value), Is.True); + Assert.That(Api.Schedules.DeleteSchedule(res.Schedule.Id.Value), Is.True); } [Test] public void CanCreateUpdateAndDeleteHoliday() { - var res = api.Schedules.CreateSchedule(new Schedule() + var res = Api.Schedules.CreateSchedule(new Schedule() { Name = "Test Schedule", TimeZone = "Pacific Time (US & Canada)" }); - var res2 = api.Schedules.CreateHoliday(res.Schedule.Id.Value, new Holiday() + var res2 = Api.Schedules.CreateHoliday(res.Schedule.Id.Value, new Holiday() { Name = "Test Holiday", StartDate = DateTimeOffset.UtcNow.AddDays(1).Date, @@ -117,12 +114,12 @@ public void CanCreateUpdateAndDeleteHoliday() Assert.That(res2.Holiday.Id, Is.GreaterThan(0)); res2.Holiday.EndDate = DateTimeOffset.UtcNow.AddDays(3).Date; - var update = api.Schedules.UpdateHoliday(res.Schedule.Id.Value, res2.Holiday); + var update = Api.Schedules.UpdateHoliday(res.Schedule.Id.Value, res2.Holiday); Assert.That(res2.Holiday.Name, Is.EqualTo(update.Holiday.Name)); Assert.That(res2.Holiday.EndDate, Is.EqualTo(update.Holiday.EndDate)); - Assert.That(api.Schedules.DeleteHoliday(res.Schedule.Id.Value, res2.Holiday.Id.Value), Is.True); - Assert.That(api.Schedules.DeleteSchedule(res.Schedule.Id.Value), Is.True); + Assert.That(Api.Schedules.DeleteHoliday(res.Schedule.Id.Value, res2.Holiday.Id.Value), Is.True); + Assert.That(Api.Schedules.DeleteSchedule(res.Schedule.Id.Value), Is.True); } } } \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/SearchTests.cs b/tests/ZendeskApi_v2.Tests/SearchTests.cs similarity index 73% rename from test/ZendeskApi_v2.Test/SearchTests.cs rename to tests/ZendeskApi_v2.Tests/SearchTests.cs index 83d9dae2..eb900174 100644 --- a/test/ZendeskApi_v2.Test/SearchTests.cs +++ b/tests/ZendeskApi_v2.Tests/SearchTests.cs @@ -1,24 +1,19 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; using NUnit.Framework; -using ZendeskApi_v2; -using ZendeskApi_v2.Models.Constants; +using System.Threading.Tasks; using ZendeskApi_v2.Models.Tickets; using ZendeskApi_v2.Models.Users; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] [Category("Search")] - public class SearchTests + public class SearchTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanSearch() { - var res = api.Search.SearchFor(Settings.AdminEmail); + var res = Api.Search.SearchFor(Admin.Email); Assert.That(res.Results[0].ResultType, Is.EqualTo("user")); Assert.That(res.Results[0].Id, Is.GreaterThan(0)); } @@ -26,30 +21,29 @@ public void CanSearch() [Test] public void BackwardCompatibilitAfterAddingPagination() { - var res = api.Search.SearchFor("Effective", "updated_at", "asc"); + var res = Api.Search.SearchFor("Effective", "updated_at", "asc"); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void TotalNumberOftickesShouldbeSameWhenReterivingNextPage() { - var res = api.Search.SearchFor("Effective"); //search for a custom field - the results are more than one page + var res = Api.Search.SearchFor("Effective"); //search for a custom field - the results are more than one page var total = res.Count; Assert.That(res.Count, Is.GreaterThan(0)); Assert.That(res.Count, Is.GreaterThan(res.Results.Count)); //result has more than one page Assert.That(!string.IsNullOrEmpty(res.NextPage), Is.True); //It has next page - res = api.Search.SearchFor("Effective", page: 2); //fetch next page + res = Api.Search.SearchFor("Effective", page: 2); //fetch next page Assert.That(res.Count, Is.GreaterThan(0)); Assert.That(res.Count, Is.EqualTo(total)); //number of results should be same as page 1 - } [Test] public void TicketHasSubject() { - var res = api.Search.SearchFor("my printer is on fire"); + var res = Api.Search.SearchFor("my printer is on fire"); Assert.That(res, Is.Not.EqualTo(null)); Assert.That(res.Results.Count, Is.GreaterThan(0)); @@ -59,66 +53,64 @@ public void TicketHasSubject() [Test] public void TicketSearchByTicketAnonymousType() { - var res = api.Search.SearchFor("my printer is on fire"); + var res = Api.Search.SearchFor("my printer is on fire"); Assert.That(res, Is.Not.EqualTo(null)); Assert.That(res.Results.Count, Is.GreaterThan(10)); Assert.That(!string.IsNullOrEmpty(res.Results[0].Subject), Is.True); - var noRes = api.Search.SearchFor("my printer is on fire"); + var noRes = Api.Search.SearchFor("my printer is on fire"); Assert.That(noRes, Is.Not.EqualTo(null)); Assert.That(noRes.Results.Count, Is.EqualTo(0)); - res = api.Search.SearchFor("my printer is on fire", perPage: 10); + res = Api.Search.SearchFor("my printer is on fire", perPage: 10); Assert.That(res, Is.Not.EqualTo(null)); Assert.That(res.Results.Count, Is.EqualTo(10)); Assert.That(res.Page, Is.EqualTo(1)); Assert.That(res.Results[0] is Ticket, Is.True); - } [Test] public async Task TicketSearchByTicketAnonymousTypeAsync() { - var res = await api.Search.SearchForAsync("my printer is on fire"); + var res = await Api.Search.SearchForAsync("my printer is on fire"); Assert.That(res, Is.Not.EqualTo(null)); Assert.That(res.Results.Count, Is.GreaterThan(10)); Assert.That(!string.IsNullOrEmpty(res.Results[0].Subject), Is.True); - var noRes = await api.Search.SearchForAsync("my printer is on fire"); + var noRes = await Api.Search.SearchForAsync("my printer is on fire"); Assert.That(noRes, Is.Not.EqualTo(null)); Assert.That(noRes.Results.Count, Is.EqualTo(0)); - res = await api.Search.SearchForAsync("my printer is on fire", perPage: 10); + res = await Api.Search.SearchForAsync("my printer is on fire", perPage: 10); Assert.That(res, Is.Not.EqualTo(null)); Assert.That(res.Results.Count, Is.EqualTo(10)); Assert.That(res.Page, Is.EqualTo(1)); Assert.That(res.Results[0] is Ticket, Is.True); - } [Test] public void UserSearchByUserAnonymousType() { - var res = api.Search.SearchFor(Settings.AdminEmail); + var res = Api.Search.SearchFor(Admin.Email); Assert.That(res, Is.Not.EqualTo(null)); Assert.That(res.Results.Count, Is.EqualTo(1)); - Assert.That(res.Results[0].Id, Is.EqualTo(Settings.UserId)); + Assert.That(res.Results[0].Id, Is.EqualTo(Admin.ID)); Assert.That(res.Results[0] is User, Is.True); } [Test] public async Task UserSearchByUserAnonymousTypeAsync() { - var res = await api.Search.SearchForAsync(Settings.AdminEmail); + var res = await Api.Search.SearchForAsync(Admin.Email); Assert.That(res, Is.Not.EqualTo(null)); Assert.That(res.Results.Count, Is.EqualTo(1)); - Assert.That(res.Results[0].Id, Is.EqualTo(Settings.UserId)); + Assert.That(res.Results[0].Id, Is.EqualTo(Admin.ID)); Assert.That(res.Results[0] is User, Is.True); } @@ -126,12 +118,11 @@ public async Task UserSearchByUserAnonymousTypeAsync() public void SearchSortIsWorking() { //desc asc - var res = api.Search.SearchFor("Effective", "created_at", "asc"); + var res = Api.Search.SearchFor("Effective", "created_at", "asc"); Assert.That(res.Count, Is.GreaterThan(2)); var first = res.Results[0]; var second = res.Results[1]; Assert.That(second.CreatedAt, Is.GreaterThan(first.CreatedAt)); - } } } \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/Settings.cs b/tests/ZendeskApi_v2.Tests/Settings.cs similarity index 60% rename from test/ZendeskApi_v2.Test/Settings.cs rename to tests/ZendeskApi_v2.Tests/Settings.cs index c99e2574..01a71c81 100644 --- a/test/ZendeskApi_v2.Test/Settings.cs +++ b/tests/ZendeskApi_v2.Tests/Settings.cs @@ -1,44 +1,29 @@ using System; -namespace Tests +namespace ZendeskApi_v2.Tests { public class Settings { - public const string Site = "https://csharpapi.zendesk.com/api/v2/"; - public const string DefaultOrg = "csharpapi"; - public const string DefaultExternalId = "1234abc"; - - public const string AdminPassword = "wHth9.pEvn2MLE^=}Y*j.v_x"; - public const string AdminEmail = "csharpzendeskapi1234@gmail.com"; - - public const string ApiToken = "sclVCOJERiSCWmTLpkexGXiYeawG2noGxPxnaBuc"; public const string Phone = "1234567890"; public const string FormattedPhone = "(111) 222-3333"; public const string BadPhone = "0987654321"; - public const string AgentEmail = "zendeskcsharpapi454@gmail.com"; - public const string AgentPassword = "Pa55word,"; - public const string FieldKey = "test"; public const string FieldValue = "0897c9c1f80646118a8194c942aa84cf"; public const string BadFieldValue = "BAD"; - public const long UserId = 281513402; public const long SampleTicketId = 990; public const long SampleTicketId2 = 1366; public const long SampleTicketId3 = 1364; - public const long EndUserId = 287004928; - - public const string ColloboratorEmail = "zendeskcsharpapi454@gmail.com";//"eneif123@yahoo.com"; - public const long CollaboratorId = 2110053086; // 282136547; + public const string ColloboratorEmail = "zendeskcsharpapi454@gmail.com"; + public const long CollaboratorId = 2110053086; public const long CustomFieldId = 22117646; public const long CustomBoolFieldId = 23812686; public const long CustomDropDownId = 360023145351; public const long GroupId = 20402842; - public const long OrganizationId = 361477412411; public const string ViewName = "My unsolved tickets"; public const int ViewId = 31559032; diff --git a/tests/ZendeskApi_v2.Tests/SharingAgreementTests.cs b/tests/ZendeskApi_v2.Tests/SharingAgreementTests.cs new file mode 100644 index 00000000..c8fcba0f --- /dev/null +++ b/tests/ZendeskApi_v2.Tests/SharingAgreementTests.cs @@ -0,0 +1,17 @@ +using NUnit.Framework; +using ZendeskApi_v2.Tests.Base; + +namespace ZendeskApi_v2.Tests +{ + [TestFixture] + public class SharingAgreementTests : TestBase + { + [Test] + public void CanGetSharingAgreements() + { + var res = Api.SharingAgreements.GetSharingAgreements(); + + Assert.That(res, Is.Not.Null); + } + } +} \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/TagTests.cs b/tests/ZendeskApi_v2.Tests/TagTests.cs similarity index 50% rename from test/ZendeskApi_v2.Test/TagTests.cs rename to tests/ZendeskApi_v2.Tests/TagTests.cs index 24822aee..2697ad98 100644 --- a/test/ZendeskApi_v2.Test/TagTests.cs +++ b/tests/ZendeskApi_v2.Tests/TagTests.cs @@ -1,26 +1,23 @@ using NUnit.Framework; -using ZendeskApi_v2; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class TagTests + public class TagTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanGetTags() { - var res = api.Tags.GetTags(); - + var res = Api.Tags.GetTags(); Assert.That(res.Tags.Count, Is.GreaterThan(0)); } [Test] public void CanAutocompleteTags() { - var res = api.Tags.GetTags(); - var auto = api.Tags.AutocompleteTags(res.Tags[0].Name.Substring(0, 3)); + var res = Api.Tags.GetTags(); + var auto = Api.Tags.AutocompleteTags(res.Tags[0].Name.Substring(0, 3)); Assert.That(auto.Tags.Count, Is.GreaterThan(0)); } diff --git a/test/ZendeskApi_v2.Test/TargetTests.cs b/tests/ZendeskApi_v2.Tests/TargetTests.cs similarity index 68% rename from test/ZendeskApi_v2.Test/TargetTests.cs rename to tests/ZendeskApi_v2.Tests/TargetTests.cs index bc794cae..64098a2a 100644 --- a/test/ZendeskApi_v2.Test/TargetTests.cs +++ b/tests/ZendeskApi_v2.Tests/TargetTests.cs @@ -1,26 +1,23 @@ using NUnit.Framework; using System.Linq; -using System.Net; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Targets; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class TargetTests + public class TargetTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [OneTimeSetUp] - public void Init() + public void Setup() { - var targets = api.Targets.GetAllTargets(); + var targets = Api.Targets.GetAllTargets(); if (targets != null) { foreach (var target in targets.Targets.Where(o => o.Title.Contains("Test Email Target") || o.Title.Contains("Test Jira Target"))) { - api.Targets.DeleteTarget(target.Id.Value); + Api.Targets.DeleteTarget(target.Id.Value); } } } @@ -31,15 +28,15 @@ public void CanCreateUpdateAndDeleteHttpTargets() var target = new HTTPTarget() { Title = "Test Email Target", - Active = false, - TargetUrl= "https://test.com", + Active = false, + TargetUrl = "https://test.com", ContentType = "application/json", Method = "post", Username = "TestUser", Password = "TestPass" }; - var targetResult = (HTTPTarget)api.Targets.CreateTarget(target).Target; + var targetResult = (HTTPTarget)Api.Targets.CreateTarget(target).Target; Assert.That(targetResult, Is.Not.Null); Assert.That(targetResult, Is.InstanceOf()); Assert.That(targetResult.Active, Is.False); @@ -52,10 +49,10 @@ public void CanCreateUpdateAndDeleteHttpTargets() targetResult.Active = true; - var update = (HTTPTarget)api.Targets.UpdateTarget(targetResult).Target; + var update = (HTTPTarget)Api.Targets.UpdateTarget(targetResult).Target; Assert.That(update.Active, Is.EqualTo(targetResult.Active)); - Assert.That(api.Targets.DeleteTarget(update.Id.Value), Is.True); + Assert.That(Api.Targets.DeleteTarget(update.Id.Value), Is.True); } [Test] @@ -63,13 +60,13 @@ public void CanCreateUpdateAndDeleteTargets() { var target = new EmailTarget() { - Title = "Test Email Target", - Active = false, - Email = "test@test.com", + Title = "Test Email Target", + Active = false, + Email = "test@test.com", Subject = "Test" }; - var emailResult = (EmailTarget)api.Targets.CreateTarget(target).Target; + var emailResult = (EmailTarget)Api.Targets.CreateTarget(target).Target; Assert.That(emailResult, Is.Not.Null); Assert.That(emailResult, Is.InstanceOf()); Assert.That(emailResult.Type, Is.EqualTo("email_target")); @@ -78,25 +75,25 @@ public void CanCreateUpdateAndDeleteTargets() emailResult.Subject = "Test Update"; - var update = (EmailTarget)api.Targets.UpdateTarget(emailResult).Target; + var update = (EmailTarget)Api.Targets.UpdateTarget(emailResult).Target; Assert.That(update.Subject, Is.EqualTo(emailResult.Subject)); - Assert.That(api.Targets.DeleteTarget(emailResult.Id.Value), Is.True); + Assert.That(Api.Targets.DeleteTarget(emailResult.Id.Value), Is.True); } [Test] - [Ignore("Opend issue with zendesk")] + //[Ignore("Opend issue with zendesk")] public void CanRetrieveMultipleTargetTypes() { var emailTarget = new EmailTarget() { - Title = "Test Email Target", - Active = false, - Email = "test@test.com", + Title = "Test Email Target", + Active = false, + Email = "test@test.com", Subject = "Test" }; - var emailResult = (EmailTarget)api.Targets.CreateTarget(emailTarget).Target; + var emailResult = (EmailTarget)Api.Targets.CreateTarget(emailTarget).Target; Assert.That(emailResult, Is.Not.Null); Assert.That(emailResult, Is.InstanceOf()); @@ -108,13 +105,13 @@ public void CanRetrieveMultipleTargetTypes() Subject = "Test" }; - var emailResult2 = (EmailTarget)api.Targets.CreateTarget(emailTarget2).Target; + var emailResult2 = (EmailTarget)Api.Targets.CreateTarget(emailTarget2).Target; Assert.That(emailResult2, Is.Not.Null); Assert.That(emailResult2, Is.InstanceOf()); - _ = api.Targets.GetAllTargets(); + _ = Api.Targets.GetAllTargets(); - Assert.That(api.Targets.DeleteTarget(emailResult.Id.Value), Is.True); - Assert.That(api.Targets.DeleteTarget(emailResult2.Id.Value), Is.True); + Assert.That(Api.Targets.DeleteTarget(emailResult.Id.Value), Is.True); + Assert.That(Api.Targets.DeleteTarget(emailResult2.Id.Value), Is.True); } } } \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/TicketTestPart2.cs b/tests/ZendeskApi_v2.Tests/TicketTestPart2.cs similarity index 59% rename from test/ZendeskApi_v2.Test/TicketTestPart2.cs rename to tests/ZendeskApi_v2.Tests/TicketTestPart2.cs index 2d583065..2a8cbf34 100644 --- a/test/ZendeskApi_v2.Test/TicketTestPart2.cs +++ b/tests/ZendeskApi_v2.Tests/TicketTestPart2.cs @@ -2,27 +2,51 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Constants; using ZendeskApi_v2.Models.Tickets; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] [Category("Tickets")] - public class TicketTestsPart2 + public class TicketTestsPart2 : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - private const string ExternalId = "this is a test"; + private long customDropDownId; + + [OneTimeSetUp] + public async Task TestSetUp() + { + var dropDown = new TicketField() + { + Type = TicketFieldTypes.Tagger, + Title = "testing", + Description = "test description", + TitleInPortal = "Test Tagger", + CustomFieldOptions = new List(), + Active = true + }; + + dropDown.CustomFieldOptions.Add(new CustomFieldOptions() + { + Name = "my work", + Value = "mywork" + }); + + dropDown.CustomFieldOptions.Add(new CustomFieldOptions() + { + Name = "broken", + Value = "broken" + }); + + var res = await Api.Tickets.CreateTicketFieldAsync(dropDown, true); + customDropDownId = res.TicketField.Id.Value; + } [OneTimeTearDown] public async Task TestCleanUp() { - var response = await api.Tickets.GetTicketsByExternalIdAsync(ExternalId); - foreach (var item in response.Tickets) - { - await api.Tickets.DeleteAsync(item.Id.Value); - } + await Api.Tickets.DeleteTicketFieldAsync(customDropDownId); } [Test] @@ -33,14 +57,14 @@ public async Task CanGetTicketsByExternalIdAsync() Subject = "my printer is on fire", Comment = new Comment { Body = "HELP", Public = true }, Priority = TicketPriorities.Urgent, - ExternalId = ExternalId + ExternalId = TEST_EXTERNAL_ID }; - var resp1 = await api.Tickets.CreateTicketAsync(ticket); - var response = await api.Tickets.GetTicketsByExternalIdAsync(ticket.ExternalId); + var resp1 = await Api.Tickets.CreateTicketAsync(ticket); + var response = await Api.Tickets.GetTicketsByExternalIdAsync(ticket.ExternalId); Assert.That(response.Tickets.Count, Is.GreaterThan(0)); - Assert.That((await api.Tickets.DeleteAsync(resp1.Ticket.Id.Value)), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(resp1.Ticket.Id.Value), Is.True); } [Test] @@ -51,14 +75,14 @@ public void CanGetTicketsByExternalId() Subject = "my printer is on fire", Comment = new Comment { Body = "HELP", Public = true }, Priority = TicketPriorities.Urgent, - ExternalId = ExternalId + ExternalId = TEST_EXTERNAL_ID }; - var resp1 = api.Tickets.CreateTicket(ticket); - var response = api.Tickets.GetTicketsByExternalId(ticket.ExternalId); + var resp1 = Api.Tickets.CreateTicket(ticket); + var response = Api.Tickets.GetTicketsByExternalId(ticket.ExternalId); Assert.That(response.Tickets.Count, Is.GreaterThan(0)); - Assert.That(api.Tickets.Delete(resp1.Ticket.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(resp1.Ticket.Id.Value), Is.True); } [Test] @@ -71,33 +95,33 @@ public async Task CanBatchUpdateTickets() Subject = "Batch Update Ticket 1", Comment = new Comment { Body = "HELP", Public = true }, Priority = TicketPriorities.Urgent, - ExternalId = ExternalId + ExternalId = TEST_EXTERNAL_ID }, new Ticket { Subject = "Batch Update Ticket 2", Comment = new Comment { Body = "HELP", Public = true }, Priority = TicketPriorities.Urgent, - ExternalId = ExternalId + ExternalId = TEST_EXTERNAL_ID }}; var ticketsToUpdate = new List(); foreach (var ticket in tickets) { - var createResp = await api.Tickets.CreateTicketAsync(ticket); + var createResp = await Api.Tickets.CreateTicketAsync(ticket); ticketsToUpdate.Add(createResp.Ticket); } ticketsToUpdate.ForEach(t => t.Status = pendingStatus); - var updateResp = await api.Tickets.BatchUpdateAsync(ticketsToUpdate); + var updateResp = await Api.Tickets.BatchUpdateAsync(ticketsToUpdate); - var job = await api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); + var job = await Api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); var count = 0; while (job.JobStatus.Status.ToLower() != "completed" && count < 10) { await Task.Delay(1000); - job = await api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); + job = await Api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); count++; } @@ -105,9 +129,9 @@ public async Task CanBatchUpdateTickets() foreach (var r in job.JobStatus.Results) { - var ticket = (await api.Tickets.GetTicketAsync(r.Id)).Ticket; + var ticket = (await Api.Tickets.GetTicketAsync(r.Id)).Ticket; Assert.That(ticket.Status, Is.EqualTo(pendingStatus)); - await api.Tickets.DeleteAsync(r.Id); + await Api.Tickets.DeleteAsync(r.Id); } } @@ -119,36 +143,37 @@ public async Task CustomDropDownFieldSaveAsync() Subject = "my printer is on fire", Comment = new Comment { Body = "HELP" }, Priority = TicketPriorities.Urgent, - CustomFields = new List { new CustomField { Id = Settings.CustomDropDownId, Value = "justwork" } } + CustomFields = new List { new CustomField { Id = customDropDownId, Value = "mywork" } }, + ExternalId = TEST_EXTERNAL_ID }; - var resp = api.Tickets.CreateTicket(ticket); + var resp = Api.Tickets.CreateTicket(ticket); var newTicket = resp.Ticket; - Assert.That(ticket.CustomFields[0].Value, Is.EqualTo(newTicket.CustomFields.FirstOrDefault(x => x.Id == Settings.CustomDropDownId).Value)); + Assert.That(ticket.CustomFields[0].Value, Is.EqualTo(newTicket.CustomFields.FirstOrDefault(x => x.Id == customDropDownId).Value)); - newTicket.CustomFields.FirstOrDefault(x => x.Id == Settings.CustomDropDownId).Value = "brake_fix"; + newTicket.CustomFields.FirstOrDefault(x => x.Id == customDropDownId).Value = "broken"; - var resp2 = await api.Tickets.UpdateTicketAsync(newTicket, new Comment { Body = "Update ticket" }); + var resp2 = await Api.Tickets.UpdateTicketAsync(newTicket, new Comment { Body = "Update ticket" }); var updateTicket = resp2.Ticket; - Assert.That(newTicket.CustomFields.FirstOrDefault(x => x.Id == Settings.CustomDropDownId).Value, - Is.EqualTo(updateTicket.CustomFields.FirstOrDefault(x => x.Id == Settings.CustomDropDownId).Value)); + Assert.That(newTicket.CustomFields.FirstOrDefault(x => x.Id == customDropDownId).Value, + Is.EqualTo(updateTicket.CustomFields.FirstOrDefault(x => x.Id == customDropDownId).Value)); - Assert.That(api.Tickets.Delete(newTicket.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(newTicket.Id.Value), Is.True); } - + [Test] public async Task CanGetFollowUpIds() { var ticket = new Ticket { Comment = new Comment { Body = "Original ticket", Public = false } }; - var resp1 = await api.Tickets.CreateTicketAsync(ticket); + var resp1 = await Api.Tickets.CreateTicketAsync(ticket); var closedTicket = resp1.Ticket; closedTicket.Status = TicketStatus.Closed; - await api.Tickets.UpdateTicketAsync(closedTicket, new Comment { Body = "Closing Original Ticket" }); + await Api.Tickets.UpdateTicketAsync(closedTicket, new Comment { Body = "Closing Original Ticket" }); var ticket_Followup = new Ticket() { @@ -158,15 +183,15 @@ public async Task CanGetFollowUpIds() ViaFollowupSourceId = closedTicket.Id.Value }; - var resp3 = await api.Tickets.CreateTicketAsync(ticket_Followup); - var resp4 = api.Tickets.GetTicket(closedTicket.Id.Value); + var resp3 = await Api.Tickets.CreateTicketAsync(ticket_Followup); + var resp4 = Api.Tickets.GetTicket(closedTicket.Id.Value); Assert.That(resp3.Ticket.Via.Source.Rel, Is.EqualTo("follow_up")); Assert.That(resp4.Ticket.FollowUpIds.Count, Is.EqualTo(1)); Assert.That(resp3.Ticket.Id, Is.EqualTo(resp4.Ticket.FollowUpIds.ElementAt(0))); - Assert.That(await api.Tickets.DeleteAsync(resp3.Ticket.Id.Value), Is.True); - Assert.That(await api.Tickets.DeleteAsync(closedTicket.Id.Value), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(resp3.Ticket.Id.Value), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(closedTicket.Id.Value), Is.True); } } } diff --git a/test/ZendeskApi_v2.Test/TicketTests.cs b/tests/ZendeskApi_v2.Tests/TicketTests.cs similarity index 78% rename from test/ZendeskApi_v2.Test/TicketTests.cs rename to tests/ZendeskApi_v2.Tests/TicketTests.cs index ee2ae576..662f92d7 100644 --- a/test/ZendeskApi_v2.Test/TicketTests.cs +++ b/tests/ZendeskApi_v2.Tests/TicketTests.cs @@ -7,32 +7,30 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; -using ZendeskApi_v2; using ZendeskApi_v2.Extensions; -using ZendeskApi_v2.Models.Brands; using ZendeskApi_v2.Models.Constants; using ZendeskApi_v2.Models.Shared; using ZendeskApi_v2.Models.Tickets; using ZendeskApi_v2.Requests; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] [Category("Tickets")] - public class TicketTests + public class TicketTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); private readonly TicketSideLoadOptionsEnum ticketSideLoadOptions = TicketSideLoadOptionsEnum.Users | TicketSideLoadOptionsEnum.Organizations | TicketSideLoadOptionsEnum.Groups | TicketSideLoadOptionsEnum.Comment_Count; [OneTimeTearDown] public async Task TestCleanUp() { - var response = await api.Tickets.GetTicketFieldsAsync(); + var response = await Api.Tickets.GetTicketFieldsAsync(); foreach (var item in response.TicketFields) { if (item.Title == "My Tagger 2") { - await api.Tickets.DeleteTicketFieldAsync(item.Id.Value); + await Api.Tickets.DeleteTicketFieldAsync(item.Id.Value); } } } @@ -40,14 +38,14 @@ public async Task TestCleanUp() [Test] public void CanGetTicketsAsync() { - var tickets = api.Tickets.GetAllTicketsAsync(); + var tickets = Api.Tickets.GetAllTicketsAsync(); Assert.That(tickets.Result.Count, Is.GreaterThan(0)); } [Test] public void CanGetTicketsAsyncWithSideLoad() { - var tickets = api.Tickets.GetAllTicketsAsync(sideLoadOptions: ticketSideLoadOptions); + var tickets = Api.Tickets.GetAllTicketsAsync(sideLoadOptions: ticketSideLoadOptions); Assert.That(tickets.Result.Count, Is.GreaterThan(0)); Assert.That(tickets.Result.Users.Any(), Is.True); Assert.That(tickets.Result.Organizations.Any(), Is.True); @@ -56,29 +54,28 @@ public void CanGetTicketsAsyncWithSideLoad() [Test] public void CanCanGetTicketsByOrganizationIDAsync() { - var id = Settings.OrganizationId; - var tickets = api.Tickets.GetTicketsByOrganizationIDAsync(id); + var tickets = Api.Tickets.GetTicketsByOrganizationIDAsync(Organization.ID); Assert.That(tickets.Result.Count, Is.GreaterThan(0)); } [Test] public void CanGetTickets() { - var tickets = api.Tickets.GetAllTickets(); + var tickets = Api.Tickets.GetAllTickets(); Assert.That(tickets.Count, Is.GreaterThan(0)); var count = 50; - var nextPage = api.Tickets.GetByPageUrl(tickets.NextPage, count); + var nextPage = Api.Tickets.GetByPageUrl(tickets.NextPage, count); Assert.That(count, Is.EqualTo(nextPage.Tickets.Count)); - var ticketsByUser = api.Tickets.GetTicketsByUserID(tickets.Tickets[0].RequesterId.Value); + var ticketsByUser = Api.Tickets.GetTicketsByUserID(tickets.Tickets[0].RequesterId.Value); Assert.That(ticketsByUser.Count, Is.GreaterThan(0)); } [Test] public void CanGetTicketsWithSideLoad() { - var tickets = api.Tickets.GetAllTickets(sideLoadOptions: ticketSideLoadOptions); + var tickets = Api.Tickets.GetAllTickets(sideLoadOptions: ticketSideLoadOptions); Assert.That(tickets.Count, Is.GreaterThan(0)); Assert.That(tickets.Users.Any(), Is.True); Assert.That(tickets.Organizations.Any(), Is.True); @@ -88,13 +85,13 @@ public void CanGetTicketsWithSideLoad() public void CanGetTicketsPaged() { const int count = 50; - var tickets = api.Tickets.GetAllTickets(count); + var tickets = Api.Tickets.GetAllTickets(count); Assert.That(tickets.Tickets.Count, Is.EqualTo(count)); // 50 Assert.That(tickets.Tickets.Count, Is.Not.EqualTo(tickets.Count)); // 50 != total count of tickets (assumption) const int page = 3; - var thirdPage = api.Tickets.GetAllTickets(count, page); + var thirdPage = Api.Tickets.GetAllTickets(count, page); Assert.That(thirdPage.Tickets.Count, Is.EqualTo(count)); @@ -112,7 +109,7 @@ public void CanGetTicketsPaged() public void CanGetTicketById() { var id = Settings.SampleTicketId; - var ticket = api.Tickets.GetTicket(id).Ticket; + var ticket = Api.Tickets.GetTicket(id).Ticket; Assert.That(ticket, Is.Not.Null); Assert.That(id, Is.EqualTo(ticket.Id)); } @@ -121,7 +118,7 @@ public void CanGetTicketById() public void CanGetTicketByIdWithSideLoad() { var id = Settings.SampleTicketId; - var ticket = api.Tickets.GetTicket(id, sideLoadOptions: ticketSideLoadOptions); + var ticket = Api.Tickets.GetTicket(id, sideLoadOptions: ticketSideLoadOptions); Assert.That(ticket, Is.Not.Null); Assert.That(ticket.Ticket, Is.Not.Null); Assert.That(id, Is.EqualTo(ticket.Ticket.Id)); @@ -132,16 +129,16 @@ public void CanGetTicketByIdWithSideLoad() [Test] public void CanGetTicketsByOrganizationId() { - var id = Settings.OrganizationId; - var tickets = api.Tickets.GetTicketsByOrganizationID(id); + var id = Organization.ID; + var tickets = Api.Tickets.GetTicketsByOrganizationID(id); Assert.That(tickets.Count, Is.GreaterThan(0)); } [Test] public void CanGetTicketsByOrganizationIdPaged() { - var id = Settings.OrganizationId; - var ticketsRes = api.Tickets.GetTicketsByOrganizationID(id, 2, 3); + var id = Organization.ID; + var ticketsRes = Api.Tickets.GetTicketsByOrganizationID(id, 2, 3); Assert.That(ticketsRes.PageSize, Is.EqualTo(3)); Assert.That(ticketsRes.Tickets.Count, Is.EqualTo(3)); @@ -160,7 +157,7 @@ public void CanGetTicketsByOrganizationIdPaged() [Test] public void CanGetTicketsByViewIdPaged() { - var ticketsRes = api.Tickets.GetTicketsByViewID(Settings.ViewId, 10, 2); + var ticketsRes = Api.Tickets.GetTicketsByViewID(Settings.ViewId, 10, 2); Assert.That(ticketsRes.PageSize, Is.EqualTo(10)); Assert.That(ticketsRes.Tickets.Count, Is.EqualTo(10)); @@ -180,46 +177,16 @@ public void CanGetTicketsByViewIdPaged() public void CanGetTicketsByViewIdPagedWithSideLoad() { CanGetTicketsByViewIdPaged(); - var ticketsRes = api.Tickets.GetTicketsByViewID(Settings.ViewId, 10, 2, sideLoadOptions: ticketSideLoadOptions); + var ticketsRes = Api.Tickets.GetTicketsByViewID(Settings.ViewId, 10, 2, sideLoadOptions: ticketSideLoadOptions); Assert.That(ticketsRes.Users.Any(), Is.True); Assert.That(ticketsRes.Users.Any(), Is.True); } - [Test] - [Ignore("Issue Opened with Zendesk")] - public void CanTicketsByUserIdPaged() - { - var ticketsRes = api.Tickets.GetTicketsByUserID(Settings.UserId, 5, 2); - - Assert.That(ticketsRes.PageSize, Is.EqualTo(5)); - Assert.That(ticketsRes.Tickets.Count, Is.EqualTo(5)); - Assert.That(ticketsRes.Count, Is.GreaterThan(0)); - - var nextPage = ticketsRes.NextPage.GetQueryStringDict() - .Where(x => x.Key == "page") - .Select(x => x.Value) - .FirstOrDefault(); - - Assert.That(nextPage, Is.Not.Null); - - Assert.That(nextPage, Is.EqualTo("3")); - } - - [Test] - [Ignore("Issue Opened with Zendesk")] - public void CanTicketsByUserIdPagedWithSideLoad() - { - CanTicketsByUserIdPaged(); - var ticketsRes = api.Tickets.GetTicketsByUserID(Settings.UserId, 5, 2, sideLoadOptions: ticketSideLoadOptions); - Assert.That(ticketsRes.Users.Any(), Is.True); - Assert.That(ticketsRes.Organizations.Any(), Is.True); - } - [Test] public async Task CanTicketsByUserIdPagedAsyncWithSideLoad() { - var ticketsRes = await api.Tickets.GetTicketsByUserIDAsync(Settings.UserId, 50, 2, sideLoadOptions: ticketSideLoadOptions); + var ticketsRes = await Api.Tickets.GetTicketsByUserIDAsync(Admin.ID, 50, 2, sideLoadOptions: ticketSideLoadOptions); Assert.That(ticketsRes.Users.Any(), Is.True); Assert.That(ticketsRes.Organizations.Any(), Is.True); @@ -228,7 +195,7 @@ public async Task CanTicketsByUserIdPagedAsyncWithSideLoad() [Test] public void CanAssignedTicketsByUserIdPaged() { - var ticketsRes = api.Tickets.GetAssignedTicketsByUserID(Settings.UserId, 5, 2); + var ticketsRes = Api.Tickets.GetAssignedTicketsByUserID(Admin.ID, 5, 2); Assert.That(ticketsRes.PageSize, Is.EqualTo(5)); Assert.That(ticketsRes.Tickets.Count, Is.EqualTo(5)); @@ -244,20 +211,10 @@ public void CanAssignedTicketsByUserIdPaged() Assert.That(nextPage, Is.EqualTo("3")); } - [Test] - [Ignore("Issue Opened with Zendesk")] - public void CanAssignedTicketsByUserIdPagedWithSideLoad() - { - CanTicketsByUserIdPaged(); - var ticketsRes = api.Tickets.GetAssignedTicketsByUserID(Settings.UserId, 5, 2, sideLoadOptions: ticketSideLoadOptions); - Assert.That(ticketsRes.Users.Any(), Is.True); - Assert.That(ticketsRes.Organizations.Any(), Is.True); - } - [Test] public void CanAssignedTicketsByUserIdPagedAsyncWithSideLoad() { - var ticketsRes = api.Tickets.GetAssignedTicketsByUserIDAsync(Settings.UserId, 5, 2, sideLoadOptions: ticketSideLoadOptions); + var ticketsRes = Api.Tickets.GetAssignedTicketsByUserIDAsync(Admin.ID, 5, 2, sideLoadOptions: ticketSideLoadOptions); Assert.That(ticketsRes.Result.Users.Any(), Is.True); Assert.That(ticketsRes.Result.Organizations.Any(), Is.True); } @@ -266,7 +223,7 @@ public void CanAssignedTicketsByUserIdPagedAsyncWithSideLoad() public void CanGetMultipleTickets() { var ids = new List() { Settings.SampleTicketId, Settings.SampleTicketId2 }; - var tickets = api.Tickets.GetMultipleTickets(ids); + var tickets = Api.Tickets.GetMultipleTickets(ids); Assert.That(tickets, Is.Not.Null); Assert.That(ids.Count, Is.EqualTo(tickets.Count)); } @@ -275,7 +232,7 @@ public void CanGetMultipleTickets() public async Task CanGetMultipleTicketsAsync() { var ids = new List() { Settings.SampleTicketId, Settings.SampleTicketId2 }; - var tickets = await api.Tickets.GetMultipleTicketsAsync(ids); + var tickets = await Api.Tickets.GetMultipleTicketsAsync(ids); Assert.That(tickets, Is.Not.Null); Assert.That(ids.Count, Is.EqualTo(tickets.Count)); } @@ -284,7 +241,7 @@ public async Task CanGetMultipleTicketsAsync() public void CanGetMultipleTicketsWithSideLoad() { var ids = new List() { Settings.SampleTicketId, Settings.SampleTicketId2 }; - var tickets = api.Tickets.GetMultipleTickets(ids, sideLoadOptions: ticketSideLoadOptions); + var tickets = Api.Tickets.GetMultipleTickets(ids, sideLoadOptions: ticketSideLoadOptions); Assert.That(tickets, Is.Not.Null); Assert.That(ids.Count, Is.EqualTo(tickets.Count)); Assert.That(tickets.Users.Any(), Is.True); @@ -295,7 +252,7 @@ public void CanGetMultipleTicketsWithSideLoad() public async Task CanGetMultipleTicketsAsyncWithSideLoad() { var ids = new List() { Settings.SampleTicketId, Settings.SampleTicketId2 }; - var tickets = await api.Tickets.GetMultipleTicketsAsync(ids, sideLoadOptions: ticketSideLoadOptions); + var tickets = await Api.Tickets.GetMultipleTicketsAsync(ids, sideLoadOptions: ticketSideLoadOptions); Assert.That(tickets, Is.Not.Null); Assert.That(ids.Count, Is.EqualTo(tickets.Count)); Assert.That(tickets.Users.Any(), Is.True); @@ -306,7 +263,7 @@ public async Task CanGetMultipleTicketsAsyncWithSideLoad() public void CanGetMultipleTicketsSingleTicket() { var ids = new List() { Settings.SampleTicketId }; - var tickets = api.Tickets.GetMultipleTickets(ids); + var tickets = Api.Tickets.GetMultipleTickets(ids); Assert.That(tickets, Is.Not.Null); Assert.That(ids.Count, Is.EqualTo(tickets.Count)); } @@ -315,7 +272,7 @@ public void CanGetMultipleTicketsSingleTicket() public async Task CanGetMultipleTicketsAsyncSingleTicket() { var ids = new List() { Settings.SampleTicketId }; - var tickets = await api.Tickets.GetMultipleTicketsAsync(ids); + var tickets = await Api.Tickets.GetMultipleTicketsAsync(ids); Assert.That(tickets, Is.Not.Null); Assert.That(ids.Count, Is.EqualTo(tickets.Count)); } @@ -344,14 +301,14 @@ public void BooleanCustomFieldValuesArePreservedOnUpdate() } }; - var res = api.Tickets.CreateTicket(ticket).Ticket; + var res = Api.Tickets.CreateTicket(ticket).Ticket; Assert.That(res.CustomFields.Where(f => f.Id == Settings.CustomBoolFieldId).FirstOrDefault().Value, Is.EqualTo(ticket.CustomFields[1].Value)); - var updateResponse = api.Tickets.UpdateTicket(res, new Comment() { Body = "Just trying to update it!", Public = true }); + var updateResponse = Api.Tickets.UpdateTicket(res, new Comment() { Body = "Just trying to update it!", Public = true }); Assert.That(updateResponse.Ticket.CustomFields[1].Value, Is.EqualTo(ticket.CustomFields[1].Value)); - Assert.That(api.Tickets.Delete(res.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Id.Value), Is.True); } [Test] @@ -373,7 +330,7 @@ public void CanCreateUpdateAndDeleteTicket() } }; - var res = api.Tickets.CreateTicket(ticket).Ticket; + var res = Api.Tickets.CreateTicket(ticket).Ticket; Assert.That(res, Is.Not.Null); Assert.That(res.Id, Is.GreaterThan(0)); @@ -382,21 +339,20 @@ public void CanCreateUpdateAndDeleteTicket() Assert.That(res.CreatedAt - DateTimeOffset.UtcNow, Is.LessThanOrEqualTo(TimeSpan.FromMinutes(1.0))); res.Status = TicketStatus.Solved; - res.AssigneeId = Settings.UserId; + res.AssigneeId = Admin.ID; res.CollaboratorIds.Add(Settings.CollaboratorId); var body = "got it thanks"; res.CustomFields[0].Value = "updated"; - var updateResponse = api.Tickets.UpdateTicket(res, new Comment() { Body = body, Public = true, Uploads = new List() }); + var updateResponse = Api.Tickets.UpdateTicket(res, new Comment() { Body = body, Public = true, Uploads = new List() }); Assert.That(updateResponse, Is.Not.Null); - //Assert.AreEqual(updateResponse.Audit.Events.First().Body, body); Assert.That(updateResponse.Ticket.CollaboratorIds.Count, Is.GreaterThan(0)); Assert.That(updateResponse.Ticket.UpdatedAt, Is.GreaterThanOrEqualTo(updateResponse.Ticket.CreatedAt)); - Assert.That(api.Tickets.Delete(res.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Id.Value), Is.True); } [Test] @@ -418,7 +374,7 @@ public void CanCreateUpdateAndDeleteHTMLTicket() } }; - var res = api.Tickets.CreateTicket(ticket).Ticket; + var res = Api.Tickets.CreateTicket(ticket).Ticket; Assert.That(res, Is.Not.Null); Assert.That(res.Id, Is.GreaterThan(0)); @@ -427,41 +383,41 @@ public void CanCreateUpdateAndDeleteHTMLTicket() Assert.That(res.CreatedAt - DateTimeOffset.UtcNow, Is.LessThanOrEqualTo(TimeSpan.FromMinutes(1.0))); res.Status = TicketStatus.Solved; - res.AssigneeId = Settings.UserId; + res.AssigneeId = Admin.ID; res.CollaboratorIds.Add(Settings.CollaboratorId); var htmlBody = "HELP
HELP On a New line."; res.CustomFields[0].Value = "updated"; - var updateResponse = api.Tickets.UpdateTicket(res, new Comment() { HtmlBody = htmlBody, Public = true, Uploads = new List() }); + var updateResponse = Api.Tickets.UpdateTicket(res, new Comment() { HtmlBody = htmlBody, Public = true, Uploads = new List() }); Assert.That(updateResponse, Is.Not.Null); //Assert.AreEqual(updateResponse.Audit.Events.First().Body, body); Assert.That(updateResponse.Ticket.CollaboratorIds.Count, Is.GreaterThan(0)); Assert.That(updateResponse.Ticket.UpdatedAt, Is.GreaterThanOrEqualTo(updateResponse.Ticket.CreatedAt)); - Assert.That(api.Tickets.Delete(res.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Id.Value), Is.True); } [Test] public void CanGetTicketComments() { - var comments = api.Tickets.GetTicketComments(2); + var comments = Api.Tickets.GetTicketComments(2); Assert.That(comments.Comments[1].Body, Is.Not.Empty); } [Test] public void CanGetTicketHTMLComments() { - var comments = api.Tickets.GetTicketComments(2); + var comments = Api.Tickets.GetTicketComments(2); Assert.That(comments.Comments[1].HtmlBody, Is.Not.Empty); } [Test] public void CanGetTicketCommentsWithSideLoading() { - var comments = api.Tickets.GetTicketComments(2, sideLoadOptions: ticketSideLoadOptions); + var comments = Api.Tickets.GetTicketComments(2, sideLoadOptions: ticketSideLoadOptions); Assert.That(comments.Users, Is.Not.Empty); Assert.That(comments.Organizations, Is.Null); } @@ -471,7 +427,7 @@ public void CanGetTicketCommentsPaged() { const int perPage = 5; const int page = 2; - var commentsRes = api.Tickets.GetTicketComments(2, perPage, page); + var commentsRes = Api.Tickets.GetTicketComments(2, perPage, page); Assert.That(commentsRes.Comments.Count, Is.EqualTo(perPage)); Assert.That(commentsRes.PageSize, Is.EqualTo(perPage)); @@ -494,8 +450,8 @@ public void CanGetTicketCommentsPagedAndSorted() { const int perPage = 1; const int page = 1; - var commentsRes = api.Tickets.GetTicketComments(2, perPage, page); - var commentsRes2 = api.Tickets.GetTicketComments(2, false, perPage, page); + var commentsRes = Api.Tickets.GetTicketComments(2, perPage, page); + var commentsRes2 = Api.Tickets.GetTicketComments(2, false, perPage, page); Assert.That(commentsRes.Comments[0].CreatedAt, Is.EqualTo(new DateTimeOffset(2012, 10, 30, 13, 35, 11, TimeSpan.Zero))); Assert.That(commentsRes2.Comments[0].CreatedAt, Is.EqualTo(new DateTimeOffset(2014, 01, 24, 03, 29, 30, TimeSpan.Zero))); @@ -512,12 +468,12 @@ public void CanCreateTicketWithRequester() Requester = new Requester() { Email = Settings.ColloboratorEmail } }; - var res = api.Tickets.CreateTicket(ticket).Ticket; + var res = Api.Tickets.CreateTicket(ticket).Ticket; Assert.That(res, Is.Not.Null); Assert.That(res.RequesterId, Is.EqualTo(Settings.CollaboratorId)); - Assert.That(api.Tickets.Delete(res.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Id.Value), Is.True); } [Test] @@ -531,13 +487,13 @@ public async Task CanCreateTicketWithRequesterAsync() Requester = new Requester() { Email = Settings.ColloboratorEmail } }; - var res = await api.Tickets.CreateTicketAsync(ticket); + var res = await Api.Tickets.CreateTicketAsync(ticket); Assert.That(res, Is.Not.Null); Assert.That(res.Ticket, Is.Not.Null); Assert.That(res.Ticket.RequesterId, Is.EqualTo(Settings.CollaboratorId)); - Assert.That(api.Tickets.Delete(res.Ticket.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Ticket.Id.Value), Is.True); } [Test] @@ -555,12 +511,12 @@ public void CanCreateTicketWithDueDate() DueAt = dueAt }; - var res = api.Tickets.CreateTicket(ticket).Ticket; + var res = Api.Tickets.CreateTicket(ticket).Ticket; Assert.That(res, Is.Not.Null); Assert.That(res.DueAt, Is.EqualTo(dueAt)); - Assert.That(api.Tickets.Delete(res.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Id.Value), Is.True); } [Test] @@ -574,51 +530,51 @@ public void CanCreateTicketWithTicketFormId() TicketFormId = Settings.TicketFormId }; - var res = api.Tickets.CreateTicket(ticket).Ticket; + var res = Api.Tickets.CreateTicket(ticket).Ticket; Assert.That(res, Is.Not.Null); Assert.That(res.TicketFormId, Is.EqualTo(Settings.TicketFormId)); - Assert.That(api.Tickets.Delete(res.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(res.Id.Value), Is.True); } [Test] public void CanBulkUpdateTickets() { - var t1 = api.Tickets.CreateTicket(new Ticket() + var t1 = Api.Tickets.CreateTicket(new Ticket() { Subject = "testing bulk update", Comment = new Comment() { Body = "HELP" }, Priority = TicketPriorities.Normal }).Ticket; - var t2 = api.Tickets.CreateTicket(new Ticket() + var t2 = Api.Tickets.CreateTicket(new Ticket() { Subject = "more testing for bulk update", Comment = new Comment() { Body = "Bulk UpdateTicket testing" }, Priority = TicketPriorities.Normal }).Ticket; - var res = api.Tickets.BulkUpdate(new List() { t1.Id.Value, t2.Id.Value }, new BulkUpdate() + var res = Api.Tickets.BulkUpdate(new List() { t1.Id.Value, t2.Id.Value }, new BulkUpdate() { Status = TicketStatus.Solved, Comment = new Comment() { Public = true, Body = "check your email" }, CollaboratorEmails = new List() { Settings.ColloboratorEmail }, - AssigneeId = Settings.UserId + AssigneeId = Admin.ID }); Assert.That(res.JobStatus.Status, Is.EqualTo("queued")); //also test JobStatuses while we have a job here - var job = api.JobStatuses.GetJobStatus(res.JobStatus.Id); + var job = Api.JobStatuses.GetJobStatus(res.JobStatus.Id); Assert.That(res.JobStatus.Id, Is.EqualTo(job.JobStatus.Id)); - Assert.That(api.Tickets.DeleteMultiple(new List() { t1.Id.Value, t2.Id.Value }), Is.True); + Assert.That(Api.Tickets.DeleteMultiple(new List() { t1.Id.Value, t2.Id.Value }), Is.True); } [Test] public async Task CanAddAttachmentToTicketAsync() { - var res = await api.Attachments.UploadAttachmentAsync(new ZenFile() + var res = await Api.Attachments.UploadAttachmentAsync(new ZenFile() { ContentType = "text/plain", FileName = "testupload.txt", @@ -637,11 +593,11 @@ public async Task CanAddAttachmentToTicketAsync() }, }; - var t1 = await api.Tickets.CreateTicketAsync(ticket); + var t1 = await Api.Tickets.CreateTicketAsync(ticket); Assert.That(t1.Audit.Events.First().Attachments.Count, Is.EqualTo(1)); - Assert.That(await api.Tickets.DeleteAsync(t1.Ticket.Id.Value), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(t1.Ticket.Id.Value), Is.True); } [Test] @@ -649,7 +605,7 @@ public void CanAddAttachmentToTicket() { var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "testupload.txt"); - var res = api.Attachments.UploadAttachment(new ZenFile() + var res = Api.Attachments.UploadAttachment(new ZenFile() { ContentType = "text/plain", FileName = "testupload.txt", @@ -668,24 +624,24 @@ public void CanAddAttachmentToTicket() }, }; - var t1 = api.Tickets.CreateTicket(ticket); + var t1 = Api.Tickets.CreateTicket(ticket); Assert.That(t1.Audit.Events.First().Attachments.Count, Is.EqualTo(1)); - Assert.That(api.Tickets.Delete(t1.Ticket.Id.Value), Is.True); - Assert.That(api.Attachments.DeleteUpload(res)); + Assert.That(Api.Tickets.Delete(t1.Ticket.Id.Value), Is.True); + Assert.That(Api.Attachments.DeleteUpload(res)); } [Test] public void CanGetCollaborators() { - var res = api.Tickets.GetCollaborators(Settings.SampleTicketId3); + var res = Api.Tickets.GetCollaborators(Settings.SampleTicketId3); Assert.That(res.Users.Count, Is.GreaterThan(0)); } [Test] public void CanGetIncidents() { - var t1 = api.Tickets.CreateTicket(new Ticket() + var t1 = Api.Tickets.CreateTicket(new Ticket() { Subject = "test problem", Comment = new Comment() { Body = "testing incidents with problems" }, @@ -693,7 +649,7 @@ public void CanGetIncidents() Type = TicketTypes.Problem }).Ticket; - var t2 = api.Tickets.CreateTicket(new Ticket() + var t2 = Api.Tickets.CreateTicket(new Ticket() { Subject = "incident", Comment = new Comment() { Body = "testing incidents" }, @@ -702,16 +658,16 @@ public void CanGetIncidents() ProblemId = t1.Id }).Ticket; - var res = api.Tickets.GetIncidents(t1.Id.Value); + var res = Api.Tickets.GetIncidents(t1.Id.Value); Assert.That(res.Tickets.Count, Is.GreaterThan(0)); - Assert.That(api.Tickets.DeleteMultiple(new List() { t1.Id.Value, t2.Id.Value }), Is.True); + Assert.That(Api.Tickets.DeleteMultiple(new List() { t1.Id.Value, t2.Id.Value }), Is.True); } [Test] public void CanGetProblems() { - var t1 = api.Tickets.CreateTicket(new Ticket() + var t1 = Api.Tickets.CreateTicket(new Ticket() { Subject = "test problem", Comment = new Comment() { Body = "testing incidents with problems" }, @@ -719,10 +675,10 @@ public void CanGetProblems() Type = TicketTypes.Problem }).Ticket; - var res = api.Tickets.GetProblems(); + var res = Api.Tickets.GetProblems(); Assert.That(res.Tickets.Count, Is.GreaterThan(0)); - Assert.That(api.Tickets.Delete(t1.Id.Value), Is.True); + Assert.That(Api.Tickets.Delete(t1.Id.Value), Is.True); } //[Test] @@ -731,7 +687,7 @@ public void CanGetProblems() // Thread.Sleep(60000); // const int maxTicketsPerPage = 1000; - // var res = api.Tickets.GetIncrementalTicketExport(DateTime.Now.AddDays(-365)); + // var res = Api.Tickets.GetIncrementalTicketExport(DateTime.Now.AddDays(-365)); // Assert.AreEqual(maxTicketsPerPage, res.Tickets.Count); // Assert.That(res.NextPage, Is.Not.Null.Or.Empty); @@ -743,13 +699,13 @@ public void CanGetProblems() // Thread.Sleep(60000); // const int maxTicketsPerPage = 1000; - // GroupTicketExportResponse res = api.Tickets.GetIncrementalTicketExport(DateTime.Now.AddDays(-365), TicketSideLoadOptionsEnum.Users); + // GroupTicketExportResponse res = Api.Tickets.GetIncrementalTicketExport(DateTime.Now.AddDays(-365), TicketSideLoadOptionsEnum.Users); // Assert.AreEqual(maxTicketsPerPage, res.Tickets.Count); // Assert.IsTrue(res.Users.Count > 0); // Assert.That(res.NextPage, Is.Not.Null.Or.Empty); - // res = api.Tickets.GetIncrementalTicketExportNextPage(res.NextPage); + // res = Api.Tickets.GetIncrementalTicketExportNextPage(res.NextPage); // Assert.IsTrue(res.Tickets.Count > 0); // Assert.IsTrue(res.Users.Count > 0); @@ -762,13 +718,13 @@ public void CanGetProblems() // const int maxTicketsPerPage = 1000; - // var res = api.Tickets.GetIncrementalTicketExport(DateTime.Now.AddDays(-700), TicketSideLoadOptionsEnum.Groups); + // var res = Api.Tickets.GetIncrementalTicketExport(DateTime.Now.AddDays(-700), TicketSideLoadOptionsEnum.Groups); // Assert.AreEqual(maxTicketsPerPage, res.Tickets.Count); // Assert.IsTrue(res.Groups.Count > 0); // Assert.That(res.NextPage, Is.Not.Null.Or.Empty); - // res = api.Tickets.GetIncrementalTicketExportNextPage(res.NextPage); + // res = Api.Tickets.GetIncrementalTicketExportNextPage(res.NextPage); // Assert.IsTrue(res.Tickets.Count > 0); // Assert.IsTrue(res.Groups.Count > 0); @@ -778,7 +734,7 @@ public void CanGetProblems() //public async Task CanGetIncrementalTicketExportAsyncWithSideLoadOptions() //{ // await Task.Delay(60000); - // var res = await api.Tickets.GetIncrementalTicketExportAsync(DateTime.Now.AddDays(-31), TicketSideLoadOptionsEnum.Users); + // var res = await Api.Tickets.GetIncrementalTicketExportAsync(DateTime.Now.AddDays(-31), TicketSideLoadOptionsEnum.Users); // Assert.That(res.Count, Is.GreaterThan(0)); // Assert.That(res.Users, Is.Not.Null); @@ -787,7 +743,7 @@ public void CanGetProblems() [Test] public void CanGetTicketFields() { - var res = api.Tickets.GetTicketFields(); + var res = Api.Tickets.GetTicketFields(); Assert.That(res.TicketFields.Count, Is.GreaterThan(0)); } @@ -795,7 +751,7 @@ public void CanGetTicketFields() public void CanGetTicketFieldById() { var id = Settings.CustomFieldId; - var ticketField = api.Tickets.GetTicketFieldById(id).TicketField; + var ticketField = Api.Tickets.GetTicketFieldById(id).TicketField; Assert.That(ticketField, Is.Not.Null); Assert.That(id, Is.EqualTo(ticketField.Id)); } @@ -804,7 +760,7 @@ public void CanGetTicketFieldById() public void CanGetTicketFieldByIdAsync() { var id = Settings.CustomFieldId; - var ticketField = api.Tickets.GetTicketFieldByIdAsync(id).Result.TicketField; + var ticketField = Api.Tickets.GetTicketFieldByIdAsync(id).Result.TicketField; Assert.That(ticketField, Is.Not.Null); Assert.That(id, Is.EqualTo(ticketField.Id)); } @@ -818,16 +774,16 @@ public void CanCreateUpdateAndDeleteTicketFields() Title = "MyField", }; - var res = api.Tickets.CreateTicketField(tField); + var res = Api.Tickets.CreateTicketField(tField); Assert.That(res.TicketField, Is.Not.Null); var updatedTF = res.TicketField; updatedTF.Title = "My Custom Field"; - var updatedRes = api.Tickets.UpdateTicketField(updatedTF); + var updatedRes = Api.Tickets.UpdateTicketField(updatedTF); Assert.That(updatedTF.Title, Is.EqualTo(updatedRes.TicketField.Title)); - Assert.That(api.Tickets.DeleteTicketField(updatedTF.Id.Value), Is.True); + Assert.That(Api.Tickets.DeleteTicketField(updatedTF.Id.Value), Is.True); } [TestCase(true, "test entry", "test_entry")] @@ -849,11 +805,11 @@ public void CanCreateAndDeleteTaggerTicketField(bool replaceNameSpaceWithUndersc Value = "test value" }); - var res = api.Tickets.CreateTicketField(tField, replaceNameSpaceWithUnderscore); + var res = Api.Tickets.CreateTicketField(tField, replaceNameSpaceWithUnderscore); Assert.That(res.TicketField, Is.Not.Null); Assert.That(expectedName, Is.EqualTo(res.TicketField.CustomFieldOptions[0].Name)); - Assert.That(api.Tickets.DeleteTicketField(res.TicketField.Id.Value), Is.True); + Assert.That(Api.Tickets.DeleteTicketField(res.TicketField.Id.Value), Is.True); } [TestCase(true, "test entryA", "test entryA newTitle", "test entryB", "test entryC", "test_entryA", "test_entryA_newTitle", "test_entryB", "test_entryC")] @@ -889,7 +845,7 @@ public void CanCreateAndDeleteTaggerTicketField(bool replaceNameSpaceWithUndersc Value = option2 }); - var res = api.Tickets.CreateTicketField(tField, replaceNameSpaceWithUnderscore); + var res = Api.Tickets.CreateTicketField(tField, replaceNameSpaceWithUnderscore); Assert.That(res.TicketField, Is.Not.Null); Assert.That(res.TicketField.Id, Is.Not.Null); Assert.That(res.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); @@ -920,7 +876,7 @@ public void CanCreateAndDeleteTaggerTicketField(bool replaceNameSpaceWithUndersc Value = option3 }); - var resU = api.Tickets.UpdateTicketField(tFieldU, replaceNameSpaceWithUnderscore); + var resU = Api.Tickets.UpdateTicketField(tFieldU, replaceNameSpaceWithUnderscore); Assert.That(resU.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); Assert.That(resU.TicketField.CustomFieldOptions[0].Value, Is.EqualTo(option1_Update.Replace(" ", "_"))); @@ -928,31 +884,31 @@ public void CanCreateAndDeleteTaggerTicketField(bool replaceNameSpaceWithUndersc Assert.That(resU.TicketField.CustomFieldOptions[0].Name, Is.EqualTo(expectedName1_Update)); Assert.That(resU.TicketField.CustomFieldOptions[1].Name, Is.EqualTo(expectedName3)); - Assert.That(api.Tickets.DeleteTicketField(id), Is.True); + Assert.That(Api.Tickets.DeleteTicketField(id), Is.True); } [Test] [Ignore("This test requires an email be sent. A this time that is not automated.")] public void CanGetSuspendedTickets() { - var all = api.Tickets.GetSuspendedTickets(); + var all = Api.Tickets.GetSuspendedTickets(); Assert.That(all.Count, Is.GreaterThan(0)); - var ind = api.Tickets.GetSuspendedTicketById(all.SuspendedTickets[0].Id); + var ind = Api.Tickets.GetSuspendedTicketById(all.SuspendedTickets[0].Id); Assert.That(all.SuspendedTickets[0].Id, Is.EqualTo(ind.SuspendedTicket.Id)); } [Test] public void CanGetTicketForms() { - var res = api.Tickets.GetTicketForms(); + var res = Api.Tickets.GetTicketForms(); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanCreateUpdateAndDeleteTicketForms() { - var res = api.Tickets.CreateTicketForm(new TicketForm() + var res = Api.Tickets.CreateTicketForm(new TicketForm() { Name = "Snowboard Problem", EndUserVisible = true, @@ -965,33 +921,33 @@ public void CanCreateUpdateAndDeleteTicketForms() Assert.That(res, Is.Not.Null); Assert.That(res.TicketForm.Id, Is.GreaterThan(0)); - var get = api.Tickets.GetTicketFormById(res.TicketForm.Id.Value); + var get = Api.Tickets.GetTicketFormById(res.TicketForm.Id.Value); Assert.That(res.TicketForm.Id, Is.EqualTo(get.TicketForm.Id)); res.TicketForm.Name = "Snowboard Fixed"; res.TicketForm.DisplayName = "Snowboard has been fixed"; res.TicketForm.Active = false; - var update = api.Tickets.UpdateTicketForm(res.TicketForm); + var update = Api.Tickets.UpdateTicketForm(res.TicketForm); Assert.That(res.TicketForm.Name, Is.EqualTo(update.TicketForm.Name)); - Assert.That(api.Tickets.DeleteTicketForm(res.TicketForm.Id.Value), Is.True); + Assert.That(Api.Tickets.DeleteTicketForm(res.TicketForm.Id.Value), Is.True); } [Test] public void CanGetAllTicketMetrics() { - var metrics = api.Tickets.GetAllTicketMetrics(); + var metrics = Api.Tickets.GetAllTicketMetrics(); Assert.That(metrics.Count, Is.GreaterThan(0)); var count = 50; - var nextPage = api.Tickets.GetByPageUrl(metrics.NextPage, count); + var nextPage = Api.Tickets.GetByPageUrl(metrics.NextPage, count); Assert.That(count, Is.EqualTo(nextPage.TicketMetrics.Count)); } [Test] public void CanGetTicketMetricsAsync() { - var tickets = api.Tickets.GetAllTicketMetricsAsync(); + var tickets = Api.Tickets.GetAllTicketMetricsAsync(); Assert.That(tickets.Result.Count, Is.GreaterThan(0)); } @@ -999,7 +955,7 @@ public void CanGetTicketMetricsAsync() public void CanGetTicketMetricByTicketId() { var id = Settings.SampleTicketId; - var metric = api.Tickets.GetTicketMetricsForTicket(id).TicketMetric; + var metric = Api.Tickets.GetTicketMetricsForTicket(id).TicketMetric; Assert.That(metric, Is.Not.Null); Assert.That(id, Is.EqualTo(metric.TicketId)); } @@ -1008,7 +964,7 @@ public void CanGetTicketMetricByTicketId() public void CanGetTicketMetricByTicketIdAsync() { var id = Settings.SampleTicketId; - var metric = api.Tickets.GetTicketMetricsForTicketAsync(id).Result.TicketMetric; + var metric = Api.Tickets.GetTicketMetricsForTicketAsync(id).Result.TicketMetric; Assert.That(metric, Is.Not.Null); Assert.That(id, Is.EqualTo(metric.TicketId)); } @@ -1017,7 +973,7 @@ public void CanGetTicketMetricByTicketIdAsync() public void CanGetAllTicketsWithSideLoad() { var tickets = - api.Tickets.GetAllTickets(sideLoadOptions: ticketSideLoadOptions); + Api.Tickets.GetAllTickets(sideLoadOptions: ticketSideLoadOptions); Assert.That(tickets.Users.Any(), Is.True); Assert.That(tickets.Organizations.Any(), Is.True); @@ -1027,7 +983,7 @@ public void CanGetAllTicketsWithSideLoad() public void CanGetAllTicketsAsyncWithSideLoad() { var tickets = - api.Tickets.GetAllTicketsAsync(sideLoadOptions: ticketSideLoadOptions); + Api.Tickets.GetAllTicketsAsync(sideLoadOptions: ticketSideLoadOptions); Assert.That(tickets.Result.Users.Any(), Is.True); Assert.That(tickets.Result.Organizations.Any(), Is.True); @@ -1037,8 +993,8 @@ public void CanGetAllTicketsAsyncWithSideLoad() [Test] public void CanGetTicketsByOrganizationIDAsyncWithSideLoad() { - var id = Settings.OrganizationId; - var tickets = api.Tickets.GetTicketsByOrganizationIDAsync(id, sideLoadOptions: ticketSideLoadOptions); + var id = Organization.ID; + var tickets = Api.Tickets.GetTicketsByOrganizationIDAsync(id, sideLoadOptions: ticketSideLoadOptions); Assert.That(tickets.Result.Count, Is.GreaterThan(0)); Assert.That(tickets.Result.Users.Any(), Is.True); Assert.That(tickets.Result.Organizations.Any(), Is.True); @@ -1047,8 +1003,8 @@ public void CanGetTicketsByOrganizationIDAsyncWithSideLoad() [Test] public void CanCanGetTicketsByOrganizationIDWithSideLoad() { - var id = Settings.OrganizationId; - var tickets = api.Tickets.GetTicketsByOrganizationID(id, sideLoadOptions: ticketSideLoadOptions); + var id = Organization.ID; + var tickets = Api.Tickets.GetTicketsByOrganizationID(id, sideLoadOptions: ticketSideLoadOptions); Assert.That(tickets.Count, Is.GreaterThan(0)); Assert.That(tickets.Users.Any(), Is.True); Assert.That(tickets.Organizations.Any(), Is.True); @@ -1060,17 +1016,17 @@ public void CanImportTicket() var ticket = new TicketImport() { Subject = "my printer is on fire", - Comments = new List { new TicketImportComment { AuthorId = Settings.UserId, Value = "HELP comment created in Import 1", Public = false, CreatedAt = DateTime.UtcNow.AddDays(-2) }, new TicketImportComment { AuthorId = Settings.UserId, Value = "HELP comment created in Import 2", Public = false, CreatedAt = DateTime.UtcNow.AddDays(-3) } }, + Comments = new List { new TicketImportComment { AuthorId = Admin.ID, Value = "HELP comment created in Import 1", Public = false, CreatedAt = DateTime.UtcNow.AddDays(-2) }, new TicketImportComment { AuthorId = Admin.ID, Value = "HELP comment created in Import 2", Public = false, CreatedAt = DateTime.UtcNow.AddDays(-3) } }, Priority = TicketPriorities.Urgent, CreatedAt = DateTime.Now.AddDays(-5), UpdatedAt = DateTime.Now.AddDays(-4), SolvedAt = DateTime.Now.AddDays(-3), Status = TicketStatus.Solved, - AssigneeId = Settings.UserId, + AssigneeId = Admin.ID, Description = "test description" }; - var res = api.Tickets.ImportTicket(ticket).Ticket; + var res = Api.Tickets.ImportTicket(ticket).Ticket; Assert.That(res, Is.Not.Null); Assert.That(res.Id.HasValue, Is.True); @@ -1080,11 +1036,11 @@ public void CanImportTicket() Assert.That(res.Status, Is.EqualTo(TicketStatus.Solved)); Assert.That(res.Description, Is.EqualTo("test description")); - var resComments = api.Tickets.GetTicketComments(res.Id.Value); + var resComments = Api.Tickets.GetTicketComments(res.Id.Value); Assert.That(resComments, Is.Not.Null); Assert.That(resComments.Count, Is.EqualTo(3)); - api.Tickets.DeleteAsync(res.Id.Value); + Api.Tickets.DeleteAsync(res.Id.Value); } [Test] @@ -1093,17 +1049,17 @@ public void CanImportTicketAsync() var ticket = new TicketImport() { Subject = "my printer is on fire", - Comments = new List { new TicketImportComment { AuthorId = Settings.UserId, Value = "HELP comment created in Import 1", Public = false, CreatedAt = DateTime.UtcNow.AddDays(-2) }, new TicketImportComment { AuthorId = Settings.UserId, Value = "HELP comment created in Import 2", Public = false, CreatedAt = DateTime.UtcNow.AddDays(-3) } }, + Comments = new List { new TicketImportComment { AuthorId = Admin.ID, Value = "HELP comment created in Import 1", Public = false, CreatedAt = DateTime.UtcNow.AddDays(-2) }, new TicketImportComment { AuthorId = Admin.ID, Value = "HELP comment created in Import 2", Public = false, CreatedAt = DateTime.UtcNow.AddDays(-3) } }, Priority = TicketPriorities.Urgent, CreatedAt = DateTime.Now.AddDays(-5), UpdatedAt = DateTime.Now.AddDays(-4), SolvedAt = DateTime.Now.AddDays(-3), Status = TicketStatus.Solved, - AssigneeId = Settings.UserId, + AssigneeId = Admin.ID, Description = "test description" }; - var res = api.Tickets.ImportTicketAsync(ticket); + var res = Api.Tickets.ImportTicketAsync(ticket); Assert.That(res.Result, Is.Not.Null); Assert.That(res.Result.Ticket.Id.Value, Is.GreaterThan(0)); @@ -1112,11 +1068,11 @@ public void CanImportTicketAsync() Assert.That(res.Result.Ticket.Status, Is.EqualTo(TicketStatus.Solved)); Assert.That(res.Result.Ticket.Description, Is.EqualTo("test description")); - var resComments = api.Tickets.GetTicketComments(res.Result.Ticket.Id.Value); + var resComments = Api.Tickets.GetTicketComments(res.Result.Ticket.Id.Value); Assert.That(resComments, Is.Not.Null); Assert.That(resComments.Count, Is.EqualTo(3)); - api.Tickets.DeleteAsync(res.Id); + Api.Tickets.DeleteAsync(res.Id); } [Test] @@ -1133,7 +1089,7 @@ public void CanMergeTickets() var sourceTicket2 = new Ticket { Subject = "Source Ticket 2", - Comment = new Comment { Body = sourceDescription[1], Public=true, } + Comment = new Comment { Body = sourceDescription[1], Public = true, } }; var targetTicket = new Ticket { @@ -1143,21 +1099,21 @@ public void CanMergeTickets() var mergeIds = new List(); - var tick = api.Tickets.CreateTicket(sourceTicket1); + var tick = Api.Tickets.CreateTicket(sourceTicket1); mergeIds.Add(tick.Ticket.Id.Value); - tick = api.Tickets.CreateTicket(sourceTicket2); + tick = Api.Tickets.CreateTicket(sourceTicket2); mergeIds.Add(tick.Ticket.Id.Value); - tick = api.Tickets.CreateTicket(targetTicket); + tick = Api.Tickets.CreateTicket(targetTicket); var targetTicketId = tick.Ticket.Id.Value; var targetMergeComment = $"Merged with ticket(s) {string.Join(", ", mergeIds.Select(m => $"#{m}").ToArray())}"; var sourceMergeComment = $"Closing in favor of #{targetTicketId}"; - var res = api.Tickets.MergeTickets( - targetTicketId, - mergeIds, - targetMergeComment, + var res = Api.Tickets.MergeTickets( + targetTicketId, + mergeIds, + targetMergeComment, sourceMergeComment, true, true); @@ -1167,7 +1123,7 @@ public void CanMergeTickets() do { Thread.Sleep(5000); - var job = api.JobStatuses.GetJobStatus(res.JobStatus.Id); + var job = Api.JobStatuses.GetJobStatus(res.JobStatus.Id); Assert.That(job.JobStatus.Id, Is.EqualTo(res.JobStatus.Id)); if (job.JobStatus.Status == "completed") break; @@ -1176,28 +1132,28 @@ public void CanMergeTickets() var counter = 0; foreach (var id in mergeIds) { - var oldTicket = api.Tickets.GetTicket(id); + var oldTicket = Api.Tickets.GetTicket(id); Assert.That(oldTicket.Ticket.Id.Value, Is.EqualTo(id)); Assert.That(oldTicket.Ticket.Status, Is.EqualTo("closed")); - var oldComments = api.Tickets.GetTicketComments(id); + var oldComments = Api.Tickets.GetTicketComments(id); Assert.That(oldComments.Comments.Count, Is.EqualTo(2)); Assert.That(oldComments.Comments[0].Body, Is.EqualTo(sourceDescription[counter])); Assert.That(oldComments.Comments[1].Body, Is.EqualTo(sourceMergeComment)); - api.Tickets.DeleteAsync(id); + Api.Tickets.DeleteAsync(id); counter++; } - var ticket = api.Tickets.GetTicket(targetTicketId); + var ticket = Api.Tickets.GetTicket(targetTicketId); Assert.That(ticket.Ticket.Id.Value, Is.EqualTo(targetTicketId)); - var comments = api.Tickets.GetTicketComments(targetTicketId); + var comments = Api.Tickets.GetTicketComments(targetTicketId); Assert.That(comments.Comments.Count, Is.EqualTo(2)); Assert.That(comments.Comments[0].Body, Is.EqualTo(targetDescription)); Assert.That(comments.Comments[1].Body, Is.EqualTo(targetMergeComment)); - api.Tickets.DeleteAsync(targetTicketId); + Api.Tickets.DeleteAsync(targetTicketId); } [Test] @@ -1224,18 +1180,18 @@ public async Task CanMergeTicketsAsync() var mergeIds = new List(); - var tick = await api.Tickets.CreateTicketAsync(sourceTicket1); + var tick = await Api.Tickets.CreateTicketAsync(sourceTicket1); mergeIds.Add(tick.Ticket.Id.Value); - tick = await api.Tickets.CreateTicketAsync(sourceTicket2); + tick = await Api.Tickets.CreateTicketAsync(sourceTicket2); mergeIds.Add(tick.Ticket.Id.Value); - tick = await api.Tickets.CreateTicketAsync(targetTicket); + tick = await Api.Tickets.CreateTicketAsync(targetTicket); var targetTicketId = tick.Ticket.Id.Value; var targetMergeComment = $"Merged with ticket(s) {string.Join(", ", mergeIds.Select(m => $"#{m}").ToArray())}"; var sourceMergeComment = $"Closing in favor of #{targetTicketId}"; - var res = await api.Tickets.MergeTicketsAsync( + var res = await Api.Tickets.MergeTicketsAsync( targetTicketId, mergeIds, targetMergeComment, @@ -1246,7 +1202,7 @@ public async Task CanMergeTicketsAsync() do { await Task.Delay(5000); - var job = await api.JobStatuses.GetJobStatusAsync(res.JobStatus.Id); + var job = await Api.JobStatuses.GetJobStatusAsync(res.JobStatus.Id); Assert.That(job.JobStatus.Id, Is.EqualTo(res.JobStatus.Id)); if (job.JobStatus.Status == "completed") break; @@ -1255,28 +1211,28 @@ public async Task CanMergeTicketsAsync() var counter = 0; foreach (var id in mergeIds) { - var oldTicket = await api.Tickets.GetTicketAsync(id); + var oldTicket = await Api.Tickets.GetTicketAsync(id); Assert.That(oldTicket.Ticket.Id.Value, Is.EqualTo(id)); Assert.That(oldTicket.Ticket.Status, Is.EqualTo("closed")); - var oldComments = await api.Tickets.GetTicketCommentsAsync(id); + var oldComments = await Api.Tickets.GetTicketCommentsAsync(id); Assert.That(oldComments.Comments.Count, Is.EqualTo(2)); Assert.That(oldComments.Comments[0].Body, Is.EqualTo(sourceDescription[counter])); Assert.That(oldComments.Comments[1].Body, Is.EqualTo(sourceMergeComment)); - await api.Tickets.DeleteAsync(id); + await Api.Tickets.DeleteAsync(id); counter++; } - var ticket = await api.Tickets.GetTicketAsync(targetTicketId); + var ticket = await Api.Tickets.GetTicketAsync(targetTicketId); Assert.That(ticket.Ticket.Id.Value, Is.EqualTo(targetTicketId)); - var comments = await api.Tickets.GetTicketCommentsAsync(targetTicketId); + var comments = await Api.Tickets.GetTicketCommentsAsync(targetTicketId); Assert.That(comments.Comments.Count, Is.EqualTo(2)); Assert.That(comments.Comments[0].Body, Is.EqualTo(targetDescription)); Assert.That(comments.Comments[1].Body, Is.EqualTo(targetMergeComment)); - await api.Tickets.DeleteAsync(targetTicketId); + await Api.Tickets.DeleteAsync(targetTicketId); } [Test] @@ -1289,30 +1245,30 @@ public void CanBulkImportTicket() var ticket = new TicketImport() { Subject = "my printer is on fire", - Comments = new List { 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 } }, + Comments = new List { new TicketImportComment { AuthorId = Admin.ID, Value = "HELP comment created in Import 1", CreatedAt = DateTime.UtcNow.AddDays(-2), Public = false }, new TicketImportComment { AuthorId = Admin.ID, 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, + AssigneeId = Admin.ID, Description = "test description" }; test.Add(ticket); } - var res = api.Tickets.BulkImportTickets(test); + var res = Api.Tickets.BulkImportTickets(test); Assert.That(res.JobStatus.Status, Is.EqualTo("queued")); - var job = api.JobStatuses.GetJobStatus(res.JobStatus.Id); + var job = Api.JobStatuses.GetJobStatus(res.JobStatus.Id); Assert.That(res.JobStatus.Id, Is.EqualTo(job.JobStatus.Id)); var count = 0; while (job.JobStatus.Status.ToLower() != "completed" && count < 10) { Thread.Sleep(1000); - job = api.JobStatuses.GetJobStatus(res.JobStatus.Id); + job = Api.JobStatuses.GetJobStatus(res.JobStatus.Id); count++; } @@ -1320,9 +1276,9 @@ public void CanBulkImportTicket() foreach (var r in job.JobStatus.Results) { - var ticket = api.Tickets.GetTicket(r.Id).Ticket; + var ticket = Api.Tickets.GetTicket(r.Id).Ticket; Assert.That(ticket.Description, Is.EqualTo("test description")); - var resComments = api.Tickets.GetTicketComments(r.Id); + var resComments = Api.Tickets.GetTicketComments(r.Id); Assert.That(resComments, Is.Not.Null); Assert.That(resComments.Count, Is.EqualTo(3)); foreach (var c in resComments.Comments) @@ -1331,7 +1287,7 @@ public void CanBulkImportTicket() Assert.That(c.CreatedAt.Value.LocalDateTime, Is.LessThan(DateTime.Now.AddDays(-1))); } - api.Tickets.DeleteAsync(r.Id); + Api.Tickets.DeleteAsync(r.Id); } } @@ -1377,23 +1333,23 @@ public async Task ViaChannel_Set_To_API_Issue_254() } }; - var resp = await api.Tickets.CreateTicketAsync(ticket); + var resp = await Api.Tickets.CreateTicketAsync(ticket); var newTicket = resp.Ticket; Assert.That(newTicket.Via.Channel, Is.EqualTo("api")); var comment = new Comment { Body = secondCommentBody, Public = true }; - var resp2 = await api.Tickets.UpdateTicketAsync(newTicket, comment); - var resp3 = await api.Tickets.GetTicketCommentsAsync(newTicket.Id.Value); - var resp4 = await api.Tickets.GetTicketCommentsAsync(newTicket.Id.Value, false); + var resp2 = await Api.Tickets.UpdateTicketAsync(newTicket, comment); + var resp3 = await Api.Tickets.GetTicketCommentsAsync(newTicket.Id.Value); + var resp4 = await Api.Tickets.GetTicketCommentsAsync(newTicket.Id.Value, false); Assert.That(resp3.Comments.Any(c => c.Via?.Channel != "api"), Is.False); Assert.That(resp3.Comments[0].Body, Is.EqualTo(initCommentBody)); Assert.That(resp4.Comments[0].Body, Is.EqualTo(secondCommentBody)); // clean up - await api.Tickets.DeleteAsync(newTicket.Id.Value); + await Api.Tickets.DeleteAsync(newTicket.Id.Value); } [Test] @@ -1420,7 +1376,7 @@ public async Task TicketField() } }; - var res = await api.Tickets.CreateTicketFieldAsync(tField); + var res = await Api.Tickets.CreateTicketFieldAsync(tField); Assert.That(res.TicketField, Is.Not.Null); Assert.That(res.TicketField.Id, Is.Not.Null); Assert.That(res.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); @@ -1455,7 +1411,7 @@ public async Task CanCreateUpdateOptionsAndDeleteTaggerTicketFieldAsync() Value = option2 }); - var res = await api.Tickets.CreateTicketFieldAsync(tField); + var res = await Api.Tickets.CreateTicketFieldAsync(tField); Assert.That(res.TicketField, Is.Not.Null); Assert.That(res.TicketField.Id, Is.Not.Null); Assert.That(res.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); @@ -1484,27 +1440,27 @@ public async Task CanCreateUpdateOptionsAndDeleteTaggerTicketFieldAsync() Value = option3 }); - var resU = await api.Tickets.UpdateTicketFieldAsync(tFieldU); + var resU = await Api.Tickets.UpdateTicketFieldAsync(tFieldU); Assert.That(resU.TicketField.CustomFieldOptions.Count, Is.EqualTo(2)); Assert.That(resU.TicketField.CustomFieldOptions[0].Value, Is.EqualTo(option1_Update)); Assert.That(resU.TicketField.CustomFieldOptions[1].Value, Is.Not.EqualTo(option2)); - Assert.That(await api.Tickets.DeleteTicketFieldAsync(id), Is.True); + Assert.That(await Api.Tickets.DeleteTicketFieldAsync(id), Is.True); } [Test] public async Task CanGetBrandId() { - var respBrand = api.Brands.GetBrands(); + var respBrand = Api.Brands.GetBrands(); var brand = respBrand.Brands[0]; var ticket = new Ticket { Comment = new Comment { Body = "This is a Brand id Test", Public = false }, BrandId = brand.Id }; - var respTicket = await api.Tickets.CreateTicketAsync(ticket); + var respTicket = await Api.Tickets.CreateTicketAsync(ticket); Assert.That(respTicket.Ticket.BrandId, Is.EqualTo(brand.Id)); // clean up - Assert.That(await api.Tickets.DeleteAsync(respTicket.Ticket.Id.Value), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(respTicket.Ticket.Id.Value), Is.True); } [Test] @@ -1517,22 +1473,22 @@ public async Task CanGetIsPublicAsync() Priority = TicketPriorities.Urgent }; - var resp1 = await api.Tickets.CreateTicketAsync(ticket); + var resp1 = await Api.Tickets.CreateTicketAsync(ticket); Assert.That(resp1.Ticket.IsPublic, Is.True); ticket.Comment.Public = false; - var resp2 = await api.Tickets.CreateTicketAsync(ticket); + var resp2 = await Api.Tickets.CreateTicketAsync(ticket); Assert.That(resp2.Ticket.IsPublic, Is.False); - Assert.That(await api.Tickets.DeleteAsync(resp1.Ticket.Id.Value), Is.True); - Assert.That(await api.Tickets.DeleteAsync(resp2.Ticket.Id.Value), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(resp1.Ticket.Id.Value), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(resp2.Ticket.Id.Value), Is.True); } [Test] public async Task CanGetSystemFieldOptions() { - var resp = await api.Tickets.GetTicketFieldByIdAsync(21830872); + var resp = await Api.Tickets.GetTicketFieldByIdAsync(21830872); Assert.That(resp.TicketField.SystemFieldOptions, Is.Not.Null); } @@ -1542,13 +1498,13 @@ public async Task CanSetFollowupID() { var ticket = new Ticket { Comment = new Comment { Body = "This is a Test", Public = false } }; - var resp1 = await api.Tickets.CreateTicketAsync(ticket); + var resp1 = await Api.Tickets.CreateTicketAsync(ticket); var closedTicket = resp1.Ticket; closedTicket.Status = TicketStatus.Closed; - await api.Tickets.UpdateTicketAsync(closedTicket, new Comment { Body = "Closing Ticket" }); + await Api.Tickets.UpdateTicketAsync(closedTicket, new Comment { Body = "Closing Ticket" }); var ticket_Followup = new Ticket() { @@ -1558,12 +1514,12 @@ public async Task CanSetFollowupID() ViaFollowupSourceId = closedTicket.Id.Value }; - var resp3 = await api.Tickets.CreateTicketAsync(ticket_Followup); + var resp3 = await Api.Tickets.CreateTicketAsync(ticket_Followup); Assert.That(resp3.Ticket.Via.Source.Rel, Is.EqualTo("follow_up")); - Assert.That(await api.Tickets.DeleteAsync(resp3.Ticket.Id.Value), Is.True); - Assert.That(await api.Tickets.DeleteAsync(closedTicket.Id.Value), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(resp3.Ticket.Id.Value), Is.True); + Assert.That(await Api.Tickets.DeleteAsync(closedTicket.Id.Value), Is.True); } [Test] @@ -1576,17 +1532,17 @@ public void CanCreateManyTickets() new Ticket{ Subject ="ticket Test number 2", Comment = new Comment{ Body = comment }, Priority = TicketPriorities.Normal } }; - var res = api.Tickets.CreateManyTickets(tickets); + var res = Api.Tickets.CreateManyTickets(tickets); Assert.That(res.JobStatus.Status, Is.EqualTo("queued")); - var job = api.JobStatuses.GetJobStatus(res.JobStatus.Id); + var job = Api.JobStatuses.GetJobStatus(res.JobStatus.Id); Assert.That(job.JobStatus.Id, Is.EqualTo(res.JobStatus.Id)); var count = 0; while (job.JobStatus.Status.ToLower() != "completed" && count < 10) { Thread.Sleep(1000); - job = api.JobStatuses.GetJobStatus(res.JobStatus.Id); + job = Api.JobStatuses.GetJobStatus(res.JobStatus.Id); count++; } @@ -1594,9 +1550,9 @@ public void CanCreateManyTickets() foreach (var r in job.JobStatus.Results) { - var ticket = api.Tickets.GetTicket(r.Id).Ticket; + var ticket = Api.Tickets.GetTicket(r.Id).Ticket; Assert.That(ticket.Description, Is.EqualTo(comment)); - api.Tickets.Delete(r.Id); + Api.Tickets.Delete(r.Id); } } @@ -1610,17 +1566,17 @@ public async Task CanCreateManyTicketsAsync() new Ticket{ Subject ="ticket Test number 2", Comment = new Comment{ Body = comment }, Priority = TicketPriorities.Normal } }; - var res = await api.Tickets.CreateManyTicketsAsync(tickets); + var res = await Api.Tickets.CreateManyTicketsAsync(tickets); Assert.That(res.JobStatus.Status, Is.EqualTo("queued")); - var job = await api.JobStatuses.GetJobStatusAsync(res.JobStatus.Id); + var job = await Api.JobStatuses.GetJobStatusAsync(res.JobStatus.Id); Assert.That(job.JobStatus.Id, Is.EqualTo(res.JobStatus.Id)); var count = 0; while (job.JobStatus.Status.ToLower() != "completed" && count < 10) { await Task.Delay(1000); - job = await api.JobStatuses.GetJobStatusAsync(res.JobStatus.Id); + job = await Api.JobStatuses.GetJobStatusAsync(res.JobStatus.Id); count++; } @@ -1628,11 +1584,10 @@ public async Task CanCreateManyTicketsAsync() foreach (var r in job.JobStatus.Results) { - var ticket = (await api.Tickets.GetTicketAsync(r.Id)).Ticket; + var ticket = (await Api.Tickets.GetTicketAsync(r.Id)).Ticket; Assert.That(ticket.Description, Is.EqualTo(comment)); - await api.Tickets.DeleteAsync(r.Id); + await Api.Tickets.DeleteAsync(r.Id); } } - } } diff --git a/test/ZendeskApi_v2.Test/TriggerTests.cs b/tests/ZendeskApi_v2.Tests/TriggerTests.cs similarity index 71% rename from test/ZendeskApi_v2.Test/TriggerTests.cs rename to tests/ZendeskApi_v2.Tests/TriggerTests.cs index aa32bfb5..a0f01b23 100644 --- a/test/ZendeskApi_v2.Test/TriggerTests.cs +++ b/tests/ZendeskApi_v2.Tests/TriggerTests.cs @@ -1,26 +1,23 @@ using NUnit.Framework; -using System.Collections; using System.Collections.Generic; using System.Linq; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Triggers; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class TriggerTests + public class TriggerTests : TestBase { - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [OneTimeSetUp] - public void Init() + public void Setup() { - var triggers = api.Triggers.GetTriggers(); + var triggers = Api.Triggers.GetTriggers(); if (triggers != null) { foreach (var trigger in triggers.Triggers.Where(o => o.Title.Contains("Test Trigger") || o.Title.Contains("Test Trigger Updated") || o.Title.Contains("Test Trigger1") || o.Title.Contains("Test Trigger2"))) { - api.Triggers.DeleteTrigger(trigger.Id.Value); + Api.Triggers.DeleteTrigger(trigger.Id.Value); } } } @@ -28,10 +25,10 @@ public void Init() [Test] public void CanGetTriggers() { - var res = api.Triggers.GetTriggers(); + var res = Api.Triggers.GetTriggers(); Assert.That(res.Count, Is.GreaterThan(0)); - var ind = api.Triggers.GetTriggerById(res.Triggers[0].Id.Value); + var ind = Api.Triggers.GetTriggerById(res.Triggers[0].Id.Value); Assert.That(res.Triggers[0].Id, Is.EqualTo(ind.Trigger.Id)); } @@ -50,21 +47,21 @@ public void CanCreateUpdateAndDeleteTriggers() trigger.Conditions.All.Add(new All() { Field = "status", Operator = "is", Value = "open" }); trigger.Actions.Add(new Action() { Field = "group_id", Value = "20402842" }); - var res = api.Triggers.CreateTrigger(trigger); + var res = Api.Triggers.CreateTrigger(trigger); Assert.That(res.Trigger.Id, Is.GreaterThan(0)); res.Trigger.Title = "Test Trigger Updated"; - var update = api.Triggers.UpdateTrigger(res.Trigger); + var update = Api.Triggers.UpdateTrigger(res.Trigger); Assert.That(res.Trigger.Title, Is.EqualTo(update.Trigger.Title)); - Assert.That(api.Triggers.DeleteTrigger(res.Trigger.Id.Value), Is.True); + Assert.That(Api.Triggers.DeleteTrigger(res.Trigger.Id.Value), Is.True); } [Test] public void CanReorderTriggers() { - var res = api.Triggers.GetActiveTriggers().Triggers; + var res = Api.Triggers.GetActiveTriggers().Triggers; Assert.That(res.Count(), Is.EqualTo(0)); var trigger = new Trigger() @@ -85,19 +82,19 @@ public void CanReorderTriggers() Position = 6000 }; - var res2 = api.Triggers.CreateTrigger(trigger); - var res3 = api.Triggers.CreateTrigger(trigger2); + var res2 = Api.Triggers.CreateTrigger(trigger); + var res3 = Api.Triggers.CreateTrigger(trigger2); var ids = new List() { res3.Trigger.Id.Value, res2.Trigger.Id.Value }; - Assert.That(api.Triggers.ReorderTriggers(ids), Is.True); + Assert.That(Api.Triggers.ReorderTriggers(ids), Is.True); - res = api.Triggers.GetActiveTriggers().Triggers; + res = Api.Triggers.GetActiveTriggers().Triggers; Assert.That(res3.Trigger.Id.Value, Is.EqualTo(res[0].Id.Value)); - Assert.That(api.Triggers.DeleteTrigger(res2.Trigger.Id.Value), Is.True); - Assert.That(api.Triggers.DeleteTrigger(res3.Trigger.Id.Value), Is.True); + Assert.That(Api.Triggers.DeleteTrigger(res2.Trigger.Id.Value), Is.True); + Assert.That(Api.Triggers.DeleteTrigger(res3.Trigger.Id.Value), Is.True); } } } diff --git a/test/ZendeskApi_v2.Test/UserTests.cs b/tests/ZendeskApi_v2.Tests/UserTests.cs similarity index 72% rename from test/ZendeskApi_v2.Test/UserTests.cs rename to tests/ZendeskApi_v2.Tests/UserTests.cs index 3c00f4c9..3f4193d8 100644 --- a/test/ZendeskApi_v2.Test/UserTests.cs +++ b/tests/ZendeskApi_v2.Tests/UserTests.cs @@ -1,68 +1,65 @@ -using System; +using NUnit.Framework; +using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Threading; using System.Threading.Tasks; -using NUnit.Framework; -using ZendeskApi_v2; using ZendeskApi_v2.Models.Constants; +using ZendeskApi_v2.Models.Shared; using ZendeskApi_v2.Models.Users; using ZendeskApi_v2.Requests; -using ZendeskApi_v2.Models.Shared; -using System.IO; -using System.Net; -using System.Threading; +using ZendeskApi_v2.Tests.Base; -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] [Category("Users")] - public class UserTests + public class UserTests : TestBase { private const int MaxRetryAttempts = 10; private const string JobStatusCompleted = "completed"; private const string JobStatusQueued = "queued"; - private readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanGetUsers() { - var res = api.Users.GetAllUsers(); + var res = Api.Users.GetAllUsers(); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanGetAgents() { - var res = api.Users.GetAllAgents(); + var res = Api.Users.GetAllAgents(); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanGetAdmins() { - var res = api.Users.GetAllAdmins(); + var res = Api.Users.GetAllAdmins(); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanGetEndUsers() { - var res = api.Users.GetAllEndUsers(); + var res = Api.Users.GetAllEndUsers(); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanGetAllUsersInRoles() { - var res = api.Users.GetAllUsersInRoles(agents: true, admins: true); + var res = Api.Users.GetAllUsersInRoles(agents: true, admins: true); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanGetUserByCustomField() { - var res = api.Users.SearchByCustomUserField(Settings.FieldKey, Settings.FieldValue); + var res = Api.Users.SearchByCustomUserField(Settings.FieldKey, Settings.FieldValue); var user = res.Users.FirstOrDefault(); Assert.That(user, Is.Not.Null); @@ -72,7 +69,7 @@ public void CanGetUserByCustomField() [Test] public void CannotGetUserByCustomField() { - var res = api.Users.SearchByCustomUserField(Settings.FieldKey, Settings.BadFieldValue); + var res = Api.Users.SearchByCustomUserField(Settings.FieldKey, Settings.BadFieldValue); Assert.That(res.Users.Count, Is.EqualTo(0)); Assert.That(res.Users.FirstOrDefault(), Is.Null); @@ -81,21 +78,21 @@ public void CannotGetUserByCustomField() [Test] public void CanGetUser() { - var res = api.Users.GetUser(Settings.UserId); - Assert.That(res.User.Id, Is.EqualTo(Settings.UserId)); + var res = Api.Users.GetUser(Admin.ID); + Assert.That(res.User.Id, Is.EqualTo(Admin.ID)); } [Test] public void CanGetUsersInGroup() { - var res = api.Users.GetUsersInGroup(Settings.GroupId); + var res = Api.Users.GetUsersInGroup(Settings.GroupId); Assert.That(res.Count, Is.GreaterThan(0)); } [Test] public void CanGetUsersInOrg() { - var res = api.Users.GetUsersInOrganization(Settings.OrganizationId); + var res = Api.Users.GetUsersInOrganization(Organization.ID); Assert.That(res.Count, Is.GreaterThan(0)); } @@ -110,28 +107,28 @@ public void CanGetUsersInOrgPaginated() { Name = Guid.NewGuid().ToString("N") + " " + Guid.NewGuid().ToString("N"), Email = Guid.NewGuid().ToString("N") + "@" + Guid.NewGuid().ToString("N") + ".com", - OrganizationId = Settings.OrganizationId + OrganizationId = Organization.ID }; - var res1 = api.Users.CreateUser(user); + var res1 = Api.Users.CreateUser(user); users.Add(res1.User); } - var res = api.Users.GetUsersInOrganization(Settings.OrganizationId, 3, 0); + var res = Api.Users.GetUsersInOrganization(Organization.ID, 3, 0); Assert.That(res.Users.Count, Is.EqualTo(3)); Assert.That(res.NextPage, Is.Not.Null); - users.ForEach(u => api.Users.DeleteUser(u.Id.Value)); + users.ForEach(u => Api.Users.DeleteUser(u.Id.Value)); } [Test] public void CanCreateUpdateSuspendAndDeleteUser() { - var groupUserResponse = api.Users.SearchByEmail("test772@tester.com"); + var groupUserResponse = Api.Users.SearchByEmail("test772@tester.com"); foreach (var u in groupUserResponse.Users) { - api.Users.DeleteUser(u.Id.Value); + Api.Users.DeleteUser(u.Id.Value); } var user = new User() @@ -146,37 +143,34 @@ public void CanCreateUpdateSuspendAndDeleteUser() } }; - var res1 = api.Users.CreateUser(user); + var res1 = Api.Users.CreateUser(user); var userId = res1.User.Id ?? 0; Assert.That(res1.User.Id, Is.GreaterThan(0)); - Assert.That(api.Users.SetUsersPassword(userId, "t34sssting"), Is.True); - Assert.That(api.Users.ChangeUsersPassword(userId, "t34sssting", "newpassw33rd"), Is.True); + Assert.That(Api.Users.SetUsersPassword(userId, "t34sssting"), Is.True); + Assert.That(Api.Users.ChangeUsersPassword(userId, "t34sssting", "newpassw33rd"), Is.True); res1.User.Phone = "555-555-5555"; res1.User.RemotePhotoUrl = "http://i.imgur.com/b2gxj.jpg"; - var res2 = api.Users.UpdateUser(res1.User); - api.Users.GetUser(res1.User.Id.Value); + var res2 = Api.Users.UpdateUser(res1.User); + Api.Users.GetUser(res1.User.Id.Value); Assert.That(res2.User.Phone, Is.EqualTo(res1.User.Phone)); - var res3 = api.Users.SuspendUser(res2.User.Id.Value); + var res3 = Api.Users.SuspendUser(res2.User.Id.Value); Assert.That(res3.User.Suspended, Is.True); - var res4 = api.Users.DeleteUser(res3.User.Id.Value); + var res4 = Api.Users.DeleteUser(res3.User.Id.Value); Assert.That(res4, Is.True); - - //check the remote photo url - //Assert.AreEqual(res1.User.RemotePhotoUrl, res2.User.RemotePhotoUrl); } [Test] public void CanCreateOrUpdateUser_NewUser() { - var groupUserResponse = api.Users.SearchByEmail("test772@tester.com"); + var groupUserResponse = Api.Users.SearchByEmail("test772@tester.com"); foreach (var u in groupUserResponse.Users) { - api.Users.DeleteUser(u.Id.Value); + Api.Users.DeleteUser(u.Id.Value); } var user = new User() @@ -191,16 +185,16 @@ public void CanCreateOrUpdateUser_NewUser() } }; - var res1 = api.Users.CreateOrUpdateUser(user); + var res1 = Api.Users.CreateOrUpdateUser(user); Assert.That(res1.User.Id, Is.GreaterThan(0)); } [Test] public void CanCreateOrUpdateUser_CreateSameUserTwice() { - var groupUserResponse = api.Users.SearchByEmail("test772@tester.com"); + var groupUserResponse = Api.Users.SearchByEmail("test772@tester.com"); foreach (var u in groupUserResponse.Users) { - api.Users.DeleteUser(u.Id.Value); + Api.Users.DeleteUser(u.Id.Value); } var user = new User() @@ -214,10 +208,10 @@ public void CanCreateOrUpdateUser_CreateSameUserTwice() {"user_dropdown", "option_1"} } }; - _ = api.Users.CreateOrUpdateUser(user); - _ = api.Users.CreateOrUpdateUser(user); + _ = Api.Users.CreateOrUpdateUser(user); + _ = Api.Users.CreateOrUpdateUser(user); - var user72group = api.Users.SearchByEmail("test772@tester.com"); + var user72group = Api.Users.SearchByEmail("test772@tester.com"); Assert.That(user72group.Count, Is.EqualTo(1)); } @@ -225,10 +219,10 @@ public void CanCreateOrUpdateUser_CreateSameUserTwice() [Test] public void CanCreateOrUpdateUser_UpdateUser() { - var groupUserResponse = api.Users.SearchByEmail("test772@tester.com"); + var groupUserResponse = Api.Users.SearchByEmail("test772@tester.com"); foreach (var u in groupUserResponse.Users) { - api.Users.DeleteUser(u.Id.Value); + Api.Users.DeleteUser(u.Id.Value); } var user = new User() @@ -242,12 +236,12 @@ public void CanCreateOrUpdateUser_UpdateUser() {"user_dropdown", "option_1"} } }; - _ = api.Users.CreateOrUpdateUser(user); + _ = Api.Users.CreateOrUpdateUser(user); user.Name = "tester user721"; - var res2 = api.Users.CreateOrUpdateUser(user); + var res2 = Api.Users.CreateOrUpdateUser(user); - var user72group = api.Users.SearchByEmail("test772@tester.com"); + var user72group = Api.Users.SearchByEmail("test772@tester.com"); Assert.That(user72group.Count, Is.EqualTo(1)); Assert.That(res2.User.Name, Does.Contain("721")); @@ -256,10 +250,10 @@ public void CanCreateOrUpdateUser_UpdateUser() [Test] public async Task CanCreateOrUpdateUserAsync_NewUser() { - var groupUserResponse = api.Users.SearchByEmail("test772@tester.com"); + var groupUserResponse = Api.Users.SearchByEmail("test772@tester.com"); foreach (var u in groupUserResponse.Users) { - api.Users.DeleteUser(u.Id.Value); + Api.Users.DeleteUser(u.Id.Value); } var user = new User() @@ -274,16 +268,16 @@ public async Task CanCreateOrUpdateUserAsync_NewUser() } }; - var res1 = await api.Users.CreateOrUpdateUserAsync(user); + var res1 = await Api.Users.CreateOrUpdateUserAsync(user); Assert.That(res1.User.Id, Is.GreaterThan(0)); } [Test] public async Task CanCreateOrUpdateUserAsync_CreateSameUserTwice() { - var groupUserResponse = api.Users.SearchByEmail("test772@tester.com"); + var groupUserResponse = Api.Users.SearchByEmail("test772@tester.com"); foreach (var u in groupUserResponse.Users) { - api.Users.DeleteUser(u.Id.Value); + Api.Users.DeleteUser(u.Id.Value); } var user = new User() @@ -297,10 +291,10 @@ public async Task CanCreateOrUpdateUserAsync_CreateSameUserTwice() {"user_dropdown", "option_1"} } }; - _ = await api.Users.CreateOrUpdateUserAsync(user); - _ = await api.Users.CreateOrUpdateUserAsync(user); + _ = await Api.Users.CreateOrUpdateUserAsync(user); + _ = await Api.Users.CreateOrUpdateUserAsync(user); - var user72group = api.Users.SearchByEmail("test772@tester.com"); + var user72group = Api.Users.SearchByEmail("test772@tester.com"); Assert.That(user72group.Count, Is.EqualTo(1)); } @@ -308,10 +302,10 @@ public async Task CanCreateOrUpdateUserAsync_CreateSameUserTwice() [Test] public async Task CanCreateOrUpdateUserAsync_UpdateUser() { - var groupUserResponse = api.Users.SearchByEmail("test772@tester.com"); + var groupUserResponse = Api.Users.SearchByEmail("test772@tester.com"); foreach (var u in groupUserResponse.Users) { - api.Users.DeleteUser(u.Id.Value); + Api.Users.DeleteUser(u.Id.Value); } var user = new User() @@ -325,29 +319,29 @@ public async Task CanCreateOrUpdateUserAsync_UpdateUser() {"user_dropdown", "option_1"} } }; - _ = await api.Users.CreateOrUpdateUserAsync(user); + _ = await Api.Users.CreateOrUpdateUserAsync(user); user.Name = "tester user721"; - var res2 = api.Users.CreateOrUpdateUser(user); + var res2 = Api.Users.CreateOrUpdateUser(user); - var user72group = api.Users.SearchByEmail("test772@tester.com"); + var user72group = Api.Users.SearchByEmail("test772@tester.com"); Assert.That(user72group.Count, Is.EqualTo(1)); Assert.That(res2.User.Name, Does.Contain("721")); } [Test] - public void CanFindUser() + public void CanFindUser() { - //var res1 = api.Users.SearchByEmail(Settings.Email); - var res1 = api.Users.SearchByEmail(Settings.ColloboratorEmail); + //var res1 = Api.Users.SearchByEmail(Settings.Email); + var res1 = Api.Users.SearchByEmail(Settings.ColloboratorEmail); Assert.That(res1.Users.Count, Is.GreaterThan(0)); } [Test] public void CanFindUserByPhone() { - var res1 = api.Users.SearchByPhone(Settings.Phone); + var res1 = Api.Users.SearchByPhone(Settings.Phone); Assert.That(res1.Users.Count, Is.GreaterThan(0)); Assert.That(res1.Users.First().Phone, Is.EqualTo(Settings.Phone)); Assert.That(res1.Users.First().Name, Is.EqualTo("0897c9c1f80646118a8194c942aa84cf 162a3d865f194ef8b7a2ad3525ea6d7c")); @@ -356,7 +350,7 @@ public void CanFindUserByPhone() [Test] public void CanFindUserByFormattedPhone() { - var res1 = api.Users.SearchByPhone(Settings.FormattedPhone); + var res1 = Api.Users.SearchByPhone(Settings.FormattedPhone); Assert.That(res1.Users.Count, Is.GreaterThan(0)); Assert.That(res1.Users.First().Phone, Is.EqualTo(Settings.FormattedPhone)); Assert.That(res1.Users.First().Name, Is.EqualTo("dc4d7cf57d0c435cbbb91b1d4be952fe 504b509b0b1e48dda2c8471a88f068a5")); @@ -365,7 +359,7 @@ public void CanFindUserByFormattedPhone() [Test] public void CanFindUserByPhoneAsync() { - var res1 = api.Users.SearchByPhoneAsync(Settings.Phone).Result; + var res1 = Api.Users.SearchByPhoneAsync(Settings.Phone).Result; Assert.That(res1.Users.Count, Is.GreaterThan(0)); Assert.That(res1.Users.First().Phone, Is.EqualTo(Settings.Phone)); Assert.That(res1.Users.First().Name, Is.EqualTo("0897c9c1f80646118a8194c942aa84cf 162a3d865f194ef8b7a2ad3525ea6d7c")); @@ -374,33 +368,33 @@ public void CanFindUserByPhoneAsync() [Test] public void CannotFindUserByPhone() { - var res1 = api.Users.SearchByPhone(Settings.BadPhone); + var res1 = Api.Users.SearchByPhone(Settings.BadPhone); Assert.That(res1.Users.Count, Is.EqualTo(0)); } [Test] public void CannotFindUserByPhoneAsync() { - var res1 = api.Users.SearchByPhoneAsync(Settings.BadPhone).Result; + var res1 = Api.Users.SearchByPhoneAsync(Settings.BadPhone).Result; Assert.That(res1.Users.Count, Is.EqualTo(0)); } [Test] public void CanGetCurrentUser() { - var res1 = api.Users.GetCurrentUser(); + var res1 = Api.Users.GetCurrentUser(); Assert.That(res1.User.Id, Is.GreaterThan(0)); } [Test] public void CanGetUserIdentities() { - var res = api.Users.GetCurrentUser(); + var res = Api.Users.GetCurrentUser(); - var res1 = api.Users.GetUserIdentities(res.User.Id.Value); + var res1 = Api.Users.GetUserIdentities(res.User.Id.Value); Assert.That(res1.Identities[0].Id, Is.GreaterThan(0)); - var res2 = api.Users.GetSpecificUserIdentity(res.User.Id.Value, res1.Identities[0].Id.Value); + var res2 = Api.Users.GetSpecificUserIdentity(res.User.Id.Value, res1.Identities[0].Id.Value); Assert.That(res2.Identity.Id, Is.GreaterThan(0)); } @@ -413,16 +407,16 @@ public void CanCreateUpdateAndDeleteIdentities() Email = "test10@test.com", }; - var existingUser = api.Users.SearchByEmail(user.Email); + var existingUser = Api.Users.SearchByEmail(user.Email); if (existingUser.Count > 0) { - api.Users.DeleteUser(existingUser.Users[0].Id.Value); + Api.Users.DeleteUser(existingUser.Users[0].Id.Value); } - var res1 = api.Users.CreateUser(user); + var res1 = Api.Users.CreateUser(user); var userId = res1.User.Id.Value; - var res2 = api.Users.AddUserIdentity(userId, new UserIdentity() + var res2 = Api.Users.AddUserIdentity(userId, new UserIdentity() { Type = UserIdentityTypes.Email, Value = "moretest2@test.com" @@ -430,53 +424,21 @@ public void CanCreateUpdateAndDeleteIdentities() var identityId = res2.Identity.Id.Value; Assert.That(identityId, Is.GreaterThan(0)); - var verified = api.Users.SetUserIdentityAsVerified(userId, identityId); + var verified = Api.Users.SetUserIdentityAsVerified(userId, identityId); Assert.That(verified.Identity.Id, Is.EqualTo(identityId)); - var primaries = api.Users.SetUserIdentityAsPrimary(userId, identityId); + var primaries = Api.Users.SetUserIdentityAsPrimary(userId, identityId); Assert.That(primaries.Identities.First(x => x.Primary).Id, Is.EqualTo(identityId)); - Assert.That(api.Users.DeleteUserIdentity(userId, identityId), Is.True); - Assert.That(api.Users.DeleteUser(userId), Is.True); - } - - [Test] - [Ignore("not going to deal with making this not have timing issues")] - public async Task CanMergeUsersAsync() - { - var user1 = new User - { - Name = Guid.NewGuid().ToString("N") + " " + Guid.NewGuid().ToString("N"), - Email = Guid.NewGuid().ToString("N") + "@" + Guid.NewGuid().ToString("N") + ".com" - }; - - var user2 = new User - { - Name = Guid.NewGuid().ToString("N") + " " + Guid.NewGuid().ToString("N"), - Email = Guid.NewGuid().ToString("N") + "@" + Guid.NewGuid().ToString("N") + ".com" - }; - - var resultUser1 = api.Users.CreateUser(user1); - var resultUser2 = api.Users.CreateUser(user2); - - var mergedUser = await api.Users.MergeUserAsync(resultUser1.User.Id.Value, resultUser2.User.Id.Value); - - await Task.Delay(1000); - var mergedIdentities = await api.Users.GetUserIdentitiesAsync(mergedUser.User.Id.Value); - - //Assert.That(resultUser2.User.Id, Is.EqualTo(mergedUser.User.Id)); - Assert.That(mergedIdentities.Identities.Any(i => i.Value.ToLower() == user1.Email.ToLower()), Is.True); - Assert.That(mergedIdentities.Identities.Any(i => i.Value.ToLower() == user2.Email.ToLower()), Is.True); - - api.Users.DeleteUser(resultUser1.User.Id.Value); - api.Users.DeleteUser(resultUser2.User.Id.Value); + Assert.That(Api.Users.DeleteUserIdentity(userId, identityId), Is.True); + Assert.That(Api.Users.DeleteUser(userId), Is.True); } [Test] public void CanGetMultipleUsers() { - var userList = api.Users.GetAllUsers(10, 1).Users.Select(u => u.Id.Value).ToList(); - var result = api.Users.GetMultipleUsers(userList, UserSideLoadOptions.Organizations | UserSideLoadOptions.Identities | UserSideLoadOptions.Roles); + var userList = Api.Users.GetAllUsers(10, 1).Users.Select(u => u.Id.Value).ToList(); + var result = Api.Users.GetMultipleUsers(userList, UserSideLoadOptions.Organizations | UserSideLoadOptions.Identities | UserSideLoadOptions.Roles); Assert.That(result.Count, Is.EqualTo(userList.Count)); Assert.That((result.Organizations != null && result.Organizations.Any()) || (result.Identities != null && result.Identities.Any()), Is.True); @@ -485,8 +447,8 @@ public void CanGetMultipleUsers() [Test] public void CanGetMultipleUsersAsync() { - var userList = api.Users.GetAllUsersAsync(10, 1).Result.Users.Select(u => u.Id.Value).ToList(); - var result = api.Users.GetMultipleUsers(userList, UserSideLoadOptions.Organizations | UserSideLoadOptions.Identities); + var userList = Api.Users.GetAllUsersAsync(10, 1).Result.Users.Select(u => u.Id.Value).ToList(); + var result = Api.Users.GetMultipleUsers(userList, UserSideLoadOptions.Organizations | UserSideLoadOptions.Identities); Assert.That(result.Count, Is.EqualTo(userList.Count)); Assert.That((result.Organizations != null && result.Organizations.Any()) || (result.Identities != null && result.Identities.Any()), Is.True); } @@ -503,7 +465,7 @@ public void CanSetUserPhoto() FileData = File.ReadAllBytes(path) }; - var user = api.Users.SetUserPhoto(Settings.UserId, file); + var user = Api.Users.SetUserPhoto(Admin.ID, file); Assert.That(user.User.Photo.ContentUrl, Is.Not.Null); Assert.That(user.User.Photo.Size, Is.Not.Zero); } @@ -519,7 +481,7 @@ public async Task CanSetUserPhotoAsync() FileData = File.ReadAllBytes(path) }; - var user = await api.Users.SetUserPhotoAsync(Settings.UserId, file); + var user = await Api.Users.SetUserPhotoAsync(Admin.ID, file); Assert.That(user.User.Photo.ContentUrl, Is.Not.Null); Assert.That(user.User.Photo.Size, Is.Not.Zero); } @@ -528,10 +490,10 @@ public async Task CanSetUserPhotoAsync() public void CanGetUserRelatedInformation() { //Arrange - var userId = Settings.UserId; + var userId = Admin.ID; //Act - var result = api.Users.GetUserRelatedInformation(userId); + var result = Api.Users.GetUserRelatedInformation(userId); //Assert Assert.That(result, Is.Not.Null); @@ -542,10 +504,10 @@ public void CanGetUserRelatedInformation() public async Task CanGetUserRelatedInformationAsync() { //Arrange - var userId = Settings.UserId; + var userId = Admin.ID; //Act - var result = await api.Users.GetUserRelatedInformationAsync(userId); + var result = await Api.Users.GetUserRelatedInformationAsync(userId); //Assert Assert.That(result, Is.Not.Null); @@ -561,16 +523,16 @@ public async Task CanCreateUpdateAndDeleteIdentitiesAsync() Email = "test10@test.com", }; - var existingUser = await api.Users.SearchByEmailAsync(user.Email); + var existingUser = await Api.Users.SearchByEmailAsync(user.Email); if (existingUser.Count > 0) { - await api.Users.DeleteUserAsync(existingUser.Users[0].Id.Value); + await Api.Users.DeleteUserAsync(existingUser.Users[0].Id.Value); } - var res1 = await api.Users.CreateUserAsync(user); + var res1 = await Api.Users.CreateUserAsync(user); var userId = res1.User.Id.Value; - var res2 = await api.Users.AddUserIdentityAsync(userId, new UserIdentity + var res2 = await Api.Users.AddUserIdentityAsync(userId, new UserIdentity { Type = UserIdentityTypes.Email, Value = "moretest2@test.com" @@ -580,15 +542,15 @@ public async Task CanCreateUpdateAndDeleteIdentitiesAsync() Assert.That(identityId, Is.GreaterThan(0)); res2.Identity.Value = "moretest2@test.com"; - await api.Users.UpdateUserIdentityAsync(userId, res2.Identity); + await Api.Users.UpdateUserIdentityAsync(userId, res2.Identity); - var res3 = await api.Users.GetSpecificUserIdentityAsync(userId, identityId); + var res3 = await Api.Users.GetSpecificUserIdentityAsync(userId, identityId); Assert.That(res3.Identity.Id, Is.EqualTo(identityId)); Assert.That(res3.Identity.Value, Is.EqualTo(res2.Identity.Value)); - Assert.That(api.Users.DeleteUserIdentity(userId, identityId), Is.True); - Assert.That(api.Users.DeleteUser(userId), Is.True); + Assert.That(Api.Users.DeleteUserIdentity(userId, identityId), Is.True); + Assert.That(Api.Users.DeleteUser(userId), Is.True); } [Test] @@ -605,12 +567,12 @@ public async Task CanBulkDeleteUsersAsync() Verified = true }; - var response = await api.Users.CreateUserAsync(user); + var response = await Api.Users.CreateUserAsync(user); users.Add(response.User); } - var jobResponse = await api.Users.BulkDeleteUsersAsync(users); + var jobResponse = await Api.Users.BulkDeleteUsersAsync(users); Assert.That(jobResponse.JobStatus.Status.ToLower(), Is.EqualTo(JobStatusQueued)); @@ -619,7 +581,7 @@ public async Task CanBulkDeleteUsersAsync() while (jobResponse.JobStatus.Status.ToLower() != JobStatusCompleted && count < MaxRetryAttempts) { await Task.Delay(1000); - jobResponse = api.JobStatuses.GetJobStatus(jobResponse.JobStatus.Id); + jobResponse = Api.JobStatuses.GetJobStatus(jobResponse.JobStatus.Id); count++; } @@ -641,12 +603,12 @@ public void CanBulkDeleteUsers() Verified = true }; - var response = api.Users.CreateUser(user); + var response = Api.Users.CreateUser(user); users.Add(response.User); } - var jobResponse = api.Users.BulkDeleteUsers(users); + var jobResponse = Api.Users.BulkDeleteUsers(users); Assert.That(jobResponse.JobStatus.Status.ToLower(), Is.EqualTo(JobStatusQueued)); @@ -655,7 +617,7 @@ public void CanBulkDeleteUsers() while (jobResponse.JobStatus.Status.ToLower() != JobStatusCompleted && count < MaxRetryAttempts) { Thread.Sleep(1000); - jobResponse = api.JobStatuses.GetJobStatus(jobResponse.JobStatus.Id); + jobResponse = Api.JobStatuses.GetJobStatus(jobResponse.JobStatus.Id); count++; } @@ -666,13 +628,13 @@ public void CanBulkDeleteUsers() [Test] public void CanGetIncrementalUserExport() { - var incrementalUserExport = api.Users.GetIncrementalUserExport(Settings.Epoch); + var incrementalUserExport = Api.Users.GetIncrementalUserExport(Settings.Epoch); Assert.That(incrementalUserExport.Users.Count, Is.GreaterThan(0)); Assert.That(incrementalUserExport.Organizations, Is.Null); Assert.That(incrementalUserExport.Identities, Is.Null); Assert.That(incrementalUserExport.Groups, Is.Null); - var incrementalUserExportNextPage = api.Users.GetIncrementalUserExportNextPage(incrementalUserExport.NextPage); + var incrementalUserExportNextPage = Api.Users.GetIncrementalUserExportNextPage(incrementalUserExport.NextPage); Assert.That(incrementalUserExportNextPage.Users.Count, Is.GreaterThan(0)); Assert.That(incrementalUserExportNextPage.Organizations, Is.Null); Assert.That(incrementalUserExportNextPage.Identities, Is.Null); @@ -684,13 +646,13 @@ public void CanGetIncrementalUserExport() //{ // Thread.Sleep(60000); - // var incrementalUserExport = api.Users.GetIncrementalUserExport(Settings.Epoch, UserSideLoadOptions.Organizations | UserSideLoadOptions.Groups | UserSideLoadOptions.Identities); + // var incrementalUserExport = Api.Users.GetIncrementalUserExport(Settings.Epoch, UserSideLoadOptions.Organizations | UserSideLoadOptions.Groups | UserSideLoadOptions.Identities); // Assert.That(incrementalUserExport.Users.Count, Is.GreaterThan(0)); // Assert.That(incrementalUserExport.Organizations, Is.Not.Null); // Assert.That(incrementalUserExport.Identities, Is.Not.Null); // Assert.That(incrementalUserExport.Groups, Is.Not.Null); - // var incrementalUserExportNextPage = api.Users.GetIncrementalUserExportNextPage(incrementalUserExport.NextPage); + // var incrementalUserExportNextPage = Api.Users.GetIncrementalUserExportNextPage(incrementalUserExport.NextPage); // Assert.That(incrementalUserExportNextPage.Users.Count, Is.GreaterThan(0)); // Assert.That(incrementalUserExportNextPage.Organizations, Is.Not.Null); // Assert.That(incrementalUserExportNextPage.Identities, Is.Not.Null); @@ -700,13 +662,13 @@ public void CanGetIncrementalUserExport() [Test] public async Task CanGetIncrementalUserExportAsync() { - var incrementalUserExport = await api.Users.GetIncrementalUserExportAsync(Settings.Epoch); + var incrementalUserExport = await Api.Users.GetIncrementalUserExportAsync(Settings.Epoch); Assert.That(incrementalUserExport.Users.Count, Is.GreaterThan(0)); Assert.That(incrementalUserExport.Organizations, Is.Null); Assert.That(incrementalUserExport.Identities, Is.Null); Assert.That(incrementalUserExport.Groups, Is.Null); - var incrementalUserExportNextPage = await api.Users.GetIncrementalUserExportNextPageAsync(incrementalUserExport.NextPage); + var incrementalUserExportNextPage = await Api.Users.GetIncrementalUserExportNextPageAsync(incrementalUserExport.NextPage); Assert.That(incrementalUserExportNextPage.Users.Count, Is.GreaterThan(0)); Assert.That(incrementalUserExportNextPage.Organizations, Is.Null); Assert.That(incrementalUserExportNextPage.Identities, Is.Null); @@ -716,13 +678,13 @@ public async Task CanGetIncrementalUserExportAsync() [Test] public async Task CanGetIncrementalUserExportAsyncWithSideLoadOptions() { - var incrementalUserExport = await api.Users.GetIncrementalUserExportAsync(Settings.Epoch, UserSideLoadOptions.Organizations | UserSideLoadOptions.Groups | UserSideLoadOptions.Identities); + var incrementalUserExport = await Api.Users.GetIncrementalUserExportAsync(Settings.Epoch, UserSideLoadOptions.Organizations | UserSideLoadOptions.Groups | UserSideLoadOptions.Identities); Assert.That(incrementalUserExport.Users.Count, Is.GreaterThan(0)); Assert.That(incrementalUserExport.Organizations, Is.Not.Null); Assert.That(incrementalUserExport.Identities, Is.Not.Null); Assert.That(incrementalUserExport.Groups, Is.Not.Null); - var incrementalUserExportNextPage = await api.Users.GetIncrementalUserExportNextPageAsync(incrementalUserExport.NextPage); + var incrementalUserExportNextPage = await Api.Users.GetIncrementalUserExportNextPageAsync(incrementalUserExport.NextPage); Assert.That(incrementalUserExportNextPage.Users.Count, Is.GreaterThan(0)); Assert.That(incrementalUserExportNextPage.Organizations, Is.Not.Null); Assert.That(incrementalUserExportNextPage.Identities, Is.Not.Null); @@ -732,8 +694,8 @@ public async Task CanGetIncrementalUserExportAsyncWithSideLoadOptions() [Test] public void CanGetRolesAndAbilities() { - var userList = api.Users.GetAllUsers(10, 1).Users.Select(u => u.Id.Value).ToList(); - var result = api.Users.GetMultipleUsers(userList, UserSideLoadOptions.Roles | UserSideLoadOptions.Abilities); + var userList = Api.Users.GetAllUsers(10, 1).Users.Select(u => u.Id.Value).ToList(); + var result = Api.Users.GetMultipleUsers(userList, UserSideLoadOptions.Roles | UserSideLoadOptions.Abilities); Assert.That(result.Count, Is.EqualTo(userList.Count)); var user = result.Users[0]; @@ -766,20 +728,20 @@ public async Task CanBatchUpdateUsers() var usersToUpdate = new List(); foreach (var user in users) { - var createResp = await api.Users.CreateUserAsync(user); + var createResp = await Api.Users.CreateUserAsync(user); usersToUpdate.Add(createResp.User); } - usersToUpdate.ForEach(u=> u.Details = testDetails); + usersToUpdate.ForEach(u => u.Details = testDetails); - var updateResp = await api.Users.BatchUpdateAsync(usersToUpdate); + var updateResp = await Api.Users.BatchUpdateAsync(usersToUpdate); - var job = await api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); + var job = await Api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); var count = 0; while (job.JobStatus.Status.ToLower() != "completed" && count < 10) { await Task.Delay(1000); - job = await api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); + job = await Api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); count++; } @@ -787,9 +749,9 @@ public async Task CanBatchUpdateUsers() foreach (var r in job.JobStatus.Results) { - var user = (await api.Users.GetUserAsync(r.Id)).User; + var user = (await Api.Users.GetUserAsync(r.Id)).User; Assert.That(user.Details, Is.EqualTo(testDetails)); - await api.Users.DeleteUserAsync(r.Id); + await Api.Users.DeleteUserAsync(r.Id); } } @@ -816,18 +778,18 @@ public async Task CanBulkUpdateUsers() var usersToUpdate = new List(); foreach (var user in users) { - var createResp = await api.Users.CreateUserAsync(user); + var createResp = await Api.Users.CreateUserAsync(user); usersToUpdate.Add(createResp.User); } - var updateResp = await api.Users.BulkUpdateAsync(usersToUpdate.Select(u => u.Id.Value), new User { Details = testDetails }); + var updateResp = await Api.Users.BulkUpdateAsync(usersToUpdate.Select(u => u.Id.Value), new User { Details = testDetails }); - var job = await api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); + var job = await Api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); var count = 0; while (job.JobStatus.Status.ToLower() != "completed" && count < 10) { await Task.Delay(1000); - job = await api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); + job = await Api.JobStatuses.GetJobStatusAsync(updateResp.JobStatus.Id); count++; } @@ -835,9 +797,9 @@ public async Task CanBulkUpdateUsers() foreach (var r in job.JobStatus.Results) { - var user = (await api.Users.GetUserAsync(r.Id)).User; + var user = (await Api.Users.GetUserAsync(r.Id)).User; Assert.That(user.Details, Is.EqualTo(testDetails)); - await api.Users.DeleteUserAsync(r.Id); + await Api.Users.DeleteUserAsync(r.Id); } } } diff --git a/test/ZendeskApi_v2.Test/ViewTests.cs b/tests/ZendeskApi_v2.Tests/ViewTests.cs similarity index 63% rename from test/ZendeskApi_v2.Test/ViewTests.cs rename to tests/ZendeskApi_v2.Tests/ViewTests.cs index 90529e72..67be0172 100644 --- a/test/ZendeskApi_v2.Test/ViewTests.cs +++ b/tests/ZendeskApi_v2.Tests/ViewTests.cs @@ -1,63 +1,51 @@ -using System; +using NUnit.Framework; using System.Collections.Generic; -using System.Diagnostics; -using System.IO; using System.Linq; -using System.Text; -using NUnit.Framework; -using ZendeskApi_v2; using ZendeskApi_v2.Extensions; -using ZendeskApi_v2.Models.Constants; -using ZendeskApi_v2.Models.Shared; -using ZendeskApi_v2.Models.Tickets; using ZendeskApi_v2.Models.Views; using ZendeskApi_v2.Models.Views.Executed; +using ZendeskApi_v2.Tests.Base; - -namespace Tests +namespace ZendeskApi_v2.Tests { [TestFixture] - public class ViewTests + [Category("View")] + public class ViewTests : TestBase { - readonly ZendeskApi api = new ZendeskApi(Settings.Site, Settings.AdminEmail, Settings.AdminPassword); - [Test] public void CanGetViews() { - var views = api.Views.GetAllViews(); + var views = Api.Views.GetAllViews(); Assert.That(views.Count, Is.GreaterThan(0)); } [Test] public void CanGetActiveViews() { - var views = api.Views.GetActiveViews(); + var views = Api.Views.GetActiveViews(); Assert.That(views.Count, Is.GreaterThan(0)); } [Test] public void CanGetCompactViews() { - var views = api.Views.GetCompactViews(); + var views = Api.Views.GetCompactViews(); Assert.That(views.Count, Is.GreaterThan(0)); } [Test] public void CanGetViewById() { - var views = api.Views.GetAllViews(); - var view = api.Views.GetView(views.Views.First().Id); + var views = Api.Views.GetAllViews(); + var view = Api.Views.GetView(views.Views.First().Id); Assert.That(view.View.Id, Is.GreaterThan(0)); } [Test] public void CanExecuteViews() { - api.Views.GetAllViews(); - //var res = api.Views.ExecuteView(views.Views.First().Id); - - //id for all unsolved tickets - var res = api.Views.ExecuteView(31559032); + Api.Views.GetAllViews(); + var res = Api.Views.ExecuteView(31559032); Assert.That(res.Rows.Count, Is.GreaterThan(0)); Assert.That(res.Columns.Count, Is.GreaterThan(0)); @@ -66,7 +54,7 @@ public void CanExecuteViews() [Test] public void CanExecutePagedView() { - var res = api.Views.ExecuteView(Settings.ViewId, "", true, 25, 2); + var res = Api.Views.ExecuteView(Settings.ViewId, "", true, 25, 2); Assert.That(res.Rows.Count, Is.EqualTo(25)); @@ -87,12 +75,12 @@ public void CanPreviewViews() { View = new PreviewView() { - All = new List {new All {Field = "status", Value = "open", Operator = "is"}}, + All = new List { new All { Field = "status", Value = "open", Operator = "is" } }, Output = new PreviewViewOutput { Columns = new List { "subject" } } } }; - var previewRes = api.Views.PreviewView(preview); + var previewRes = Api.Views.PreviewView(preview); Assert.That(previewRes.Rows.Count, Is.GreaterThan(0)); Assert.That(previewRes.Columns.Count, Is.GreaterThan(0)); } @@ -100,8 +88,8 @@ public void CanPreviewViews() [Test] public void CanGetViewCounts() { - var views = api.Views.GetAllViews(); - var res = api.Views.GetViewCounts(new List() { views.Views[0].Id }); + var views = Api.Views.GetAllViews(); + var res = Api.Views.GetViewCounts(new List() { views.Views[0].Id }); Assert.That(res.ViewCounts.Count, Is.GreaterThan(0)); Assert.That(views.Count, Is.GreaterThan(0)); @@ -110,9 +98,9 @@ public void CanGetViewCounts() [Test] public void CanGetViewCount() { - var views = api.Views.GetAllViews(); + var views = Api.Views.GetAllViews(); var id = views.Views[0].Id; - var res = api.Views.GetViewCount(id); + var res = Api.Views.GetViewCount(id); Assert.That(res.ViewCount.ViewId, Is.EqualTo(id)); } diff --git a/tests/ZendeskApi_v2.Tests/VoiceTests.cs b/tests/ZendeskApi_v2.Tests/VoiceTests.cs new file mode 100644 index 00000000..cb32d747 --- /dev/null +++ b/tests/ZendeskApi_v2.Tests/VoiceTests.cs @@ -0,0 +1,133 @@ +using NUnit.Framework; +using System.Linq; +using System.Threading.Tasks; +using ZendeskApi_v2.Models.Constants; +using ZendeskApi_v2.Models.Tickets; +using ZendeskApi_v2.Models.Users; +using ZendeskApi_v2.Tests.Base; + +namespace ZendeskApi_v2.Tests +{ + [TestFixture] + [Category("Voice")] + public class VoiceTests : TestBase + { + private long ticketId; + private long userId; + + [OneTimeSetUp] + public async Task SetUp() + { + await CleanUp(); + + var ticket = new Ticket() + { + Subject = "my printer is on fire", + Comment = new Comment() { Body = "HELP" }, + Priority = TicketPriorities.Urgent, + ExternalId = TEST_EXTERNAL_ID // marks ticket for auto delete via TestBase.BaseCleanUp + }; + + var respT = await Api.Tickets.CreateTicketAsync(ticket); + + ticketId = respT.Ticket.Id.Value; + + var user = new User() + { + Name = "tester voice", + Email = "testvoice@tester.com", + Role = "end-user", + Verified = true, + }; + var respU = await Api.Users.CreateUserAsync(user); + userId = respU.User.Id.Value; + } + + [OneTimeTearDown] + public async Task CleanUp() + { + var groupUserResponse = await Api.Users.SearchByEmailAsync("testvoice@tester.com"); + foreach (var u in groupUserResponse.Users) + { + await Api.Users.DeleteUserAsync(u.Id.Value); + } + } + + [Test] + public void OpenTicketForAgent() + { + var result = Api.Voice.OpenTicketInAgentBrowser(Admin.ID, ticketId); + Assert.That(result, Is.True); + } + + [Test] + public async Task OpenTicketTabForAgentAsync() + { + var result = await Api.Voice.OpenTicketInAgentBrowserAsync(Admin.ID, ticketId); + Assert.That(result, Is.True); + } + + [Test] + public void OpenUserProfileInAgentBrowser() + { + var result = Api.Voice.OpenUserProfileInAgentBrowser(Admin.ID, userId); + Assert.That(result, Is.True); + } + + [Test] + public async Task OpenUserProfileInAgentBrowserAsync() + { + var result = await Api.Voice.OpenUserProfileInAgentBrowserAsync(Admin.ID, userId); + Assert.That(result, Is.True); + } + + [Test] + public void GetAllAgentAvailability() + { + var res = Api.Voice.GetVoiceAgentActivity(); + + var agent = res.AgentActivity.FirstOrDefault(); + Assert.That(agent, Is.Not.Null); + Assert.That(agent.AgentId, Is.EqualTo(2110053086)); + } + + [Test] + public async Task GetAllAgentAvailabilityAsync() + { + var res = await Api.Voice.GetVoiceAgentActivityAsync(); + + var agent = res.AgentActivity.FirstOrDefault(); + Assert.That(agent, Is.Not.Null); + Assert.That(agent.AgentId, Is.Not.Zero); + } + + [Test] + public void GetCurrentQueueActivity() + { + var res = Api.Voice.GetCurrentQueueActivity(); + + Assert.That(res, Is.Not.Null); + } + + [Test] + public async Task GetCurrentQueueActivityAsync() + { + var res = await Api.Voice.GetCurrentQueueActivityAsync(); + Assert.That(res, Is.Not.Null); + } + + [Test] + public void GetAccountOverview() + { + var res = Api.Voice.GetAccountOverview(); + Assert.That(res, Is.Not.Null); + } + + [Test] + public async Task GetAccountOverviewAsync() + { + var res = await Api.Voice.GetAccountOverviewAsync(); + Assert.That(res, Is.Not.Null); + } + } +} diff --git a/test/ZendeskApi_v2.Test/ZendeskApi_v2.Test.csproj b/tests/ZendeskApi_v2.Tests/ZendeskApi_v2.Tests.csproj similarity index 60% rename from test/ZendeskApi_v2.Test/ZendeskApi_v2.Test.csproj rename to tests/ZendeskApi_v2.Tests/ZendeskApi_v2.Tests.csproj index b28267e5..a317c523 100644 --- a/test/ZendeskApi_v2.Test/ZendeskApi_v2.Test.csproj +++ b/tests/ZendeskApi_v2.Tests/ZendeskApi_v2.Tests.csproj @@ -4,12 +4,19 @@ netcoreapp3.0 false latest + 411e2606-2274-427d-ad1e-89c0d4bc9f5a - + + + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -21,6 +28,9 @@ + + PreserveNewest + Always diff --git a/tests/ZendeskApi_v2.Tests/appsettings.json b/tests/ZendeskApi_v2.Tests/appsettings.json new file mode 100644 index 00000000..89d3b251 --- /dev/null +++ b/tests/ZendeskApi_v2.Tests/appsettings.json @@ -0,0 +1,8 @@ +{ + "organization": { + "id": "361477412411", + "siteURL": "https://csharpapi.zendesk.com/api/v2/", + "name": "csharpapi", + "externalID": "1234abc" + } +} \ No newline at end of file diff --git a/test/ZendeskApi_v2.Test/gracehoppertocat3.jpg b/tests/ZendeskApi_v2.Tests/gracehoppertocat3.jpg similarity index 100% rename from test/ZendeskApi_v2.Test/gracehoppertocat3.jpg rename to tests/ZendeskApi_v2.Tests/gracehoppertocat3.jpg diff --git a/test/ZendeskApi_v2.Test/testupload.txt b/tests/ZendeskApi_v2.Tests/testupload.txt similarity index 100% rename from test/ZendeskApi_v2.Test/testupload.txt rename to tests/ZendeskApi_v2.Tests/testupload.txt