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); }
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); }