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");
        }