public async Task ThenIfTheNewStatusAttemptsToUpdateALevyAccountToNonLevyNoChangeIsMade()
        {
            var accountId = 12345678;

            _accountRepository.Setup(x => x.GetAccountById(accountId)).ReturnsAsync(
                new Account
            {
                ApprenticeshipEmployerType = (byte)ApprenticeshipEmployerType.Levy
            });

            var command = new AccountLevyStatusCommand
            {
                AccountId = accountId,
                ApprenticeshipEmployerType = ApprenticeshipEmployerType.NonLevy
            };

            await _accountLevyStatusCommandHandler.Handle(command);

            _accountRepository.Verify(x => x.SetAccountLevyStatus(accountId, ApprenticeshipEmployerType.Levy), Times.Never);

            _eventPublisher.Verify(x => x.Publish(It.Is <ApprenticeshipEmployerTypeChangeEvent>(c =>
                                                                                                c.AccountId.Equals(accountId) &&
                                                                                                c.ApprenticeshipEmployerType.Equals(ApprenticeshipEmployerType.Levy))), Times.Never);
        }
        public async Task ThenTheAccountLevyStatusIsChangedAndAnEventIsPublished()
        {
            var accountId = 12345678;

            _accountRepository.Setup(x => x.GetAccountById(accountId)).ReturnsAsync(
                new Account
            {
                ApprenticeshipEmployerType = (byte)ApprenticeshipEmployerType.Unknown
            });

            var command = new AccountLevyStatusCommand
            {
                AccountId = accountId,
                ApprenticeshipEmployerType = ApprenticeshipEmployerType.Levy
            };

            await _accountLevyStatusCommandHandler.Handle(command);

            _accountRepository.Verify(x => x.SetAccountLevyStatus(accountId, ApprenticeshipEmployerType.Levy), Times.Once);

            _eventPublisher.Verify(x => x.Publish(It.Is <ApprenticeshipEmployerTypeChangeEvent>(c =>
                                                                                                c.AccountId.Equals(accountId) &&
                                                                                                c.ApprenticeshipEmployerType.Equals(ApprenticeshipEmployerType.Levy))), Times.Once);
        }