public void ShouldBuildWithRememberMeFlag() { DynamicPolicy result = new DynamicPolicyBuilder() .WithRememberMeId(true) .Build(); Assert.IsTrue(result.WantedRememberMeId); }
public void ShouldBuildWithIdentityProfileRequirements() { object identityProfileRequirements = IdentityProfiles.CreateStandardIdentityProfileRequirements(); DynamicPolicy result = new DynamicPolicyBuilder() .WithIdentityProfileRequirements(identityProfileRequirements) .Build(); Assert.AreEqual(identityProfileRequirements, result.IdentityProfileRequirements); }
public void ShouldBuildWithPinAuthenticationDisabled() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithPinAuthentication(enabled: false) .Build(); HashSet <int> result = dynamicPolicy.WantedAuthTypes; Assert.AreEqual(0, result.Count); }
public void ShouldBuildWithAuthTypeEnabledThenDisabled() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithAuthType(24, enabled: true) .WithAuthType(24, enabled: false) .Build(); HashSet <int> result = dynamicPolicy.WantedAuthTypes; Assert.AreEqual(0, result.Count); }
public IActionResult DBSStandard() { try { string yotiKeyFilePath = Environment.GetEnvironmentVariable("YOTI_KEY_FILE_PATH"); _logger.LogInformation( string.Format( "yotiKeyFilePath='{0}'", yotiKeyFilePath)); StreamReader privateKeyStream = System.IO.File.OpenText(yotiKeyFilePath); var yotiClient = new YotiClient(_clientSdkId, privateKeyStream); DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithIdentityProfileRequirements(new { trust_framework = "UK_TFIDA", scheme = new { type = "DBS", objective = "BASIC" } }).Build(); var dynamicScenario = new DynamicScenarioBuilder() .WithCallbackEndpoint("/account/connect") .WithPolicy(dynamicPolicy) .WithSubject(new { subject_id = "some_subject_id_string" }) .Build(); ShareUrlResult shareUrlResult = yotiClient.CreateShareUrl(dynamicScenario); ViewBag.YotiClientSdkId = _clientSdkId; return(View("DBSCheck", shareUrlResult)); } catch (Exception e) { _logger.LogError( exception: e, message: e.Message); TempData["Error"] = e.Message; TempData["InnerException"] = e.InnerException?.Message; return(RedirectToAction("Error", "Account")); } }
public void ShouldOverwriteIdenticalAgeVerificationToEnsureItOnlyExistsOnce() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithAgeUnder(30) .WithAgeUnder(30) .Build(); ICollection <WantedAttribute> result = dynamicPolicy.WantedAttributes; var attributeMatcher = new WantedAttributeMatcher(result); Assert.AreEqual(1, result.Count); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DateOfBirthAttribute, derivation: $"{UserProfile.AgeUnderAttribute}:{30}")); }
public void ShouldBuildWithPinAuthenticationDisabledThenEnabled() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithPinAuthentication(enabled: false) .WithPinAuthentication(enabled: true) .Build(); HashSet <int> result = dynamicPolicy.WantedAuthTypes; Assert.AreEqual(1, result.Count); Assert.IsTrue(result.SetEquals(new HashSet <int> { _expectedPinAuthValue })); }
public void ShouldFilterSelfieAuthenticationDuplicates() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithSelfieAuthentication(enabled: true) .WithAuthType(DynamicPolicy.SelfieAuthType, enabled: true) .Build(); HashSet <int> result = dynamicPolicy.WantedAuthTypes; Assert.AreEqual(1, result.Count); Assert.IsTrue(result.SetEquals(new HashSet <int> { _expectedSelfieAuthValue })); }
public void ShouldBuildWithAuthTypeDisabledThenEnabled() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithAuthType(23, enabled: false) .WithAuthType(23, enabled: true) .Build(); HashSet <int> result = dynamicPolicy.WantedAuthTypes; Assert.AreEqual(1, result.Count); Assert.IsTrue(result.SetEquals(new HashSet <int> { 23 })); }
public void AttributeShouldOnlyExistOnce() { WantedAttribute wantedAttribute = new WantedAttributeBuilder() .WithName("SomeAttributeName") .Build(); DynamicPolicy result = new DynamicPolicyBuilder() .WithWantedAttribute(wantedAttribute) .WithWantedAttribute(wantedAttribute) .Build(); Assert.AreEqual(1, result.WantedAttributes.Count); Assert.IsTrue(result.WantedAttributes.Contains(wantedAttribute)); }
public void ShouldBuildWithAuthTypesTrue() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithSelfieAuthentication(enabled: true) .WithPinAuthentication(enabled: true) .WithAuthType(authType: 99, enabled: true) .Build(); HashSet <int> result = dynamicPolicy.WantedAuthTypes; Assert.AreEqual(3, result.Count); Assert.IsTrue(result.SetEquals(new HashSet <int> { _expectedSelfieAuthValue, _expectedPinAuthValue, 99 })); }
public IActionResult DynamicScenario() { try { string yotiKeyFilePath = Environment.GetEnvironmentVariable("YOTI_KEY_FILE_PATH"); _logger.LogInformation( string.Format( "yotiKeyFilePath='{0}'", yotiKeyFilePath)); StreamReader privateKeyStream = System.IO.File.OpenText(yotiKeyFilePath); var yotiClient = new YotiClient(_clientSdkId, privateKeyStream); var givenNamesWantedAttribute = new WantedAttributeBuilder() .WithName("given_names") .Build(); DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithWantedAttribute(givenNamesWantedAttribute) .WithFullName() .WithSelfie() .WithPhoneNumber() .WithAgeOver(18) .WithRememberMeId(true) .Build(); var dynamicScenario = new DynamicScenarioBuilder() .WithCallbackEndpoint("/account/connect") .WithPolicy(dynamicPolicy) .Build(); ShareUrlResult shareUrlResult = yotiClient.CreateShareUrl(dynamicScenario); ViewBag.YotiClientSdkId = _clientSdkId; return(View("DynamicScenario", shareUrlResult)); } catch (Exception e) { _logger.LogError( exception: e, message: e.Message); TempData["Error"] = e.Message; TempData["InnerException"] = e.InnerException?.Message; return(RedirectToAction("Error", "Account")); } }
public void ShouldBuildWithMultipleAgeDerivedAttributes() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithDateOfBirth() .WithAgeOver(18) .WithAgeUnder(30) .WithAgeUnder(40) .Build(); ICollection <WantedAttribute> result = dynamicPolicy.WantedAttributes; var attributeMatcher = new WantedAttributeMatcher(result); Assert.AreEqual(4, result.Count); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DateOfBirthAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DateOfBirthAttribute, derivation: $"{UserProfile.AgeOverAttribute}:{18}")); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DateOfBirthAttribute, derivation: $"{UserProfile.AgeUnderAttribute}:{30}")); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DateOfBirthAttribute, derivation: $"{UserProfile.AgeUnderAttribute}:{40}")); }
public void ShouldContainAllAddedAttributes() { DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithFamilyName() .WithGivenNames() .WithFullName() .WithDateOfBirth() .WithGender() .WithPostalAddress() .WithStructuredPostalAddress() .WithNationality() .WithPhoneNumber() .WithSelfie() .WithEmail() .WithDocumentDetails() .WithDocumentImages() .WithAgeOver(55) .WithAgeUnder(18) .Build(); ICollection <WantedAttribute> result = dynamicPolicy.WantedAttributes; var attributeMatcher = new WantedAttributeMatcher(result); Assert.AreEqual(15, result.Count); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.FamilyNameAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.GivenNamesAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.FullNameAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.GenderAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.PostalAddressAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.StructuredPostalAddressAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.NationalityAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.PhoneNumberAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.SelfieAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.EmailAddressAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DocumentImagesAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DocumentDetailsAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DateOfBirthAttribute)); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DateOfBirthAttribute, derivation: $"{Constants.UserProfile.AgeOverAttribute}:55")); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DateOfBirthAttribute, derivation: $"{Constants.UserProfile.AgeUnderAttribute}:18")); }
public void ShouldAddMultipleAttributesWithSameNameAndDifferentConstraints() { var passportConstraint = new SourceConstraintBuilder() .WithPassport() .Build(); var docImage1 = new WantedAttributeBuilder() .WithName(Yoti.Auth.Constants.UserProfile.DocumentImagesAttribute) .WithConstraint(passportConstraint) .Build(); var drivingLicenseConstraint = new SourceConstraintBuilder() .WithDrivingLicense() .Build(); var docImage2 = new WantedAttributeBuilder() .WithName(Yoti.Auth.Constants.UserProfile.DocumentImagesAttribute) .WithConstraints(new List <Constraint> { drivingLicenseConstraint }) .Build(); DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithWantedAttribute(docImage1) .WithWantedAttribute(docImage2) .Build(); ICollection <WantedAttribute> result = dynamicPolicy.WantedAttributes; var attributeMatcher = new WantedAttributeMatcher(result); Assert.AreEqual(2, result.Count); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DocumentImagesAttribute, null, new List <Constraint> { passportConstraint })); Assert.IsTrue(attributeMatcher.ContainsAttribute(UserProfile.DocumentImagesAttribute, null, new List <Constraint> { drivingLicenseConstraint })); }