public void UploadFaceCaptureImageShouldSucceed()
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(HttpStatusCode.OK);

            Action act = () => docScanClient.UploadFaceCaptureImage(_someSessionId, _someResourceId, _uploadFaceCaptureImagePayload);

            Assert.That.DoesNotThrowException(act);
        }
Esempio n. 2
0
        public HomeController(IHttpContextAccessor httpContextAccessor)
        {
            var request = httpContextAccessor.HttpContext.Request;

            _baseUrl = $"{request.Scheme}://{request.Host}";;
            _apiUrl  = GetApiUrl();
            _client  = GetDocScanClient(_apiUrl);
        }
        public void DeleteSessionAsyncShouldThrowForNonSuccessStatusCode(HttpStatusCode httpStatusCode)
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(httpStatusCode);

            Assert.ThrowsExceptionAsync <DocScanException>(async() =>
            {
                await docScanClient.DeleteSessionAsync("someSessionId");
            });
        }
        public void DeleteMediaContentShouldThrowForNonSuccessStatusCode(HttpStatusCode httpStatusCode)
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(httpStatusCode);

            var aggregateException = Assert.ThrowsException <AggregateException>(() =>
            {
                docScanClient.DeleteMediaContent("someSessionId", "someMediaId");
            });

            Assert.IsTrue(TestTools.Exceptions.IsExceptionInAggregateException <DocScanException>(aggregateException));
        }
        public void UploadFaceCaptureImageShouldThrowForNonSuccessStatusCode(HttpStatusCode httpStatusCode)
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(httpStatusCode);

            var aggregateException = Assert.ThrowsException <AggregateException>(() =>
            {
                docScanClient.UploadFaceCaptureImage(_someSessionId, _someResourceId, _uploadFaceCaptureImagePayload);
            });

            Assert.IsTrue(TestTools.Exceptions.IsExceptionInAggregateException <DocScanException>(aggregateException));
        }
        public void GetSessionConfigurationShouldThrowForNonSuccessStatusCode(HttpStatusCode httpStatusCode)
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(httpStatusCode);

            var aggregateException = Assert.ThrowsException <AggregateException>(() =>
            {
                docScanClient.GetSessionConfiguration(_someSessionId);
            });

            Assert.IsTrue(TestTools.Exceptions.IsExceptionInAggregateException <DocScanException>(aggregateException));
        }
        public void GetSupportedDocumentsShouldThrowForNonSuccessStatusCode(HttpStatusCode httpStatusCode)
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(httpStatusCode);

            var aggregateException = Assert.ThrowsException <AggregateException>(() =>
            {
                docScanClient.GetSupportedDocuments();
            });

            Assert.IsTrue(TestTools.Exceptions.IsExceptionInAggregateException <DocScanException>(aggregateException));
        }
        public void CreateSessionShouldThrowForNonSuccessStatusCode(HttpStatusCode httpStatusCode)
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(httpStatusCode);

            var aggregateException = Assert.ThrowsException <AggregateException>(() =>
            {
                CreateSessionResult result = docScanClient.CreateSession(
                    new SessionSpecificationBuilder().Build());
            });

            Assert.IsTrue(TestTools.Exceptions.IsExceptionInAggregateException <DocScanException>(aggregateException));
        }
        public void CreateFaceCaptureResourceShouldSucceed()
        {
            string        id     = "someId";
            int           frames = 4;
            dynamic       createFaceCaptureResourceResponse = new { id, frames };
            DocScanClient docScanClient = SetupDocScanClient(createFaceCaptureResourceResponse);

            CreateFaceCaptureResourceResponse result = docScanClient.CreateFaceCaptureResource(_someSessionId, _createFaceCaptureResourcePayload);

            Assert.AreEqual(id, result.Id);
            Assert.AreEqual(frames, result.Frames);
        }
        public void ShouldParseIdentityProfileResponse()
        {
            string mediaId = "c69ff2db-6caf-4e74-8386-037711bbc8d7";
            string getSessionResult;

            using (StreamReader r = File.OpenText("TestData/GetSessionResultWithIdentityProfile.json"))
            {
                getSessionResult = r.ReadToEnd();
            }

            var successResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(getSessionResult),
            };

            Mock <HttpMessageHandler> handlerMock = Auth.Tests.Common.Http.SetupMockMessageHandler(successResponse);
            var httpClient = new HttpClient(handlerMock.Object);

            DocScanClient docScanClient = new DocScanClient(_sdkId, _keyPair, httpClient);

            GetSessionResult result = docScanClient.GetSession("some-session-id");

            Assert.AreEqual("DONE", result.IdentityProfile.Result);
            Assert.AreEqual("someStringHere", result.IdentityProfile.SubjectId);
            Assert.AreEqual("MANDATORY_DOCUMENT_COULD_NOT_BE_PROVIDED", result.IdentityProfile.FailureReason.ReasonCode);

            Assert.AreEqual("UK_TFIDA", result.IdentityProfile.Report["trust_framework"]);
            JToken expectedSchemesCompliance = JToken.FromObject(
                new[]
            {
                new
                {
                    scheme = new
                    {
                        type      = "DBS",
                        objective = "STANDARD"
                    },
                    requirements_met          = true,
                    requirements_not_met_info = "some string here"
                }
            });

            Assert.IsTrue(JToken.DeepEquals(
                              JToken.FromObject(expectedSchemesCompliance),
                              result.IdentityProfile.Report["schemes_compliance"]));

            Assert.AreEqual(mediaId, result.IdentityProfile.Report["media"]["id"]);
        }
        public void GetMediaContentShouldReturnNullFor204Response()
        {
            var noContentResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.NoContent,
                Content    = null,
            };

            Mock <HttpMessageHandler> handlerMock = Auth.Tests.Common.Http.SetupMockMessageHandler(noContentResponse);
            var httpClient = new HttpClient(handlerMock.Object);

            DocScanClient docScanClient = new DocScanClient(_sdkId, _keyPair, httpClient);

            MediaValue mediaValue = docScanClient.GetMediaContent(_someSessionId, _someMediaId);

            Assert.IsNull(mediaValue);
        }
        public void GetMediaContentShouldReturnMedia()
        {
            string contentTypeImageJpeg = "image/jpeg";

            byte[] imageBytes      = Encoding.UTF8.GetBytes("image-body");
            var    successResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new ByteArrayContent(imageBytes),
            };

            successResponse.Content.Headers.Add(Constants.Api.ContentTypeHeader, contentTypeImageJpeg);

            Mock <HttpMessageHandler> handlerMock = Auth.Tests.Common.Http.SetupMockMessageHandler(successResponse);
            var httpClient = new HttpClient(handlerMock.Object);

            DocScanClient docScanClient = new DocScanClient(_sdkId, _keyPair, httpClient);

            MediaValue mediaValue = docScanClient.GetMediaContent(_someSessionId, _someMediaId);

            Assert.IsTrue(imageBytes.SequenceEqual(mediaValue.GetContent()));
            Assert.AreEqual(contentTypeImageJpeg, mediaValue.GetMIMEType());
        }
        public void GetSessionSuccessShouldReturnResult()
        {
            var getSessionResult = new GetSessionResult {
                State = "COMPLETED"
            };

            string jsonResponse = JsonConvert.SerializeObject(getSessionResult);

            var successResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(jsonResponse),
            };

            Mock <HttpMessageHandler> handlerMock = Auth.Tests.Common.Http.SetupMockMessageHandler(successResponse);
            var httpClient = new HttpClient(handlerMock.Object);

            DocScanClient docScanClient = new DocScanClient(_sdkId, _keyPair, httpClient);

            GetSessionResult result = docScanClient.GetSession("some-session-id");

            Assert.AreEqual("COMPLETED", result.State);
            Assert.IsNull(result.BiometricConsentTimestamp);
        }
        public void ShouldReturnBiometricConsentTimestamp()
        {
            var getSessionResult = new GetSessionResult
            {
                BiometricConsentTimestamp = new DateTime(2020, 1, 2, 3, 4, 5, DateTimeKind.Utc)
            };

            string jsonResponse = JsonConvert.SerializeObject(getSessionResult);

            var successResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(jsonResponse),
            };

            Mock <HttpMessageHandler> handlerMock = Http.SetupMockMessageHandler(successResponse);
            var httpClient = new HttpClient(handlerMock.Object);

            DocScanClient docScanClient = new DocScanClient(_sdkId, _keyPair, httpClient);

            GetSessionResult result = docScanClient.GetSession("some-session-id");

            Assert.AreEqual(new DateTime(2020, 1, 2, 3, 4, 5, DateTimeKind.Utc), result.BiometricConsentTimestamp);
        }
        public void ConstructClientWithNullHttpClientShouldSucceed()
        {
            var docScanClient = new DocScanClient(_sdkId, _keyPair, null);

            Assert.IsNotNull(docScanClient);
        }
Esempio n. 16
0
 public IdVerifyController()
 {
     _client = HomeController.GetDocScanClient();
 }
        public void ShouldNotFailForValidKeyPair()
        {
            var docScanClient = new DocScanClient(_sdkId, KeyPair.GetValidKeyStream(), null, null);

            Assert.IsNotNull(docScanClient);
        }
        public void GetSessionConfigurationShouldSucceed()
        {
            int clientSessionTokenTtl = 3600;
            var requestedChecks       = new List <string> {
                "check1", "check2"
            };
            string biometricConsent = "someBiometricConsent";
            var    requiredIdDocumentResourceResponse            = Mock.Of <RequiredIdDocumentResourceResponse>(ctx => ctx.Type == DocScanConstants.IdDocument);
            var    requiredSupplementaryDocumentResourceResponse = Mock.Of <RequiredSupplementaryDocumentResourceResponse>(ctx => ctx.Type == DocScanConstants.SupplementaryDocument);
            var    requiredLivenessResourceResponse     = Mock.Of <RequiredLivenessResourceResponse>(ctx => ctx.Type == DocScanConstants.Liveness);
            var    requiredZoomLivenessResourceResponse = Mock.Of <RequiredZoomLivenessResourceResponse>(ctx => ctx.Type == DocScanConstants.Liveness &&
                                                                                                         ctx.LivenessType == DocScanConstants.Zoom);
            var relyingBusinessAllowedSourceResponse = Mock.Of <AllowedSourceResponse>(ctx => ctx.Type == DocScanConstants.RelyingBusiness);
            var allowedSources = new List <AllowedSourceResponse> {
                relyingBusinessAllowedSourceResponse
            };
            var id    = "someId";
            var state = "someState";
            var requiredFaceCaptureResourceResponse = Mock.Of <RequiredFaceCaptureResourceResponse>(ctx => ctx.Type == DocScanConstants.FaceCapture &&
                                                                                                    ctx.AllowedSources == allowedSources &&
                                                                                                    ctx.Id == id &&
                                                                                                    ctx.State == state);
            List <RequiredResourceResponse> requiredResourceResponses = new List <RequiredResourceResponse>
            {
                requiredIdDocumentResourceResponse,
                requiredSupplementaryDocumentResourceResponse,
                requiredLivenessResourceResponse,
                requiredZoomLivenessResourceResponse,
                requiredFaceCaptureResourceResponse
            };
            dynamic captureResponse = new
            {
                biometric_consent  = biometricConsent,
                required_resources = requiredResourceResponses
            };
            dynamic sessionConfigurationResponse = new
            {
                client_session_token_ttl = clientSessionTokenTtl,
                session_id       = _someSessionId,
                requested_checks = requestedChecks,
                capture          = captureResponse
            };
            DocScanClient docScanClient = SetupDocScanClient(sessionConfigurationResponse);

            SessionConfigurationResponse result = docScanClient.GetSessionConfiguration(_someSessionId);

            var faceCaptureResourceRequirement = result.Capture.GetFaceCaptureResourceRequirements().First();

            Assert.AreEqual(clientSessionTokenTtl, result.ClientSessionTokenTtl);
            Assert.AreEqual(_someSessionId, result.SessionId);
            CollectionAssert.AreEqual(requestedChecks, result.RequestedChecks);
            Assert.AreEqual(biometricConsent, result.Capture.BiometricConsent);
            Assert.AreEqual(requiredResourceResponses.Count, result.Capture.RequiredResources.Count);
            Assert.AreEqual(2, result.Capture.GetDocumentResourceRequirements().Count);
            Assert.AreEqual(1, result.Capture.GetIdDocumentResourceRequirements().Count);
            Assert.AreEqual(1, result.Capture.GetSupplementaryResourceRequirements().Count);
            Assert.AreEqual(2, result.Capture.GetLivenessResourceRequirements().Count);
            Assert.AreEqual(1, result.Capture.GetZoomLivenessResourceRequirements().Count);
            Assert.AreEqual(1, result.Capture.GetFaceCaptureResourceRequirements().Count);
            Assert.IsTrue(faceCaptureResourceRequirement.IsRelyingBusinessAllowed);
            Assert.AreEqual(id, faceCaptureResourceRequirement.Id);
            Assert.AreEqual(state, faceCaptureResourceRequirement.State);
        }
        public void DeleteSessionSuccessShouldSucceed()
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(HttpStatusCode.OK);

            docScanClient.DeleteSession("some-session-id");
        }
        public void DeleteMediaContentSuccessShouldSucceed()
        {
            DocScanClient docScanClient = SetupDocScanClientResponse(HttpStatusCode.OK);

            docScanClient.DeleteMediaContent("some-session-id", "some-media-id");
        }