public async Task TrySendEmailOnTimeout()
 {
     var userId = 0;
     var user   = new User
     {
         UserId = userId
     };
     var seconds = 3;
     IEmailVerifierRepository repo = MockEmailRepo(userId, seconds);
     var emailCodeSenderService    = new EmailCodeSenderService(repo, null);
     await Assert.ThrowsAsync <TimeoutException>(() =>
                                                 emailCodeSenderService.SendCodeByEmail(user, "email", 0, "Link"));
 }
        public void GetTimeoutTests(int seconds)
        {
            // Arrange
            var userId                    = 0;
            int expectedSeconds           = EmailCodeSenderService.EMAIL_TIMEOUT * 60 - seconds;
            IEmailVerifierRepository repo = MockEmailRepo(userId, seconds);
            var emailCodeSenderService    = new EmailCodeSenderService(repo, null);
            // act
            int actualSeconds = emailCodeSenderService.GetTimeout(userId);

            // assert
            Assert.Equal(expectedSeconds, actualSeconds);
        }
 public EmailCodeSenderService(IEmailVerifierRepository emailVerifierRepository, TemplateSender emailSender)
 {
     this.emailVerifierRepository = emailVerifierRepository;
     this.emailSender             = emailSender;
 }