Ejemplo n.º 1
0
        private async Task <OtpDocument> GetOtpRequest(UserModel user)
        {
            OtpDocument otpDocument = null;

            try
            {
                var iterator = _db.Otp.GetItemLinqQueryable <OtpDocument>()
                               .Where(o => o.UserUuid == user.UserUuid)
                               .ToFeedIterator();

                if (iterator.HasMoreResults)
                {
                    var response = await iterator.ReadNextAsync();

                    otpDocument = response.FirstOrDefault();
                }
            }
            catch (CosmosException cosmosException)
            {
                if (cosmosException.StatusCode == HttpStatusCode.NotFound)
                {
                    otpDocument = null;
                }
            }

            return(otpDocument);
        }
Ejemplo n.º 2
0
 private async Task CreateOtpDocument(UserModel user, DateTime otpGeneratedTime)
 {
     var otpDocument = new OtpDocument()
     {
         id             = $"{Guid.NewGuid():N}",
         UserUuid       = user.UserUuid,
         UserId         = user.GetId(),
         OtpCreatedTime = otpGeneratedTime
     };
     await _db.Otp.CreateItemAsync(otpDocument, new PartitionKey(user.UserUuid));
 }
Ejemplo n.º 3
0
 private async Task CreateOtpDocument(UserModel user, string otp)
 {
     var otpDocument = new OtpDocument(
         id: $"{Guid.NewGuid():N}",
         userId: user.GetId(),
         userUuid: user.UserUuid,
         otpCreatedTime: DateTime.UtcNow,
         otp: otp
         );
     await _otpRepository.Create(otpDocument);
 }
Ejemplo n.º 4
0
        public async Task ShouldDeleteOtpDocumentAfterValidation()
        {
            OtpDocument deletedDoc = null;

            _otpRepository
            .Setup(r => r.Delete(It.IsAny <OtpDocument>()))
            .Callback((OtpDocument doc) => deletedDoc = doc);

            var result = await _otpService.ValidateAsync(_defaultRequest);

            deletedDoc.Should().Be(_defaultOtpDoc);
        }
Ejemplo n.º 5
0
        public void Setup()
        {
            _defaultRequest = CreateRequest();
            _defaultOtpDoc  = CreateOtpDocument();

            (_otpService, _userRepository, _otpRepository, _, _) =
                MoqMockHelper.Create <OtpService, IUserRepository, IOtpRepository, IOtpGenerator, ISmsSender>();

            _userRepository
            .Setup(r => r.Exists(_defaultRequest.User.GetId()))
            .Returns(Task.FromResult(true));
            _otpRepository
            .Setup(r => r.GetOtpRequestOfUser(_defaultRequest.User.UserUuid))
            .Returns(Task.FromResult(_defaultOtpDoc));
        }
Ejemplo n.º 6
0
        public async Task ShouldCreateOtpDocumentOnSuccess()
        {
            OtpDocument docAdded = null;

            _otpRepository.Setup(r => r.Create(It.IsAny <OtpDocument>()))
            .Callback((OtpDocument doc) => docAdded = doc);

            var request = CreateRequest();
            await _otpService.SendAsync(request);

            docAdded.Should().NotBeNull();
            docAdded.id.Should().NotBeNullOrWhiteSpace();
            docAdded.UserUuid.Should().Be(request.User.UserUuid);
            docAdded.UserId.Should().Be(request.User.GetId());
            docAdded.OtpCreatedTime.Should().BeCloseTo(DateTime.UtcNow);
        }
Ejemplo n.º 7
0
 public Task Delete(OtpDocument otpDocument)
 {
     return(_db.Otp.DeleteItemAsync <OtpDocument>(otpDocument.id, new PartitionKey(otpDocument.UserUuid)));
 }
Ejemplo n.º 8
0
 public Task Create(OtpDocument otpDocument)
 {
     return(_db.Otp.CreateItemAsync(otpDocument, new PartitionKey(otpDocument.UserUuid)));
 }