public async Task WhenVacancyNotFound_ShouldRaiseException() { var id = Guid.NewGuid(); var expectedExceptionMessage = string.Format(TransferEmployerReviewToQAReviewCommandHandler.VacancyNotFoundExceptionMessageFormat, id); var command = new TransferEmployerReviewToQAReviewCommand(id, _existingUserGuid, UserEmailAddress, UserName); var exception = await Assert.ThrowsAsync <ArgumentException>(async() => await _sut.Handle(command, new CancellationToken())); exception.Message.Should().Be(expectedExceptionMessage); }
public async Task WhenVacancyReferenceNotSet_ShouldRaiseException() { var id = Guid.NewGuid(); var expectedExceptionMessage = string.Format(TransferEmployerReviewToQAReviewCommandHandler.MissingReferenceNumberExceptionMessageFormat, id); var existingVacancy = new Vacancy { Id = id }; _mockVacancyRepository.Setup(x => x.GetVacancyAsync(existingVacancy.Id)) .ReturnsAsync(existingVacancy); var command = new TransferEmployerReviewToQAReviewCommand(id, _existingUserGuid, UserEmailAddress, UserName); var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => await _sut.Handle(command, new CancellationToken())); exception.Message.Should().Be(expectedExceptionMessage); }
public async Task WhenVacancyIsValid_ShouldUpdateVacancyAndPublishMessage() { var id = Guid.NewGuid(); var expectedExceptionMessage = string.Format(TransferEmployerReviewToQAReviewCommandHandler.InvalidStateExceptionMessageFormat, id, VacancyStatus.Draft); var existingVacancy = new Vacancy { Id = id, VacancyReference = 1, Status = VacancyStatus.Review }; _mockVacancyRepository.Setup(x => x.GetVacancyAsync(existingVacancy.Id)) .ReturnsAsync(existingVacancy); var command = new TransferEmployerReviewToQAReviewCommand(id, _existingUserGuid, UserEmailAddress, UserName); await _sut.Handle(command, new CancellationToken()); _mockVacancyRepository.Verify(x => x.GetVacancyAsync(It.IsAny <Guid>()), Times.Once); _mockVacancyRepository.Verify(x => x.UpdateAsync(It.Is <Vacancy>(v => v.Status == VacancyStatus.Submitted)), Times.Once); _mockMessaging.Verify(x => x.PublishEvent(It.IsAny <VacancySubmittedEvent>()), Times.Once); }