public async Task ValidateAndReturnObject_passedValidKey_returnTrue() { // arrange var invKeyDate = new DateTime(2005, 4, 2, 21, 37, 00); var firstInvKey = new InvitationKey { Id = Constants.FIRST_INV_KEY_ID, InviterId = Constants.APP_ADMIN_ID, CreatedAt = invKeyDate, Key = "1234567890", }; _context.InvitationKeys.Add(firstInvKey); _context.SaveChanges(); // act var keyCheck = await _invitationKeyService.ValidateAndReturnObject("1234567890"); // assert Assert.IsTrue(keyCheck.Succeed); }
/// <summary> /// Checks ReCaptcha and all payload properties. /// </summary> /// <returns> /// /// 460 - when invitation key is invalid (Constants.INV_KEY_LENGTH), /// 461 - when invitation key was not found in database, /// 462 - when invitation key was used by another user, /// /// 463 - when new user object properties are invalid, /// 464 - when given email from new user object is already used, /// 465 - when given login from new user object is already used, /// /// 499 - when reCaptcha validation failed, /// </returns> private async Task <DataOrStatusCodeDto <IUser> > CheckReCaptchaValidateKeyAndUser(UserRegisterDto payload, string host) { var reCaptchaSucceed = await _reCaptchaService.IsReCaptchaSucceed(payload.ReCaptchaToken, _config.ReCaptchaSecret, host); if (reCaptchaSucceed) { var keyResult = await _invitationKeyService.ValidateAndReturnObject(payload.InvitationKey); if (keyResult.Succeed) { payload.User.TrimProperties(); return(_userService.ValidateBeforeRegister(payload.User)); } else { return(keyResult.ToFailType <IUser>()); } } else { return(new DataOrStatusCodeDto <IUser>(499, "ReCaptcha failed.")); } }