public async Task GivenExistingEmployerOwnedVacancy_ThenDoNotProcessTransfer() { var existingVacancy = GetTestEmployerOwnedVacancy(); _mockVacancyRepository.Setup(x => x.GetVacancyAsync(existingVacancy.VacancyReference.GetValueOrDefault())) .ReturnsAsync(existingVacancy); var command = new TransferVacancyToLegalEntityCommand(existingVacancy.VacancyReference.Value, _existingUserGuid, UserEmailAddress, UserName, TransferReason.BlockedByQa); await _sut.Handle(command, CancellationToken.None); _mockVacancyRepository.Verify(x => x.GetVacancyAsync(It.IsAny <long>()), Times.Once); _mockVacancyRepository.Verify(x => x.UpdateAsync(existingVacancy), Times.Never); _mockMessaging.Verify(x => x.PublishEvent(It.IsAny <VacancyTransferredEvent>()), Times.Never); }
public async Task GivenExistingLiveProviderOwnedVacancy_ThenProcessTransferAndVerifyVacancyClosedEventRaised(TransferReason transferReason) { var existingVacancy = GetTestProviderOwnedVacancy(); existingVacancy.Status = VacancyStatus.Live; _mockVacancyRepository.Setup(x => x.GetVacancyAsync(existingVacancy.VacancyReference.GetValueOrDefault())) .ReturnsAsync(existingVacancy); var command = new TransferVacancyToLegalEntityCommand(existingVacancy.VacancyReference.GetValueOrDefault(), _existingUserGuid, UserEmailAddress, UserName, transferReason); await _sut.Handle(command, CancellationToken.None); _mockVacancyRepository.Verify(x => x.GetVacancyAsync(It.IsAny <long>()), Times.Once); _mockVacancyReviewTransferService.Verify(x => x.CloseVacancyReview(existingVacancy.VacancyReference.Value, transferReason), Times.Never); _mockMessaging.Verify(x => x.PublishEvent(It.IsAny <VacancyClosedEvent>()), Times.Once); _mockMessaging.Verify(x => x.PublishEvent(It.IsAny <VacancyTransferredEvent>()), Times.Once); }