コード例 #1
0
        public void ShouldAddThirdPartyAttributeToProfile()
        {
            var thirdPartyAttribute = TestTools.Attributes.CreateProtobufAttributeFromRawAnchor(TestData.TestAttributes.ThirdPartyAssignedAttribute);

            YotiProfile yotiProfile = TestTools.Profile.CreateUserProfileWithSingleAttribute <string>(thirdPartyAttribute);

            YotiAttribute <string> yotiAttribute = yotiProfile.GetAttributeByName <string>("com.thirdparty.id");

            Assert.AreEqual("test-third-party-attribute-0", yotiAttribute.GetValue());

            Assert.AreEqual("THIRD_PARTY", yotiAttribute.GetSources().First().GetValue());
            Assert.AreEqual("orgName", yotiAttribute.GetSources().First().GetSubType());

            Assert.AreEqual("THIRD_PARTY", yotiAttribute.GetVerifiers().First().GetValue());
            Assert.AreEqual("orgName", yotiAttribute.GetVerifiers().First().GetSubType());

            ReadOnlyCollection <YotiAttribute <string> > yotiAttributes = yotiProfile.GetAttributesByName <string>(name: "com.thirdparty.id");
            var yotiAttributeFromCollection = yotiAttributes.Single();

            Assert.AreEqual("test-third-party-attribute-0", yotiAttributeFromCollection.GetValue());

            Assert.AreEqual("THIRD_PARTY", yotiAttributeFromCollection.GetSources().First().GetValue());
            Assert.AreEqual("orgName", yotiAttributeFromCollection.GetSources().First().GetSubType());

            Assert.AreEqual("THIRD_PARTY", yotiAttributeFromCollection.GetVerifiers().First().GetValue());
            Assert.AreEqual("orgName", yotiAttributeFromCollection.GetVerifiers().First().GetSubType());
        }
コード例 #2
0
        public void GetAttributeShouldReturnNullWhenNoAttributePresent()
        {
            var applicationProfile = new ApplicationProfile();

            YotiAttribute <string> notPresentAttribute = applicationProfile.GetAttributeByName <string>("notPresent");

            Assert.IsNull(notPresentAttribute);
        }
コード例 #3
0
        public void ShouldRetrieveEmailAddressAttribute()
        {
            YotiAttribute <string> initialAttribute = CreateStringAttribute(Constants.UserProfile.EmailAddressAttribute);
            YotiProfile            yotiProfile      = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <string> emailAddressAttribute = yotiProfile.EmailAddress;

            Assert.AreSame(initialAttribute, emailAddressAttribute);
        }
コード例 #4
0
        public void ShouldRetrievePhoneNumberAttribute()
        {
            YotiAttribute <string> initialAttribute = CreateStringAttribute(Constants.UserProfile.PhoneNumberAttribute);
            YotiProfile            yotiProfile      = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <string> mobileNumberAttribute = yotiProfile.MobileNumber;

            Assert.AreSame(initialAttribute, mobileNumberAttribute);
        }
コード例 #5
0
        public void ShouldRetrieveFamilyNameAttribute()
        {
            YotiAttribute <string> initialAttribute = CreateStringAttribute(Constants.UserProfile.FamilyNameAttribute);
            YotiProfile            yotiProfile      = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <string> familyNameAttribute = yotiProfile.FamilyName;

            Assert.AreSame(initialAttribute, familyNameAttribute);
        }
コード例 #6
0
        public void ShouldRetrieveGivenNamesAttribute()
        {
            YotiAttribute <string> initialAttribute = CreateStringAttribute(Constants.UserProfile.GivenNamesAttribute);
            YotiProfile            yotiProfile      = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <string> givenNamesAttribute = yotiProfile.GivenNames;

            Assert.AreSame(initialAttribute, givenNamesAttribute);
        }
コード例 #7
0
        public void ShouldRetrieveNationalityAttribute()
        {
            YotiAttribute <string> initialAttribute = CreateStringAttribute(Constants.UserProfile.NationalityAttribute);
            YotiProfile            yotiProfile      = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <string> nationalityAttribute = yotiProfile.Nationality;

            Assert.AreSame(initialAttribute, nationalityAttribute);
        }
コード例 #8
0
ファイル: Profile.cs プロジェクト: getyoti/yoti-dotnet-sdk
        public static YotiProfile CreateUserProfileWithSingleAttribute <T>(YotiAttribute <T> attribute)
        {
            var attributes = new Dictionary <string, List <BaseAttribute> >
            {
                { attribute.GetName(), new List <BaseAttribute> {
                      attribute
                  } }
            };

            return(new YotiProfile(attributes));
        }
コード例 #9
0
        public void YotiAttribute_GetValueOrDefault_ReturnsDefaultWhenNull()
        {
            var yotiAttribute = new YotiAttribute <string>(
                name: "given_names",
                value: null,
                anchors: new List <Anchor>());

            string defaultValue = "default";

            Assert.AreEqual(defaultValue, yotiAttribute.GetValueOrDefault(defaultValue));
        }
コード例 #10
0
        // GET: Account/Connect?token
        public ActionResult Connect(string token)
        {
            if (token == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            try
            {
                string sdkId = Environment.GetEnvironmentVariable("YOTI_CLIENT_SDK_ID");
                _logger.LogInformation(string.Format("sdkId='{0}'", sdkId));

                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(sdkId, privateKeyStream);

                ActivityDetails activityDetails = yotiClient.GetActivityDetails(token);

                var profile = activityDetails.Profile;

                ViewBag.RememberMeID = activityDetails.RememberMeId;

                DisplayAttributes displayAttributes = CreateDisplayAttributes(profile.AttributeCollection);

                if (profile.FullName != null)
                {
                    displayAttributes.FullName = profile.FullName.GetValue();
                }

                YotiAttribute <Image> selfie = profile.Selfie;
                if (profile.Selfie != null)
                {
                    displayAttributes.Base64Selfie = selfie.GetValue().GetBase64URI();
                }

                return(View(displayAttributes));
            }
            catch (Exception e)
            {
                _logger.LogError(
                    exception: e,
                    message: e.Message);

                TempData["Error"]          = e.Message;
                TempData["InnerException"] = e.InnerException?.Message;
                return(RedirectToAction("Error"));
            }
        }
コード例 #11
0
        public void PngBase64UriShouldRetrieveCorrectValue()
        {
            byte[] pngBytes      = Conversion.UtfToBytes("PngData");
            var    yotiAttribute = new YotiAttribute <Image>(
                name: "selfie",
                value: new PngImage(pngBytes),
                anchors: null);

            string expectedString = string.Format("data:image/png;base64,{0}", Conversion.BytesToBase64(pngBytes));

            Assert.AreEqual(expectedString, yotiAttribute.GetValue().GetBase64URI());
        }
コード例 #12
0
        public void ShouldRetrieveSelfieAttribute()
        {
            var initialAttribute = new YotiAttribute <Image>(
                name: Constants.UserProfile.SelfieAttribute,
                value: new JpegImage(Encoding.UTF8.GetBytes(_value)),
                anchors: null);

            YotiProfile yotiProfile = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <Image> selfieAttribute = yotiProfile.Selfie;

            Assert.AreSame(initialAttribute, selfieAttribute);
        }
コード例 #13
0
        public void ReceiptBgColorShouldBeRetrieved()
        {
            var initialAttribute = new YotiAttribute <string>(
                name: Constants.ApplicationProfile.ApplicationReceiptBgColorAttribute,
                value: _value,
                anchors: null);

            ApplicationProfile applicationProfile = TestTools.Profile.CreateApplicationProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <string> applicationReceiptBgColorAttribute = applicationProfile.ReceiptBackgroundColor;

            Assert.AreSame(initialAttribute, applicationReceiptBgColorAttribute);
        }
コード例 #14
0
        public void LogoShouldBeRetrieved()
        {
            var initialAttribute = new YotiAttribute <Image>(
                name: Constants.ApplicationProfile.ApplicationLogoAttribute,
                value: new JpegImage(Encoding.UTF8.GetBytes(_value)),
                anchors: null);

            ApplicationProfile applicationProfile = TestTools.Profile.CreateApplicationProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <Image> applicationLogoAttribute = applicationProfile.Logo;

            Assert.AreSame(initialAttribute, applicationLogoAttribute);
        }
コード例 #15
0
        public void URLShouldBeRetrieved()
        {
            var initialAttribute = new YotiAttribute <string>(
                name: Constants.ApplicationProfile.ApplicationURLAttribute,
                value: _value,
                anchors: null);

            ApplicationProfile applicationProfile = TestTools.Profile.CreateApplicationProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <string> applicationURLAttribute = applicationProfile.URL;

            Assert.AreSame(initialAttribute, applicationURLAttribute);
        }
コード例 #16
0
        public void ShouldRetrieveDateOfBirthAttribute()
        {
            var initialAttribute = new YotiAttribute <DateTime>(
                name: Constants.UserProfile.DateOfBirthAttribute,
                value: new DateTime(2000, 01, 13),
                anchors: null);

            YotiProfile yotiProfile = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <DateTime> dateOfBirthAttribute = yotiProfile.DateOfBirth;

            Assert.AreSame(initialAttribute, dateOfBirthAttribute);
        }
コード例 #17
0
        public void YotiAttribute_GetValueOrDefault_ReturnsValueWhenNotNull()
        {
            string expectedValue          = "expected";
            var    expectedAttributeValue = new YotiAttributeValue(TypeEnum.Text, Conversion.UtfToBytes(expectedValue));

            var yotiAttribute = new YotiAttribute <string>(
                name: "given_names",
                value: expectedAttributeValue,
                anchors: new List <Anchor>());

            string defaultValue = "default";

            Assert.AreEqual(expectedValue, yotiAttribute.GetValueOrDefault(defaultValue));
        }
コード例 #18
0
        public void GetValueShouldRetrieveImage()
        {
            byte[] imageBytes = Conversion.UtfToBytes("ImageValue");

            var yotiAttribute = new YotiAttribute <Image>("selfie", new JpegImage(imageBytes), null);

            var expectedImage = new JpegImage(imageBytes);

            string expectedBase64URI = string.Format("data:image/jpeg;base64,{0}", Conversion.BytesToBase64(imageBytes));
            Image  actualImage       = yotiAttribute.GetValue();

            Assert.IsTrue(new ImageComparer().Equals(expectedImage, actualImage));
            Assert.AreEqual(expectedBase64URI, actualImage.GetBase64URI());
        }
コード例 #19
0
        public void WrongAttributeTypeForGetAttributesShouldThrowException()
        {
            var initialAttribute = new YotiAttribute <string>(
                name: Constants.ApplicationProfile.ApplicationNameAttribute,
                value: _value,
                anchors: null);

            ApplicationProfile applicationProfile = TestTools.Profile.CreateApplicationProfileWithSingleAttribute(initialAttribute);

            Assert.ThrowsException <InvalidCastException>(() =>
            {
                applicationProfile.GetAttributesByName <Image>(Constants.ApplicationProfile.ApplicationNameAttribute);
            });
        }
コード例 #20
0
        public void InvalidAttributeNamesShouldThrowException(string attributeName)
        {
            var attribute = new YotiAttribute <string>(
                name: attributeName,
                value: "true",
                anchors: null);

            var exception = Assert.ThrowsException <InvalidOperationException>(() =>
            {
                new AgeVerification(attribute);
            });

            Assert.IsTrue(exception.Message.Contains("does not match expected format:"));
        }
コード例 #21
0
        public void StringShouldBeRetrieved()
        {
            var initialAttribute = new YotiAttribute <string>(
                name: Constants.ApplicationProfile.ApplicationNameAttribute,
                value: _value,
                anchors: null);

            ApplicationProfile applicationProfile = TestTools.Profile.CreateApplicationProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <string> applicationNameAttribute = applicationProfile.GetAttributeByName <string>(Constants.ApplicationProfile.ApplicationNameAttribute);
            YotiAttribute <string> applicationNameAttributeFromCollection = applicationProfile.GetAttributesByName <string>(Constants.ApplicationProfile.ApplicationNameAttribute).Single();

            Assert.AreSame(initialAttribute, applicationNameAttribute);
            Assert.AreSame(initialAttribute, applicationNameAttributeFromCollection);
        }
コード例 #22
0
        public void ImageShouldBeRetrieved()
        {
            var initialAttribute = new YotiAttribute <Image>(
                name: Constants.ApplicationProfile.ApplicationLogoAttribute,
                value: new JpegImage(Encoding.UTF8.GetBytes(_value)),
                anchors: null);

            ApplicationProfile applicationProfile = TestTools.Profile.CreateApplicationProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <Image> logoAttribute = applicationProfile.GetAttributeByName <Image>(Constants.ApplicationProfile.ApplicationLogoAttribute);
            YotiAttribute <Image> logoAttributeFromCollection = applicationProfile.GetAttributesByName <Image>(Constants.ApplicationProfile.ApplicationLogoAttribute).Single();

            Assert.AreSame(initialAttribute, logoAttribute);
            Assert.AreSame(initialAttribute, logoAttributeFromCollection);
        }
コード例 #23
0
        public void GetAttributeByNameShouldRetrieveDatetime()
        {
            DateTime value            = new DateTime(1990, 1, 13);
            var      initialAttribute = new YotiAttribute <DateTime>(
                name: Constants.UserProfile.DateOfBirthAttribute,
                value: value,
                anchors: null);

            YotiProfile userProfile = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <DateTime> dobAttribute = userProfile.GetAttributeByName <DateTime>(Constants.UserProfile.DateOfBirthAttribute);

            Assert.AreSame(initialAttribute, dobAttribute);
            Assert.AreEqual(value, dobAttribute.GetValue());
        }
コード例 #24
0
        public void GetAttributeByNameShouldRetrieveString()
        {
            var initialAttribute = new YotiAttribute <string>(
                name: Constants.UserProfile.NationalityAttribute,
                value: "Nation",
                anchors: null);

            YotiProfile userProfile = new YotiProfile();

            userProfile.Add(initialAttribute);

            YotiAttribute <string> nationalityAttribute = userProfile.GetAttributeByName <string>(Constants.UserProfile.NationalityAttribute);

            Assert.AreSame(initialAttribute, nationalityAttribute);
        }
コード例 #25
0
        public void ShouldRetrieveStructuredPostalAddressAttribute()
        {
            var jsonValue = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, JToken> >(
                "{ \"properties\": { \"name\": { \"type\": \"string\" } } }");

            var initialAttribute = new YotiAttribute <Dictionary <string, JToken> >(
                name: Constants.UserProfile.StructuredPostalAddressAttribute,
                value: jsonValue,
                anchors: null);

            YotiProfile yotiProfile = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);

            YotiAttribute <Dictionary <string, JToken> > structuredPostalAddressAttribute = yotiProfile.StructuredPostalAddress;

            Assert.AreSame(initialAttribute, structuredPostalAddressAttribute);
        }
コード例 #26
0
        public void ShouldRetrieveIntAttribute()
        {
            string intAttributeName = "intAttributeName";
            int    intValue         = 92387;
            var    initialAttribute = new YotiAttribute <int>(
                intAttributeName,
                intValue,
                anchors: null);

            YotiProfile         yotiProfile  = TestTools.Profile.CreateUserProfileWithSingleAttribute(initialAttribute);
            YotiAttribute <int> intAttribute = yotiProfile.GetAttributeByName <int>(intAttributeName);
            YotiAttribute <int> intAttributeFromCollection = yotiProfile.GetAttributesByName <int>(intAttributeName).Single();

            Assert.AreEqual(intValue, intAttribute.GetValue());
            Assert.AreEqual(intValue, intAttributeFromCollection.GetValue());
        }
コード例 #27
0
        public void GetAttributeByNameShouldRetrieveImage()
        {
            Image imageValue = new PngImage(Encoding.UTF8.GetBytes("Value"));

            var initialAttribute = new YotiAttribute <Image>(
                name: Constants.UserProfile.SelfieAttribute,
                value: imageValue,
                anchors: null);

            YotiProfile userProfile = new YotiProfile();

            userProfile.Add(initialAttribute);

            YotiAttribute <Image> imageAttribute = userProfile.GetAttributeByName <Image>(Constants.UserProfile.SelfieAttribute);

            Assert.AreEqual(imageValue, imageAttribute.GetValue());
        }
コード例 #28
0
        public void GetAttributeByNameShouldRetrieveBool()
        {
            bool   boolValue     = true;
            string attributeName = "Bool";

            var initialAttribute = new YotiAttribute <bool>(
                name: attributeName,
                value: boolValue,
                anchors: null);

            YotiProfile userProfile = new YotiProfile();

            userProfile.Add(initialAttribute);

            YotiAttribute <bool> boolAttribute = userProfile.GetAttributeByName <bool>(attributeName);

            Assert.AreEqual(boolValue, boolAttribute.GetValue());
        }
コード例 #29
0
        internal void Add <T>(YotiAttribute <T> newValue)
        {
            TryAddAttribute(newValue);

            string attributeName = newValue.GetName();

            if (_attributes.ContainsKey(attributeName))
            {
                List <BaseAttribute> attributeList = _attributes[attributeName];
                attributeList.Add(newValue);
                _attributes[attributeName] = attributeList;
            }
            else
            {
                _attributes.Add(attributeName, new List <BaseAttribute> {
                    newValue
                });
            }
        }
コード例 #30
0
        public void ShouldRetrieveAttributesThroughAttributeList()
        {
            string mobileNumberValue = "0127456689";
            var    initialAttribute  = new YotiAttribute <string>(
                name: Constants.UserProfile.PhoneNumberAttribute,
                value: mobileNumberValue,
                anchors: null);

            YotiProfile userProfile = new YotiProfile();

            userProfile.Add(initialAttribute);

#pragma warning disable CS0618 // Type or member is obsolete
            var attribute1 = (YotiAttribute <string>)userProfile.Attributes.Values.First();
#pragma warning restore CS0618 // Type or member is obsolete
            Assert.AreEqual(mobileNumberValue, attribute1.GetValue());

            var attributeListItem1 = (YotiAttribute <string>)userProfile.AttributeCollection.First();
            Assert.AreEqual(mobileNumberValue, attributeListItem1.GetValue());
        }