public void ShouldThrowExceptionWhenAttributesAreMissing()
 {
     Assert.ThrowsException <InvalidOperationException>(() =>
     {
         DocumentDetailsAttributeParser.ParseFrom("PASSPORT GBR");
     });
 }
 public void ShouldThrowExceptionForInvalidValues(string value)
 {
     Assert.ThrowsException <InvalidOperationException>(() =>
     {
         DocumentDetailsAttributeParser.ParseFrom(value);
     });
 }
 public void ShouldThrowExceptionForInvalidDate()
 {
     Assert.ThrowsException <FormatException>(() =>
     {
         DocumentDetailsAttributeParser.ParseFrom("PASSPORT GBR 1234abc" + " X016-05-01");
     });
 }
 public void ShouldFailForMoreThanOneConsecutiveSpaces(string stringToParse)
 {
     Assert.ThrowsException <FormatException>(() =>
     {
         DocumentDetails result = DocumentDetailsAttributeParser.ParseFrom(stringToParse);
     });
 }
        public void ShouldThrowExceptionForNullAttribute()
        {
            Assert.ThrowsException <InvalidOperationException>(() =>

            {
                DocumentDetailsAttributeParser.ParseFrom(null);
            });
        }
        public void ShouldParseWhenOneOptionalAttributeIsMissing()
        {
            DocumentDetails result = DocumentDetailsAttributeParser.ParseFrom("PASS_CARD GBR 1234abc - DVLA");

            Assert.IsNotNull(result);
            Assert.AreEqual(Constants.DocumentDetails.DocumentTypePassCard, result.DocumentType);
            Assert.AreEqual("GBR", result.IssuingCountry);
            Assert.AreEqual("1234abc", result.DocumentNumber);
            Assert.IsNull(result.ExpirationDate);
            Assert.AreEqual("DVLA", result.IssuingAuthority);
        }
        public void ShouldIgnoreAThirdOptionalAttribute()
        {
            DocumentDetails result = DocumentDetailsAttributeParser.ParseFrom("DRIVING_LICENCE GBR 1234abc 2016-05-01 DVLA someThirdAttribute");

            Assert.IsNotNull(result);
            Assert.AreEqual(Constants.DocumentDetails.DocumentTypeDrivingLicense, result.DocumentType);
            Assert.AreEqual("GBR", result.IssuingCountry);
            Assert.AreEqual("1234abc", result.DocumentNumber);
            Assert.AreEqual(new DateTime(2016, 05, 01), result.ExpirationDate);
            Assert.AreEqual("DVLA", result.IssuingAuthority);
        }
        public void ShouldParseOneOptionalAttribute()
        {
            DocumentDetails result = DocumentDetailsAttributeParser.ParseFrom("AADHAAR IND 1234abc 2016-05-01");

            Assert.IsNotNull(result);
            Assert.AreEqual(Constants.DocumentDetails.DocumentTypeAadhaar, result.DocumentType);
            Assert.AreEqual("IND", result.IssuingCountry);
            Assert.AreEqual("1234abc", result.DocumentNumber);
            Assert.AreEqual(new DateTime(2016, 05, 01), result.ExpirationDate);
            Assert.IsNull(result.IssuingAuthority);
        }
        public void ShouldParseMandatoryAttributes()
        {
            DocumentDetails result = DocumentDetailsAttributeParser.ParseFrom("PASSPORT GBR 1234abc");

            Assert.IsNotNull(result);
            Assert.AreEqual(Constants.DocumentDetails.DocumentTypePassport, result.DocumentType);
            Assert.AreEqual("GBR", result.IssuingCountry);
            Assert.AreEqual("1234abc", result.DocumentNumber);
            Assert.IsNull(result.ExpirationDate);
            Assert.IsNull(result.IssuingAuthority);
        }
        public void ShouldParseRedactedAadhar()
        {
            DocumentDetails result = DocumentDetailsAttributeParser.ParseFrom("NATIONAL_ID IND ********6421 - UIDAI");

            Assert.IsNotNull(result);
            Assert.AreEqual(Constants.DocumentDetails.DocumentTypeNationalId, result.DocumentType);
            Assert.AreEqual("IND", result.IssuingCountry);
            Assert.AreEqual("********6421", result.DocumentNumber);
            Assert.IsNull(result.ExpirationDate);
            Assert.AreEqual("UIDAI", result.IssuingAuthority);
        }
Ejemplo n.º 11
0
        private static BaseAttribute CreateYotiAttribute(ProtoBuf.Attribute.Attribute attribute, NLog.Logger logger, byte[] byteAttributeValue)
        {
            object value = ParseAttributeValue(attribute.ContentType, logger, byteAttributeValue);
            string id    = attribute.EphemeralId;

            switch (attribute.ContentType)
            {
            case ContentType.String:
                if (attribute.Name == Constants.UserProfile.DocumentDetailsAttribute)
                {
                    DocumentDetails documementDetails = DocumentDetailsAttributeParser.ParseFrom((string)value);

                    return(new YotiAttribute <DocumentDetails>(
                               attribute.Name,
                               documementDetails,
                               ParseAnchors(attribute),
                               id));
                }

                return(new YotiAttribute <string>(
                           attribute.Name,
                           (string)value,
                           ParseAnchors(attribute),
                           id));

            case ContentType.Date:
                return(new YotiAttribute <DateTime>(
                           attribute.Name,
                           (DateTime)value,
                           ParseAnchors(attribute),
                           id));

            case ContentType.Jpeg:
                return(new YotiAttribute <Image>(
                           attribute.Name,
                           (JpegImage)value,
                           ParseAnchors(attribute),
                           id));

            case ContentType.Png:
                return(new YotiAttribute <Image>(
                           attribute.Name,
                           (PngImage)value,
                           ParseAnchors(attribute),
                           id));

            case ContentType.Json:
                return(new YotiAttribute <Dictionary <string, JToken> >(
                           attribute.Name,
                           (Dictionary <string, JToken>)value,
                           ParseAnchors(attribute),
                           id));

            case ContentType.MultiValue:
                var multiValueList = (List <MultiValueItem>)value;
                if (attribute.Name == Constants.UserProfile.DocumentImagesAttribute)
                {
                    return(new YotiAttribute <List <Image> >(
                               attribute.Name,
                               value: CreateImageListFromMultiValue(multiValueList),
                               ParseAnchors(attribute),
                               id));
                }

                return(new YotiAttribute <List <MultiValueItem> >(
                           attribute.Name,
                           multiValueList,
                           ParseAnchors(attribute),
                           id));

            case ContentType.Int:
                return(new YotiAttribute <int>(
                           attribute.Name,
                           (int)value,
                           ParseAnchors(attribute),
                           id));

            default:
                logger.Warn($"Unknown content type {attribute.ContentType}, attempting to parse it as a string");
                return(new YotiAttribute <string>(
                           attribute.Name,
                           Conversion.BytesToUtf8(byteAttributeValue),
                           ParseAnchors(attribute),
                           id));
            }
        }
        public void ShouldParseDocumentDetailsWithSpecialCharacters(string documentNumber)
        {
            DocumentDetails result = DocumentDetailsAttributeParser.ParseFrom($"PASS_CARD GBR {documentNumber} - DVLA");

            Assert.AreEqual(documentNumber, result.DocumentNumber);
        }