From 261f1ab12d139ec5656db44c4eaa63b300ea5687 Mon Sep 17 00:00:00 2001 From: Kevin Joy Date: Fri, 24 Jan 2025 13:43:50 +0000 Subject: [PATCH] . --- .../Pages/RequestTrn/CheckAnswers.cshtml | 19 +++--- .../Pages/RequestTrn/CheckAnswers.cshtml.cs | 8 ++- .../Pages/RequestTrn/NpqApplication.cshtml.cs | 2 +- .../Pages/RequestTrn/NpqCheck.cshtml.cs | 2 +- .../Pages/RequestTrn/PersonalEmail.cshtml.cs | 12 +++- .../SchoolOrEducationalSetting.cshtml.cs | 2 +- .../Pages/RequestTrn/WorkEmail.cshtml.cs | 23 +------ .../PageTests/RequestTrn/CheckAnswersTests.cs | 6 +- .../PageTests/RequestTrn/NpqCheckTests.cs | 2 +- .../RequestTrn/PersonalEmailTests.cs | 48 ++++++++++++++ .../SchoolOrEducationalSettingTests.cs | 2 +- .../PageTests/RequestTrn/WorkEmailTests.cs | 66 ------------------- 12 files changed, 83 insertions(+), 109 deletions(-) diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/CheckAnswers.cshtml b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/CheckAnswers.cshtml index 0e567902f..ab9a7f04b 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/CheckAnswers.cshtml +++ b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/CheckAnswers.cshtml @@ -61,8 +61,6 @@ } - - Name @Model.Name @@ -70,13 +68,16 @@ Change - - Previous name - @Model.PreviousName - - Change - - + @if (!string.IsNullOrEmpty(Model.PreviousName)) + { + + Previous name + @Model.PreviousName + + Change + + + } Date of birth @Model.DateOfBirth!.Value.ToString("d MMMM yyyy") diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/CheckAnswers.cshtml.cs b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/CheckAnswers.cshtml.cs index 4f4e75a13..8e249fcc8 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/CheckAnswers.cshtml.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/CheckAnswers.cshtml.cs @@ -79,12 +79,14 @@ public async Task OnPostAsync() var state = JourneyInstance!.State; var description = $""" - WorkEmail: {state.WorkEmail} - Name: {state.Name} + Working In School or Educational Setting: {(state.WorkingInSchoolOrEducationalSetting == true ? "Yes" : "No")} Personal Email: {state.PersonalEmail} + Work Email: {state.WorkEmail} + Name: {state.Name} Previous name: {state.PreviousName} Date of birth: {state.DateOfBirth:dd/MM/yyyy} National Insurance number: {NationalInsuranceNumberHelper.Normalize(state.NationalInsuranceNumber)} + Registered For NPQ: {(state.HaveRegisteredForAnNpq == true ? "Yes" : "No")} NPQ application ID: {state.NpqApplicationId} NPQ name: {state.NpqName} NPQ training provider: {state.NpqTrainingProvider} @@ -116,7 +118,7 @@ await crmQueryDispatcher.ExecuteQueryAsync( EvidenceFileName = JourneyInstance!.State.EvidenceFileName!, EvidenceFileContent = stream, EvidenceFileMimeType = evidenceFileMimeType, - EmailAddress = JourneyInstance!.State.WorkEmail! + EmailAddress = JourneyInstance!.State.PersonalEmail! }); await JourneyInstance!.UpdateStateAsync(state => state.HasPendingTrnRequest = true); diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/NpqApplication.cshtml.cs b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/NpqApplication.cshtml.cs index 1ee7c9a4c..07f08474c 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/NpqApplication.cshtml.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/NpqApplication.cshtml.cs @@ -15,7 +15,7 @@ public class NpqApplicationModel(AuthorizeAccessLinkGenerator linkGenerator) : P public bool? FromCheckAnswers { get; set; } [BindProperty] - [Display(Name = "What is your NPQ application ID", Description = "We’ll use this to check your registration details.")] + [Display(Name = "What is your NPQ application ID?", Description = "We’ll use this to check your registration details.")] [Required(ErrorMessage = "Tell us your NPQ application ID")] public string? NpqApplicationId { get; set; } diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/NpqCheck.cshtml.cs b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/NpqCheck.cshtml.cs index 463b849cd..7e310ddf8 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/NpqCheck.cshtml.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/NpqCheck.cshtml.cs @@ -13,7 +13,7 @@ public class NpqCheckModel(AuthorizeAccessLinkGenerator linkGenerator) : PageMod [BindProperty] [Display(Name = "Have you already registered for an NPQ?")] - [Required(ErrorMessage = "Tell us whether you have already registered for an NPQ")] + [Required(ErrorMessage = "Select yes if you have already registered for an NPQ")] public bool? HaveRegisteredForAnNpq { get; set; } public void OnGet() diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/PersonalEmail.cshtml.cs b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/PersonalEmail.cshtml.cs index 6720efdb4..b8dd51368 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/PersonalEmail.cshtml.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/PersonalEmail.cshtml.cs @@ -2,13 +2,15 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.RazorPages; +using TeachingRecordSystem.Core.Dqt; +using TeachingRecordSystem.Core.Dqt.Queries; using TeachingRecordSystem.WebCommon.FormFlow; using EmailAddress = TeachingRecordSystem.AuthorizeAccess.DataAnnotations.EmailAddressAttribute; namespace TeachingRecordSystem.AuthorizeAccess.Pages.RequestTrn; [Journey(RequestTrnJourneyState.JourneyName), RequireJourneyInstance] -public class PersonalEmailModel(AuthorizeAccessLinkGenerator linkGenerator) : PageModel +public class PersonalEmailModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQueryDispatcher crmQueryDispatcher) : PageModel { public JourneyInstance? JourneyInstance { get; set; } @@ -35,6 +37,14 @@ public async Task OnPostAsync() await JourneyInstance!.UpdateStateAsync(state => state.PersonalEmail = PersonalEmail); + var openTasks = await crmQueryDispatcher.ExecuteQueryAsync( + new GetOpenTasksForEmailAddressQuery(EmailAddress: JourneyInstance!.State.PersonalEmail!)); + + if (openTasks.Any()) + { + return Redirect(linkGenerator.RequestTrnEmailInUse(JourneyInstance!.InstanceId)); + } + return FromCheckAnswers == true ? Redirect(linkGenerator.RequestTrnCheckAnswers(JourneyInstance!.InstanceId)) : Redirect(linkGenerator.RequestTrnName(JourneyInstance.InstanceId)); diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/SchoolOrEducationalSetting.cshtml.cs b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/SchoolOrEducationalSetting.cshtml.cs index 0b20b151f..170d7f19e 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/SchoolOrEducationalSetting.cshtml.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/SchoolOrEducationalSetting.cshtml.cs @@ -13,7 +13,7 @@ public class SchoolOrEducationalSettingModel(AuthorizeAccessLinkGenerator linkGe [BindProperty] [Display(Name = "Are you currently working in a school or other educational setting?")] - [Required(ErrorMessage = "Tell us if you are currently working in a school or other educational setting")] + [Required(ErrorMessage = "Select yes if you are currently working in a school or other educational setting")] public bool? IsWorkingInSchoolOrEducationalSetting { get; set; } public async Task OnPostAsync() diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/WorkEmail.cshtml.cs b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/WorkEmail.cshtml.cs index d10ef4b44..88dc96bce 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/WorkEmail.cshtml.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Pages/RequestTrn/WorkEmail.cshtml.cs @@ -1,16 +1,13 @@ using System.ComponentModel.DataAnnotations; using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.RazorPages; -using TeachingRecordSystem.Core.Dqt; -using TeachingRecordSystem.Core.Dqt.Queries; using TeachingRecordSystem.WebCommon.FormFlow; using EmailAddress = TeachingRecordSystem.AuthorizeAccess.DataAnnotations.EmailAddressAttribute; namespace TeachingRecordSystem.AuthorizeAccess.Pages.RequestTrn; [Journey(RequestTrnJourneyState.JourneyName), RequireJourneyInstance] -public class WorkEmailModel(AuthorizeAccessLinkGenerator linkGenerator, ICrmQueryDispatcher crmQueryDispatcher) : PageModel +public class WorkEmailModel(AuthorizeAccessLinkGenerator linkGenerator) : PageModel { public JourneyInstance? JourneyInstance { get; set; } @@ -37,26 +34,8 @@ public async Task OnPostAsync() await JourneyInstance!.UpdateStateAsync(state => state.WorkEmail = WorkEmail); - var openTasks = await crmQueryDispatcher.ExecuteQueryAsync( - new GetOpenTasksForEmailAddressQuery(EmailAddress: JourneyInstance!.State.WorkEmail!)); - - if (openTasks.Any()) - { - return Redirect(linkGenerator.RequestTrnEmailInUse(JourneyInstance!.InstanceId)); - } - return FromCheckAnswers == true ? Redirect(linkGenerator.RequestTrnCheckAnswers(JourneyInstance!.InstanceId)) : Redirect(linkGenerator.RequestTrnPersonalEmail(JourneyInstance.InstanceId)); } - - public override void OnPageHandlerExecuting(PageHandlerExecutingContext context) - { - var state = JourneyInstance!.State; - if (state.HasPendingTrnRequest) - { - context.Result = Redirect(linkGenerator.RequestTrnSubmitted(JourneyInstance!.InstanceId)); - return; - } - } } diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/CheckAnswersTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/CheckAnswersTests.cs index 20eca0460..fbd160ddc 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/CheckAnswersTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/CheckAnswersTests.cs @@ -442,7 +442,7 @@ public async Task Get_GetValidRequestWithNpqNameAndProvider_ShowsNpqNameAndProvi Assert.Equal(state.WorkEmail, doc.GetSummaryListValueForKey("Work email")); Assert.Equal(state.PersonalEmail, doc.GetSummaryListValueForKey("Personal email")); Assert.Equal(state.Name, doc.GetSummaryListValueForKey("Name")); - Assert.Equal(string.Empty, doc.GetSummaryListValueForKey("Previous name")); + Assert.Null(doc.GetSummaryListValueForKey("Previous name")); Assert.Equal(state.DateOfBirth?.ToString("d MMMM yyyy"), doc.GetSummaryListValueForKey("Date of birth")); Assert.Equal(state.EvidenceFileName, doc.GetSummaryListValueForKey("Proof of identity")); Assert.Equal(state.NationalInsuranceNumber, doc.GetSummaryListValueForKey("National Insurance number")); @@ -485,7 +485,7 @@ public async Task Get_GetValidRequestNpqApplicationIdProvided_HidesNpqNameAndPro Assert.Equal(state.WorkEmail, doc.GetSummaryListValueForKey("Work email")); Assert.Equal(state.PersonalEmail, doc.GetSummaryListValueForKey("Personal email")); Assert.Equal(state.Name, doc.GetSummaryListValueForKey("Name")); - Assert.Equal(string.Empty, doc.GetSummaryListValueForKey("Previous name")); + Assert.Null(doc.GetSummaryListValueForKey("Previous name")); Assert.Equal(state.DateOfBirth?.ToString("d MMMM yyyy"), doc.GetSummaryListValueForKey("Date of birth")); Assert.Equal(state.EvidenceFileName, doc.GetSummaryListValueForKey("Proof of identity")); Assert.Equal(state.NationalInsuranceNumber, doc.GetSummaryListValueForKey("National Insurance number")); @@ -528,7 +528,7 @@ public async Task Get_GetValidRequestWorkingInSchoolOrEducationalSettingFalse_Hi Assert.Null(doc.GetSummaryListValueForKey("Work email")); Assert.Equal(state.PersonalEmail, doc.GetSummaryListValueForKey("Personal email")); Assert.Equal(state.Name, doc.GetSummaryListValueForKey("Name")); - Assert.Equal(string.Empty, doc.GetSummaryListValueForKey("Previous name")); + Assert.Null(doc.GetSummaryListValueForKey("Previous name")); Assert.Equal(state.DateOfBirth?.ToString("d MMMM yyyy"), doc.GetSummaryListValueForKey("Date of birth")); Assert.Equal(state.EvidenceFileName, doc.GetSummaryListValueForKey("Proof of identity")); Assert.Equal(state.NationalInsuranceNumber, doc.GetSummaryListValueForKey("National Insurance number")); diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/NpqCheckTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/NpqCheckTests.cs index 29d5ad73c..785ce8b6d 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/NpqCheckTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/NpqCheckTests.cs @@ -31,7 +31,7 @@ public async Task Post_WhenIsTakingAnNpqHasNoSelection_ReturnsError() var response = await HttpClient.SendAsync(request); // Assert - await AssertEx.HtmlResponseHasErrorAsync(response, "HaveRegisteredForAnNpq", "Tell us whether you have already registered for an NPQ"); + await AssertEx.HtmlResponseHasErrorAsync(response, "HaveRegisteredForAnNpq", "Select yes if you have already registered for an NPQ"); } [Fact] diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/PersonalEmailTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/PersonalEmailTests.cs index a4522cc6f..045097704 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/PersonalEmailTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/PersonalEmailTests.cs @@ -2,6 +2,54 @@ namespace TeachingRecordSystem.AuthorizeAccess.Tests.PageTests.RequestTrn; public class PersonalEmailTests(HostFixture hostFixture) : TestBase(hostFixture) { + [Fact] + public async Task Get_HasPendingTrnRequestSetTrue_RedirectsToSubmitted() + { + // Arrange + var state = CreateNewState(); + state.HasPendingTrnRequest = true; + var journeyInstance = await CreateJourneyInstance(state); + + var request = new HttpRequestMessage(HttpMethod.Get, $"/request-trn/personal-email?{journeyInstance.GetUniqueIdQueryParameter()}"); + + // Act + var response = await HttpClient.SendAsync(request); + + // Assert + Assert.Equal(StatusCodes.Status302Found, (int)response.StatusCode); + Assert.Equal($"/request-trn/submitted?{journeyInstance.GetUniqueIdQueryParameter()}", response.Headers.Location?.OriginalString); + } + + [Fact] + public async Task Post_RequestForEmailWithOpenTasks_RedirectsToEmailInUse() + { + // Arrange + var email = Faker.Internet.Email(); + var state = CreateNewState(); + var journeyInstance = await CreateJourneyInstance(state); + var person = await TestData.CreatePersonAsync(); + await TestData.CreateCrmTaskAsync(x => + { + x.WithPersonId(person.ContactId); + x.WithEmailAddress(email); + }); + + var request = new HttpRequestMessage(HttpMethod.Post, $"/request-trn/personal-email?{journeyInstance.GetUniqueIdQueryParameter()}") + { + Content = new FormUrlEncodedContent(new Dictionary + { + { "PersonalEmail", email } + }) + }; + + // Act + var response = await HttpClient.SendAsync(request); + + // Assert + Assert.Equal(StatusCodes.Status302Found, (int)response.StatusCode); + Assert.Equal($"/request-trn/emailinuse?{journeyInstance.GetUniqueIdQueryParameter()}", response.Headers.Location?.OriginalString); + } + [Fact] public async Task Get_ValidRequest_RendersExpectedContent() { diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/SchoolOrEducationalSettingTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/SchoolOrEducationalSettingTests.cs index 104075f74..4112b2a54 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/SchoolOrEducationalSettingTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/SchoolOrEducationalSettingTests.cs @@ -36,7 +36,7 @@ public async Task Post_EmptyIsWorkingInSchoolOrEducationalSettingEntered_Returns var response = await HttpClient.SendAsync(request); // Assert - await AssertEx.HtmlResponseHasErrorAsync(response, "IsWorkingInSchoolOrEducationalSetting", "Tell us if you are currently working in a school or other educational setting"); + await AssertEx.HtmlResponseHasErrorAsync(response, "IsWorkingInSchoolOrEducationalSetting", "Select yes if you are currently working in a school or other educational setting"); } [Fact] diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/WorkEmailTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/WorkEmailTests.cs index 5702d831b..751a150d4 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/WorkEmailTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/WorkEmailTests.cs @@ -2,24 +2,6 @@ namespace TeachingRecordSystem.AuthorizeAccess.Tests.PageTests.RequestTrn; public class WorkEmailTests(HostFixture hostFixture) : TestBase(hostFixture) { - [Fact] - public async Task Get_HasPendingTrnRequestSetTrue_RedirectsToSubmitted() - { - // Arrange - var state = CreateNewState(); - state.HasPendingTrnRequest = true; - var journeyInstance = await CreateJourneyInstance(state); - - var request = new HttpRequestMessage(HttpMethod.Get, $"/request-trn/work-email?{journeyInstance.GetUniqueIdQueryParameter()}"); - - // Act - var response = await HttpClient.SendAsync(request); - - // Assert - Assert.Equal(StatusCodes.Status302Found, (int)response.StatusCode); - Assert.Equal($"/request-trn/submitted?{journeyInstance.GetUniqueIdQueryParameter()}", response.Headers.Location?.OriginalString); - } - [Fact] public async Task Get_ValidRequest_RendersExpectedContent() { @@ -54,24 +36,6 @@ public async Task Get_ValidRequestWithPopulatedDataInJourneyState_PopulatesModel Assert.Equal(email, doc.GetElementById("WorkEmail")?.GetAttribute("value")); } - [Fact] - public async Task Post_HasPendingTrnRequestSetTrue_RedirectsToSubmitted() - { - // Arrange - var state = CreateNewState(); - state.HasPendingTrnRequest = true; - var journeyInstance = await CreateJourneyInstance(state); - - var request = new HttpRequestMessage(HttpMethod.Post, $"/request-trn/work-email?{journeyInstance.GetUniqueIdQueryParameter()}"); - - // Act - var response = await HttpClient.SendAsync(request); - - // Assert - Assert.Equal(StatusCodes.Status302Found, (int)response.StatusCode); - Assert.Equal($"/request-trn/submitted?{journeyInstance.GetUniqueIdQueryParameter()}", response.Headers.Location?.OriginalString); - } - [Fact] public async Task Post_EmptyEmailAddressEntered_ReturnsError() { @@ -163,34 +127,4 @@ public async Task Post_ValidRequestWithValidDataAndFromCheckAnswersTrue_Redirect Assert.Equal(StatusCodes.Status302Found, (int)response.StatusCode); Assert.Equal($"/request-trn/check-answers?{journeyInstance.GetUniqueIdQueryParameter()}", response.Headers.Location?.OriginalString); } - - [Fact] - public async Task Post_RequestForEmailWithOpenTasks_RedirectsToEmailInUse() - { - // Arrange - var email = Faker.Internet.Email(); - var state = CreateNewState(); - var journeyInstance = await CreateJourneyInstance(state); - var person = await TestData.CreatePersonAsync(); - await TestData.CreateCrmTaskAsync(x => - { - x.WithPersonId(person.ContactId); - x.WithEmailAddress(email); - }); - - var request = new HttpRequestMessage(HttpMethod.Post, $"/request-trn/work-email?{journeyInstance.GetUniqueIdQueryParameter()}") - { - Content = new FormUrlEncodedContent(new Dictionary - { - { "WorkEmail", email } - }) - }; - - // Act - var response = await HttpClient.SendAsync(request); - - // Assert - Assert.Equal(StatusCodes.Status302Found, (int)response.StatusCode); - Assert.Equal($"/request-trn/emailinuse?{journeyInstance.GetUniqueIdQueryParameter()}", response.Headers.Location?.OriginalString); - } }