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