public async Task POST_RemovesAllRetiredUserRegistrations() { // Arrange var testPassword = "******"; object[] registrations = UserOrganisationHelper.CreateRegistrationsInScope(); var controller = UiTestHelper.GetController <ModernSlavery.WebUI.Areas.Account.Controllers.CloseAccountController>( 23322, mockRouteData, registrations); // check we start with the expected amount Assert.AreEqual(2, controller.CurrentUser.UserOrganisations.Count, "Expected to start with 2 registrations"); // Act await controller.CloseAccount(new CloseAccountViewModel { EnterPassword = testPassword }); // Assert user org removed Assert.AreEqual(0, controller.CurrentUser.UserOrganisations.Count, "Expected no registrations after closing account"); }
public async Task POST_SendsAccountClosedNotifications() { // Arrange object[] registrations = UserOrganisationHelper.CreateRegistrationsInScope(); var controller = UiTestHelper.GetController <ModernSlavery.WebUI.Areas.Account.Controllers.CloseAccountController>( 23322, mockRouteData, registrations); var verifiedUser = controller.SharedBusinessLogic.DataRepository.Get <User>((long)23322); var mockEmailQueue = new Mock <IQueue>(); mockEmailQueue .Setup(q => q.AddMessageAsync(It.IsAny <QueueWrapper>())); // Act await controller.CloseAccount(new CloseAccountViewModel { EnterPassword = "******" }); // Assert mockEmailQueue.Verify( x => x.AddMessageAsync( It.Is <QueueWrapper>( inst => inst.Message.Contains(verifiedUser.EmailAddress) && inst.Type == typeof(CloseAccountCompletedTemplate).FullName)), Times.Once(), $"Expected the users email address using {nameof(CloseAccountCompletedTemplate)} to be in the email send queue"); mockEmailQueue.Verify( x => x.AddMessageAsync( It.Is <QueueWrapper>( inst => inst.Message.Contains(ConfigHelpers.EmailOptions.GEODistributionList) && inst.Type == typeof(OrphanOrganisationTemplate).FullName)), Times.Once(), $"Expected the GEO Email addresses using {nameof(OrphanOrganisationTemplate)} to be in the email send queue"); }