Example #1
0
        public void Exchange_WithValidToken_ReturnsSuccessAndUpdatesMagicLinkTokenStatusId()
        {
            var candidate = new Candidate()
            {
                MagicLinkTokenExpiresAt = DateTime.UtcNow.AddMinutes(1)
            };
            var token = Guid.NewGuid().ToString();

            _mockCrm.Setup(m => m.MatchCandidates(token)).Returns(new Candidate[] { candidate });

            var result = _service.Exchange(token);

            result.Success.Should().BeTrue();
            result.Candidate.Should().Be(candidate);
            result.Status.Should().Be(CandidateMagicLinkExchangeResult.ExchangeStatus.Valid);
            candidate.MagicLinkTokenStatusId.Should().Be((int)Candidate.MagicLinkTokenStatus.Exchanged);
        }