Esempio n. 1
0
        public void CandidateNotFound()
        {
            const string phoneNumber = "0123456789";

            var candidateReadRepository = new Mock <ICandidateReadRepository>();

            candidateReadRepository.Setup(r => r.GetAllCandidatesWithPhoneNumber(phoneNumber, true)).Throws(new CustomException(ErrorCodes.CandidateNotFoundError));
            var communicationService = new Mock <ICommunicationService>();
            var strategy             = new RequestEmailReminderStrategyBuilder().With(candidateReadRepository).With(communicationService).Build();

            Action action = () => { strategy.RequestEmailReminder(phoneNumber); };

            action.ShouldThrow <CustomException>().Which.Code.Should().Be(ErrorCodes.CandidateNotFoundError);
            candidateReadRepository.Verify(r => r.GetAllCandidatesWithPhoneNumber(phoneNumber, true), Times.Once);
            candidateReadRepository.Verify(r => r.GetAllCandidatesWithPhoneNumber(phoneNumber, false), Times.Never);
            communicationService.Verify(cs => cs.SendMessageToCandidate(It.IsAny <Guid>(), MessageTypes.SendEmailReminder, It.IsAny <IEnumerable <CommunicationToken> >()), Times.Never);
        }
Esempio n. 2
0
        public void MobileNumberVerified()
        {
            const string phoneNumber = "0123456789";

            var candidateReadRepository = new Mock <ICandidateReadRepository>();
            var candidate = new CandidateBuilder(Guid.NewGuid()).PhoneNumber(phoneNumber).VerifiedMobile(true).Build();

            candidateReadRepository.Setup(r => r.GetAllCandidatesWithPhoneNumber(phoneNumber, true)).Returns(new List <Candidate> {
                candidate
            });
            var communicationService = new Mock <ICommunicationService>();
            var strategy             = new RequestEmailReminderStrategyBuilder().With(candidateReadRepository).With(communicationService).Build();

            Action action = () => { strategy.RequestEmailReminder(phoneNumber); };

            action.ShouldNotThrow();
            communicationService.Verify(cs => cs.SendMessageToCandidate(It.IsAny <Guid>(), MessageTypes.SendEmailReminder, It.IsAny <IEnumerable <CommunicationToken> >()), Times.Once);
        }
Esempio n. 3
0
        public void TwoCandidatesNotVerified()
        {
            const string phoneNumber = "0123456789";

            var candidateReadRepository = new Mock <ICandidateReadRepository>();
            var candidateOne            = new CandidateBuilder(Guid.NewGuid()).PhoneNumber(phoneNumber).VerifiedMobile(false).Build();
            var candidateTwo            = new CandidateBuilder(Guid.NewGuid()).PhoneNumber(phoneNumber).VerifiedMobile(false).Build();

            candidateReadRepository.Setup(r => r.GetAllCandidatesWithPhoneNumber(phoneNumber, true)).Returns(new List <Candidate> {
                candidateOne, candidateTwo
            });
            var communicationService = new Mock <ICommunicationService>();
            var strategy             = new RequestEmailReminderStrategyBuilder().With(candidateReadRepository).With(communicationService).Build();

            Action action = () => { strategy.RequestEmailReminder(phoneNumber); };

            action.ShouldThrow <CustomException>().Which.Code.Should().Be(Domain.Entities.ErrorCodes.EntityStateError);
            communicationService.Verify(cs => cs.SendMessageToCandidate(It.IsAny <Guid>(), MessageTypes.SendEmailReminder, It.IsAny <IEnumerable <CommunicationToken> >()), Times.Never);
        }