コード例 #1
0
        public void ShouldBuildWithRequiredDocument()
        {
            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithRequiredDocument(
                    new RequiredIdDocumentBuilder()
                    .WithFilter(
                        new DocumentRestrictionsFilterBuilder()
                        .ForIncludeList()
                        .WithDocumentRestriction(
                            new List <string> {
                "USA"
            },
                            new List <string> {
                "PASSPORT"
            })
                        .Build())
                    .Build())
                .Build();

            RequiredIdDocument result = (RequiredIdDocument)sessionSpec.RequiredDocuments.Single();

            Assert.AreEqual("ID_DOCUMENT", result.Type);
            Assert.AreEqual("DOCUMENT_RESTRICTIONS", result.Filter.Type);

            DocumentRestrictionsFilter filter = (DocumentRestrictionsFilter)result.Filter;

            Assert.AreEqual("WHITELIST", filter.Inclusion);
            Assert.AreEqual("USA", filter.Documents.Single().CountryCodes.Single());
            Assert.AreEqual("PASSPORT", filter.Documents.Single().DocumentTypes.Single());
        }
コード例 #2
0
        public void ShouldNotImplicitlySetAValueForClientSessionTokenTtl()
        {
            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .Build();

            Assert.IsNull(sessionSpec.ClientSessionTokenTtl);
        }
コード例 #3
0
        public void ShouldNotImplicitlySetAValueForSubject()
        {
            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .Build();

            Assert.IsNull(sessionSpec.Subject);
        }
コード例 #4
0
        public void ShouldNotImplicitlySetAValueForIdentityProfileRequirements()
        {
            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .Build();

            Assert.IsNull(sessionSpec.IdentityProfileRequirements);
        }
コード例 #5
0
        public void ShouldBuildWithBlockBiometricConsentFalse()
        {
            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithBlockBiometricConsent(false)
                .Build();

            Assert.IsFalse((bool)sessionSpec.BlockBiometricConsent);
        }
コード例 #6
0
        public void ShouldBuildWithClientSessionTokenTtl()
        {
            int clientSessionTokenTtl = 500;

            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithClientSessionTokenTtl(clientSessionTokenTtl)
                .Build();

            Assert.AreEqual(clientSessionTokenTtl, sessionSpec.ClientSessionTokenTtl);
        }
コード例 #7
0
        public void ShouldBuildWithIdentityProfileRequirements()
        {
            object identityProfileRequirements = IdentityProfiles.CreateStandardIdentityProfileRequirements();

            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithIdentityProfileRequirements(identityProfileRequirements)
                .Build();

            Assert.AreEqual(identityProfileRequirements, sessionSpec.IdentityProfileRequirements);
        }
コード例 #8
0
        public void ShouldBuildWithUserTrackingId()
        {
            string userTrackingId = "someTrackingId";

            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithUserTrackingId(userTrackingId)
                .Build();

            Assert.AreEqual(userTrackingId, sessionSpec.UserTrackingId);
        }
コード例 #9
0
        public void ShouldBuildWithRequestedCheck()
        {
            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithRequestedCheck(
                    new RequestedDocumentAuthenticityCheckBuilder()
                    .Build())
                .Build();

            Assert.AreEqual("ID_DOCUMENT_AUTHENTICITY", sessionSpec.RequestedChecks.Single().Type);
        }
コード例 #10
0
        public void ShouldBuildWithResourcesTtl()
        {
            int resourcesTtl = 450;

            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithResourcesTtl(resourcesTtl)
                .Build();

            Assert.AreEqual(resourcesTtl, sessionSpec.ResourcesTtl);
        }
コード例 #11
0
        public void ShouldBuildWithSubject()
        {
            object subject = IdentityProfiles.CreateStandardSubject();

            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithSubject(subject)
                .Build();

            Assert.AreEqual(subject, sessionSpec.Subject);
        }
コード例 #12
0
        public void ShouldBuildWithSdkConfig()
        {
            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithSdkConfig(
                    new SdkConfigBuilder()
                    .WithAllowsCameraAndUpload()
                    .Build())
                .Build();

            Assert.AreEqual("CAMERA_AND_UPLOAD", sessionSpec.SdkConfig.AllowedCaptureMethods);
        }
コード例 #13
0
        public void ShouldBuildWithSessionDeadline()
        {
            var            correctFormat  = "2021-09-14T17:48:26.902+01:00";
            DateTimeOffset dateTimeOffset = DateTimeOffset.Parse(correctFormat);

            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithSessionDeadline(dateTimeOffset)
                .Build();

            Assert.AreEqual(dateTimeOffset, sessionSpec.SessionDeadline);
        }
コード例 #14
0
        public void ShouldBuildWithRequestedTask()
        {
            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithRequestedTask(
                    new RequestedTextExtractionTaskBuilder()
                    .WithManualCheckFallback()
                    .Build())
                .Build();

            var result = (RequestedTextExtractionTask)sessionSpec.RequestedTasks.Single();

            Assert.AreEqual("ID_DOCUMENT_TEXT_DATA_EXTRACTION", result.Type);
            Assert.AreEqual("FALLBACK", result.Config.ManualCheck);
        }
コード例 #15
0
        public void ShouldBuildWithNotifications()
        {
            string topic = "topic";

            NotificationConfig notifications = new NotificationConfigBuilder()
                                               .WithTopic(topic)
                                               .Build();

            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithNotifications(notifications)
                .Build();

            Assert.AreEqual(topic, sessionSpec.Notifications.Topics.Single());
        }
コード例 #16
0
        public void ShouldCorrectlySerialiseSessionDeadlineFormat()
        {
            var            correctFormat  = "2021-09-14T17:48:26.902+01:00";
            DateTimeOffset dateTimeOffset = DateTimeOffset.Parse(correctFormat);
            var            correctKvp     = $"\"session_deadline\":\"{correctFormat}\"";

            SessionSpecification sessionSpec =
                new SessionSpecificationBuilder()
                .WithSessionDeadline(dateTimeOffset)
                .Build();
            string sessionSpecJson = JsonConvert.SerializeObject(sessionSpec);

            Assert.AreEqual(dateTimeOffset, sessionSpec.SessionDeadline);
            Assert.IsTrue(sessionSpecJson.Contains(correctKvp));
        }
コード例 #17
0
        public IActionResult Index()
        {
            //Build Session Spec
            var sessionSpec = new SessionSpecificationBuilder()
                              .WithClientSessionTokenTtl(600)
                              .WithResourcesTtl(90000)
                              .WithUserTrackingId("some-user-tracking-id")
                              //Add Checks (using builders)
                              .WithRequestedCheck(
                new RequestedDocumentAuthenticityCheckBuilder()
                .WithManualCheckAlways()
                .Build()
                )
                              .WithRequestedCheck(
                new RequestedLivenessCheckBuilder()
                .ForZoomLiveness()
                .Build()
                )
                              .WithRequestedCheck(
                new RequestedFaceMatchCheckBuilder()
                .WithManualCheckAlways()
                .Build()
                )
                              .WithRequestedCheck(
                new RequestedIdDocumentComparisonCheckBuilder()
                .Build())
                              .WithRequestedCheck(
                new RequestedThirdPartyIdentityCheckBuilder()
                .Build())
                              .WithRequestedCheck(
                new RequestedWatchlistScreeningCheckBuilder()
                .ForAdverseMedia()
                .ForSanctions()
                .Build()
                )
                              //Add Tasks (using builders)
                              .WithRequestedTask(
                new RequestedTextExtractionTaskBuilder()
                .WithManualCheckAlways()
                .WithChipDataDesired()
                .Build()
                )
                              .WithRequestedTask(
                new RequestedSupplementaryDocTextExtractionTaskBuilder()
                .WithManualCheckAlways()
                .Build()
                )
                              //Add Sdk Config (with builder)
                              .WithSdkConfig(
                new SdkConfigBuilder()
                .WithAllowsCameraAndUpload()
                .WithPrimaryColour("#2d9fff")
                .WithSecondaryColour("#FFFFFF")
                .WithFontColour("#FFFFFF")
                .WithLocale("en-GB")
                .WithPresetIssuingCountry("GBR")
                .WithSuccessUrl($"{_baseUrl}/idverify/success")
                .WithErrorUrl($"{_baseUrl}/idverify/error")
                .WithPrivacyPolicyUrl($"{_baseUrl}/privacy-policy")
                .WithAllowHandoff(false)
                .Build()
                )
                              //Add Required Documents (with builders)
                              .WithRequiredDocument(
                new RequiredIdDocumentBuilder()
                .WithFilter(
                    (new OrthogonalRestrictionsFilterBuilder())
                    .WithIncludedDocumentTypes(new List <string> {
                "PASSPORT"
            })
                    .Build()
                    )
                .Build()
                )
                              .WithRequiredDocument(
                new RequiredIdDocumentBuilder()
                .WithFilter(
                    (new OrthogonalRestrictionsFilterBuilder())
                    .WithIncludedDocumentTypes(new List <string> {
                "DRIVING_LICENCE"
            })
                    .Build()
                    )
                .Build()
                )
                              .WithRequiredDocument(
                new RequiredSupplementaryDocumentBuilder()
                .WithObjective(
                    new ProofOfAddressObjectiveBuilder().Build())
                .Build()
                )
                              .Build();

            CreateSessionResult createSessionResult = _client.CreateSession(sessionSpec);
            string sessionId = createSessionResult.SessionId;

            string path = $"web/index.html?sessionID={sessionId}&sessionToken={createSessionResult.ClientSessionToken}";
            Uri    uri  = new Uri(_apiUrl, path);

            ViewBag.iframeUrl = uri.ToString();

            TempData["sessionId"] = sessionId;
            return(View());
        }