Exemplo n.º 1
0
        public async Task <bool> VerifyCaptchaAsync(string captchaToken, string ip)
        {
            string secret   = _configuration["ReCaptcha3:SecretKey"];
            double minScore = _configuration.GetValue <double>("ReCaptcha3:AcceptedMinScore");

            RecaptchaVerificationResponseModel result = await GetCaptchaResponseAsync(captchaToken, ip, secret);

            if (result.Success && result.Score > minScore)
            {
                return(true);
            }

            return(false);
        }
        private async Task GetCaptchaResponseAsync_OnCentainHttpResponseValues_ReturnsCorrectBoolean(double score, bool success, bool expected)
        {
            _responseObject = new RecaptchaVerificationResponseModel()
            {
                Score   = score,
                Success = success,
            };
            string              responseJsonContent = JsonConvert.SerializeObject(_responseObject);
            HttpContent         content             = new StringContent(responseJsonContent, Encoding.UTF8, "application/json");
            HttpResponseMessage httpResponse        = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = content
            };

            _fakeHttpMessageHandlerMock.Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(httpResponse);

            bool result = await _service.VerifyCaptchaAsync(_testToken, _testIp);

            Assert.Equal(expected, result);
        }