示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }