public void Registering_delegate_should_send_SupervisorDelegate_email_for_matching_id_record_only() { // Given const int supervisorDelegateId = 2; var supervisorDelegateIds = new List <int> { 1, 2, 3, 4, 5 }; var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); GivenPendingSupervisorDelegateIdsForEmailAre(supervisorDelegateIds); // When registrationService.RegisterDelegate( model, string.Empty, false, supervisorDelegateId ); // Then A.CallTo(() => frameworkNotificationService.SendSupervisorDelegateAcceptance(supervisorDelegateId, 0)) .MustHaveHappened(); A.CallTo( () => frameworkNotificationService.SendSupervisorDelegateAcceptance( A <int> .That.Matches(id => id != supervisorDelegateId), A <int> ._ ) ).MustNotHaveHappened(); }
public async Task RegisterAdmin_Sets_tc_agreed_to_null_when_registerJourneyContainsTermsAndConditions_is_false() { using var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled); // Given var registrationModel = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); var currentTime = new DateTime(2022, 6, 17, 14, 05, 30); A.CallTo(() => clockService.UtcNow).Returns(currentTime); // When service.RegisterAdmin(registrationModel, false); // Then var user = userDataService.GetAdminUserByEmailAddress(registrationModel.Email) !; var tcAgreed = await connection.GetTCAgreedByAdminIdAsync(user.Id); user.FirstName.Should().Be(registrationModel.FirstName); user.LastName.Should().Be(registrationModel.LastName); user.CentreId.Should().Be(registrationModel.Centre); user.Password.Should().Be(registrationModel.PasswordHash); user.IsCentreAdmin.Should().BeTrue(); user.IsCentreManager.Should().BeTrue(); tcAgreed.Should().BeNull(); }
public void RegisterDelegateByCentre_schedules_welcome_email_if_notify_date_set() { // Given const string baseUrl = "base.com"; var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel( passwordHash: null, notifyDate: new DateTime(2200, 1, 1) ); A.CallTo(() => registrationDataService.RegisterDelegate(model)).Returns(NewCandidateNumber); // When registrationService.RegisterDelegateByCentre(model, baseUrl); // Then A.CallTo( () => passwordResetService.GenerateAndScheduleDelegateWelcomeEmail( model.Email, NewCandidateNumber, baseUrl, model.NotifyDate.Value, "RegisterDelegateByCentre_Refactor" ) ).MustHaveHappened(1, Times.Exactly); }
public async Task RegisterAdmin_sets_all_fields_correctly_on_centre_manager_admin_registration() { using var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled); // Given var registrationModel = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); var currentTime = new DateTime(2022, 6, 17, 14, 05, 30); A.CallTo(() => clockService.UtcNow).Returns(currentTime); // When service.RegisterAdmin(registrationModel, true); // Then var user = userDataService.GetAdminUserByEmailAddress(registrationModel.Email) !; var tcAgreed = await connection.GetTCAgreedByAdminIdAsync(user.Id); using (new AssertionScope()) { user.FirstName.Should().Be(registrationModel.FirstName); user.LastName.Should().Be(registrationModel.LastName); user.CentreId.Should().Be(registrationModel.Centre); user.Password.Should().Be(registrationModel.PasswordHash); user.IsCentreAdmin.Should().BeTrue(); user.IsCentreManager.Should().BeTrue(); tcAgreed.Should().Be(currentTime); } }
public void RegisterDelegateByCentre_should_add_CandidateId_to_all_SupervisorDelegate_records_found_by_email() { // Given const string baseUrl = "base.com"; var supervisorDelegateIds = new List <int> { 1, 2, 3, 4, 5 }; var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); GivenPendingSupervisorDelegateIdsForEmailAre(supervisorDelegateIds); A.CallTo(() => registrationDataService.RegisterDelegate(model)) .Returns(NewCandidateNumber); A.CallTo( () => userDataService.GetDelegateUserByCandidateNumber( NewCandidateNumber, RegistrationModelTestHelper.Centre ) ) .Returns(new DelegateUser { Id = 777 }); // When registrationService.RegisterDelegateByCentre(model, baseUrl); // Then A.CallTo( () => supervisorDelegateService.AddDelegateIdToSupervisorDelegateRecords( A <IEnumerable <int> > .That.IsSameSequenceAs(supervisorDelegateIds), 777 ) ).MustHaveHappened(); }
public void Registering_delegate_calls_data_service_to_set_prn() { // Given const string clientIp = ApprovedIpPrefix + ".100"; var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); // When var(_, approved) = registrationService.RegisterDelegate( model, clientIp, false ); // Then A.CallTo( () => userDataService.UpdateDelegateProfessionalRegistrationNumber( A <int> ._, model.ProfessionalRegistrationNumber, true ) ) .MustHaveHappenedOnceExactly(); approved.Should().BeTrue(); }
public void Registering_delegate_should_add_Confirmed_only_to_SupervisorDelegate_record_with_matching_id() { // Given const int matchingSupervisorDelegateId = 2; var supervisorDelegateIds = new List <int> { 1, 2, 3, 4, 5 }; var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); GivenPendingSupervisorDelegateIdsForEmailAre(supervisorDelegateIds); // When registrationService.RegisterDelegate( model, string.Empty, false, matchingSupervisorDelegateId ); // Then A.CallTo( () => supervisorDelegateService.ConfirmSupervisorDelegateRecord(matchingSupervisorDelegateId) ).MustHaveHappened(); A.CallTo( () => supervisorDelegateService.ConfirmSupervisorDelegateRecord( A <int> .That.Matches(id => id != matchingSupervisorDelegateId) ) ).MustNotHaveHappened(); }
public void AdminRegistrationModel_without_isCmsManager_or_isCmsAdmin_populates_expected_fields() { // Given var adminRegistrationModel = RegistrationModelTestHelper.GetDefaultAdminRegistrationModel(isCmsAdmin: false, isCmsManager: false); // Then adminRegistrationModel.IsContentManager.Should().BeFalse(); adminRegistrationModel.ImportOnly.Should().BeFalse(); }
public void Registering_delegate_returns_candidate_number() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); // When var candidateNumber = registrationService.RegisterDelegate(model, string.Empty, false) .candidateNumber; // Then candidateNumber.Should().Be(NewCandidateNumber); }
public void Error_in_RegisterCentreManager_throws_exception() { // Given var model = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); A.CallTo(() => registrationDataService.RegisterDelegate(A <DelegateRegistrationModel> ._)).Returns("-1"); // When Action act = () => registrationService.RegisterCentreManager(model, 1); // Then act.Should().Throw <Exception>(); }
public void Error_when_registering_delegate_returns_error_code() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); A.CallTo(() => registrationDataService.RegisterDelegate(model)).Returns("-1"); // When Action act = () => registrationService.RegisterDelegate(model, string.Empty, false); // Then act.Should().Throw <DelegateCreationFailedException>(); }
public void Registering_automatically_approved_does_not_send_email() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); // When registrationService.RegisterDelegate(model, "123.456.789.100", false); // Then A.CallTo( () => emailService.SendEmail(A <Email> ._) ).MustNotHaveHappened(); }
public void Registering_admin_delegate_does_not_send_email() { // Given var model = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); // When registrationService.RegisterCentreManager(model, 1); // Then A.CallTo( () => emailService.SendEmail(A <Email> ._) ).MustNotHaveHappened(); }
public void GetNotifcationRoles_returns_1_2_for_new_centre_manager() { // Given var expectedRoles = new List <int> { 1, 2 }; var adminRegistrationModel = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); // When var result = adminRegistrationModel.GetNotificationRoles(); // Then result.Should().BeEquivalentTo(expectedRoles); }
public void RegisterDelegateByCentre_does_not_set_password_if_passwordHash_is_null() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); model.PasswordHash = null; A.CallTo(() => registrationDataService.RegisterDelegate(model)).Returns(NewCandidateNumber); // When registrationService.RegisterDelegateByCentre(model, ""); // Then A.CallTo(() => registrationDataService.RegisterDelegate(model)).MustHaveHappened(1, Times.Exactly); A.CallTo(() => passwordDataService.SetPasswordByCandidateNumber(A <string> ._, A <string> ._)) .MustNotHaveHappened(); }
public void Registering_admin_delegate_registers_delegate_as_approved() { // Given var model = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); // When registrationService.RegisterCentreManager(model, 1); // Then A.CallTo( () => registrationDataService.RegisterDelegate( A <DelegateRegistrationModel> .That.Matches(d => d.Approved) ) ) .MustHaveHappened(); }
public void Registering_delegate_on_localhost_registers_delegate_as_approved() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); // When registrationService.RegisterDelegate(model, "::1", false); // Then A.CallTo( () => registrationDataService.RegisterDelegate( A <DelegateRegistrationModel> .That.Matches(d => d.Approved) ) ) .MustHaveHappened(); }
public void Registering_delegate_with_unapproved_IP_registers_delegate_as_unapproved() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); // When registrationService.RegisterDelegate(model, "987.654.321.100", false); // Then A.CallTo( () => registrationDataService.RegisterDelegate( A <DelegateRegistrationModel> .That.Matches(d => !d.Approved) ) ) .MustHaveHappened(); }
public void Registering_delegate_should_set_password() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); // When registrationService.RegisterDelegate(model, string.Empty, false); // Then A.CallTo( () => passwordDataService.SetPasswordByCandidateNumber( NewCandidateNumber, RegistrationModelTestHelper.PasswordHash ) ).MustHaveHappened(); }
public void Registering_delegate_sends_approval_email_with_refactored_tracking_system_link() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); // When registrationService.RegisterDelegate(model, string.Empty, true); // Then A.CallTo( () => notificationDataService.GetAdminRecipientsForCentreNotification( model.Centre, 4 ) ).MustHaveHappened(); }
public void Registering_admin_delegate_should_set_password() { // Given var model = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); // When registrationService.RegisterCentreManager(model, 1); // Then A.CallTo( () => passwordDataService.SetPasswordByCandidateNumber( NewCandidateNumber, RegistrationModelTestHelper.PasswordHash ) ).MustHaveHappened(); }
public void RegisterDelegateByCentre_should_not_send_SupervisorDelegate_email() { // Given const string baseUrl = "base.com"; var supervisorDelegateIds = new List <int> { 1, 2, 3, 4, 5 }; var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); GivenPendingSupervisorDelegateIdsForEmailAre(supervisorDelegateIds); // When registrationService.RegisterDelegateByCentre(model, baseUrl); // Then A.CallTo(() => frameworkNotificationService.SendSupervisorDelegateAcceptance(A <int> ._, A <int> ._)) .MustNotHaveHappened(); }
public void RegisterDelegateByCentre_should_not_add_Confirmed_to_any_SupervisorDelegate_record() { // Given const string baseUrl = "base.com"; var supervisorDelegateIds = new List <int> { 1, 2, 3, 4, 5 }; var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); GivenPendingSupervisorDelegateIdsForEmailAre(supervisorDelegateIds); // When registrationService.RegisterDelegateByCentre(model, baseUrl); // Then A.CallTo(() => supervisorDelegateService.ConfirmSupervisorDelegateRecord(A <int> ._)) .MustNotHaveHappened(); }
public void Registering_delegate_should_not_update_any_SupervisorDelegate_records_if_none_found() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); GivenNoPendingSupervisorDelegateRecordsForEmail(); // When registrationService.RegisterDelegate(model, string.Empty, false, 999); // Then A.CallTo( () => supervisorDelegateService.AddDelegateIdToSupervisorDelegateRecords( A <IEnumerable <int> > ._, A <int> ._ ) ).MustNotHaveHappened(); }
public void RegisterCentreManager_calls_data_service_to_set_prn() { // Given var model = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); // When registrationService.RegisterCentreManager(model, 1, true); // Then A.CallTo( () => userDataService.UpdateDelegateProfessionalRegistrationNumber( A <int> ._, model.ProfessionalRegistrationNumber, true ) ) .MustHaveHappenedOnceExactly(); }
public void Sets_all_fields_correctly_on_centre_manager_admin_registration() { using var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled); // Given var registrationModel = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); // When service.RegisterAdmin(registrationModel); // Then var user = userDataService.GetAdminUserByEmailAddress(registrationModel.Email) !; user.FirstName.Should().Be(registrationModel.FirstName); user.LastName.Should().Be(registrationModel.LastName); user.CentreId.Should().Be(registrationModel.Centre); user.Password.Should().Be(registrationModel.PasswordHash); user.IsCentreAdmin.Should().BeTrue(); user.IsCentreManager.Should().BeTrue(); }
public void RegisterCentreManager_calls_all_relevant_registration_methods() { // Given var model = RegistrationModelTestHelper.GetDefaultCentreManagerRegistrationModel(); // When registrationService.RegisterCentreManager(model, 1); // Then A.CallTo(() => registrationDataService.RegisterDelegate(A <DelegateRegistrationModel> ._)) .MustHaveHappened(1, Times.Exactly); A.CallTo( () => passwordDataService.SetPasswordByCandidateNumber(A <string> ._, A <string> ._) ).MustHaveHappened(1, Times.Exactly); A.CallTo(() => registrationDataService.RegisterAdmin(model)) .MustHaveHappened(1, Times.Exactly); A.CallTo(() => centresDataService.SetCentreAutoRegistered(RegistrationModelTestHelper.Centre)) .MustHaveHappened(1, Times.Exactly); }
public void RegisterDelegateByCentre_calls_data_service_to_set_prn() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); A.CallTo(() => registrationDataService.RegisterDelegate(model)).Returns(NewCandidateNumber); // When registrationService.RegisterDelegateByCentre(model, ""); // Then A.CallTo( () => userDataService.UpdateDelegateProfessionalRegistrationNumber( A <int> ._, model.ProfessionalRegistrationNumber, true ) ) .MustHaveHappenedOnceExactly(); }
public void Error_when_registering_delegate_fails_fast() { // Given var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); A.CallTo(() => registrationDataService.RegisterDelegate(model)).Returns("-1"); // When Action act = () => registrationService.RegisterDelegate(model, string.Empty, false); // Then act.Should().Throw <DelegateCreationFailedException>(); A.CallTo( () => emailService.SendEmail(A <Email> ._) ).MustNotHaveHappened(); A.CallTo( () => passwordDataService.SetPasswordByCandidateNumber(A <string> ._, A <string> ._) ).MustNotHaveHappened(); }
public void RegisterDelegateByCentre_does_not_schedule_welcome_email_if_notify_date_not_set() { // Given const string baseUrl = "base.com"; var model = RegistrationModelTestHelper.GetDefaultDelegateRegistrationModel(); A.CallTo(() => registrationDataService.RegisterDelegate(model)).Returns(NewCandidateNumber); // When registrationService.RegisterDelegateByCentre(model, baseUrl); // Then A.CallTo( () => passwordResetService.GenerateAndScheduleDelegateWelcomeEmail( A <string> ._, NewCandidateNumber, A <string> ._, A <DateTime> ._, A <string> ._ ) ).MustNotHaveHappened(); }