using Centron.BusinessLogic.Sales.Support; using Centron.BusinessLogic.WebServices.Administration.Settings.SettingGroups; using Centron.BusinessLogic.WebServices.Sales.Support; using Centron.Data.Entities.Sales.Support; using Centron.Data.WebServices.Sales.Support; using Centron.Host.RestRequests; using Centron.Interfaces.BL; using Centron.Tests.EndToEnd.Infrastructure; using Xunit; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.SaveNewSimpleTicket; public class SaveNewSimpleTicketTests : EndToEndTest { public SaveNewSimpleTicketTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } public override void Execute() { this.PrepareDatabase(); var ticket1 = this.Test("1_Ticket", 10001, null, null); var ticket2 = this.Test("2_Ticket", 10001, null, null); var ticket3 = this.Test("3_Ticket", 10010, null, null); var filter = new HelpdeskFilter(); var foundTickets = this.WithSession(s => s.GetBL().GetHelpdesksThroughPaging( filter, HelpdeskSort.Number, @descending: true, page: 1, entriesPerPage: int.MaxValue, this.GetLoggedInUser())).ThrowIfError().Result; // Ensure we can find these tickets again Assert.Contains(foundTickets, f => f.Number == ticket1.Number); Assert.Contains(foundTickets, f => f.Number == ticket2.Number); Assert.Contains(foundTickets, f => f.Number == ticket3.Number); } private void PrepareDatabase() { var helpdeskSettings = this.WithSession(s => s.GetBL().GetHelpdeskSettings()); // Reset default values helpdeskSettings.HelpdeskAfterOpenDefaultState = null; helpdeskSettings.HelpdeskPriorityID = null; // Make everything mandatory helpdeskSettings.TicketTypeRequired = true; helpdeskSettings.TicketMainCategoryRequired = true; helpdeskSettings.HelpdeskPriorityFieldIsRequired = true; helpdeskSettings.TicketConnectionNumberRequired = true; helpdeskSettings.AdditionalText1Visible = true; helpdeskSettings.AdditionalText1Caption = "Test 1"; helpdeskSettings.AdditionalText1Required = true; helpdeskSettings.AdditionalText2Visible = true; helpdeskSettings.AdditionalText2Caption = "Test 2"; helpdeskSettings.AdditionalText2Required = true; this.WithSession(s => s.GetBL().UpdateHelpdeskSettings(helpdeskSettings)); this.WithSession(s => s.GetBL().UpdateIgnoreRequiredFieldsSetting(true)); } private HelpdeskDTO Test(string name, int customerI3D, int? addressI3D, int? contactPersonI3D) { var request = new SaveNewSimpleTicketRequest { CustomerI3D = customerI3D, AddressI3D = addressI3D, ShortDescription = name, ContactPersonI3D = contactPersonI3D, }; var ticket = this.WithSession(s => s.GetBL().SaveNewSimpleTicket(request, this.GetLoggedInUser())); this.Verifier.Verify(name, ticket); return ticket; } }