コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }