예제 #1
0
        public async Task WatchlistDetailsResponseNoExceptionThrownTest_TECH9_103()
        {
            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var request = new VerifyRequest
                {
                    AcceptTruliooTermsAndConditions = true,
                    VerboseMode       = true,
                    Demo              = false,
                    ConfigurationName = "Identity Verification",
                    CountryCode       = "DE",
                    DataFields        = new DataFields
                    {
                        PersonInfo = new PersonInfo
                        {
                            FirstGivenName = "test",
                            FirstSurName   = "test",
                            YearOfBirth    = 1980
                        }
                    }
                };

                var response = await client.Verification.VerifyAsync(request);

                Assert.NotNull(response);
            }
        }
예제 #2
0
        public async Task GetTestEntitiesTest(string username, string password, string hostEndpoint, string countryCode, List <DataFields> expectedTestEntities)
        {
            using (var client = new TruliooApiClient(new Context(username, password, new HttpClient())
            {
                Host = hostEndpoint
            }))
            {
                var response = await client.Configuration.GetTestEntitiesAsync(countryCode, "Identity Verification");

                Assert.Equal(expectedTestEntities.Count(), response.Count());

                List <string> expectedFirstNames = expectedTestEntities.Where(f => f?.PersonInfo?.FirstGivenName != null).Select(f => f.PersonInfo.FirstGivenName).ToList();
                List <string> actualFirstNames   = response.Where(f => f?.PersonInfo?.FirstGivenName != null).Select(f => f.PersonInfo.FirstGivenName).ToList();
                Assert.Equal(expectedFirstNames.Count(), actualFirstNames.Count());
                Assert.True(expectedFirstNames.All(actualFirstNames.Contains));

                List <string> expectedFirstSurnames = expectedTestEntities.Where(testEntity => testEntity?.PersonInfo?.FirstSurName != null).Select(f => f.PersonInfo.FirstSurName).ToList();
                List <string> actualFirstSurnames   = response.Where(testEntity => testEntity?.PersonInfo?.FirstSurName != null).Select(f => f.PersonInfo.FirstSurName).ToList();
                Assert.Equal(expectedFirstSurnames.Count(), actualFirstSurnames.Count());
                Assert.True(expectedFirstSurnames.All(actualFirstSurnames.Contains));

                List <int?> expectedYearOfBirth = expectedTestEntities.Where(f => f?.PersonInfo?.YearOfBirth != null).Select(f => f.PersonInfo.YearOfBirth).ToList();
                List <int?> actualYearOfBirth   = expectedTestEntities.Where(f => f?.PersonInfo?.YearOfBirth != null).Select(f => f.PersonInfo.YearOfBirth).ToList();
                Assert.Equal(expectedYearOfBirth.Count(), actualYearOfBirth.Count());
                Assert.True(expectedYearOfBirth.All(actualYearOfBirth.Contains));

                List <string> expectedTelephone = expectedTestEntities.Where(f => f?.Communication?.Telephone != null).Select(f => f.Communication.Telephone).ToList();
                List <string> actualTelephone   = response.Where(f => f?.Communication?.Telephone != null).Select(f => f.Communication.Telephone).ToList();
                Assert.Equal(expectedTelephone.Count(), actualTelephone.Count());
                Assert.True(expectedTelephone.All(actualTelephone.Contains));
            }
        }
예제 #3
0
        public async Task GetTransactionRecordVerbose(string transactionRecordID, TransactionRecordResult expectedTransactionRecordResult)
        {
            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var response = await client.Verification.GetTransactionRecordVerboseAsync(transactionRecordID);

                Assert.Equal(expectedTransactionRecordResult.TransactionID, response.TransactionID);

                Assert.Equal(expectedTransactionRecordResult.Errors.Count(), response.Errors.Count());

                Assert.Equal(expectedTransactionRecordResult.InputFields.Count(), response.InputFields.Count());

                List <string> expectedInputFieldNames = expectedTransactionRecordResult.InputFields.Select(x => x.FieldName).ToList();
                List <string> actualInputFieldNames   = response.InputFields.Select(x => x.FieldName).ToList();
                Assert.True(expectedInputFieldNames.All(actualInputFieldNames.Contains));

                List <string> expectedInputFieldValues = expectedTransactionRecordResult.InputFields.Select(x => x.Value).ToList();
                List <string> actualInputFieldValues   = response.InputFields.Select(x => x.Value).ToList();
                Assert.True(expectedInputFieldValues.All(actualInputFieldValues.Contains));

                Assert.Equal(expectedTransactionRecordResult.Record.RecordStatus, response.Record.RecordStatus);
                Assert.Equal(expectedTransactionRecordResult.Record.DatasourceResults.Count(), response.Record.DatasourceResults.Count());
            }
        }
예제 #4
0
        public async Task BusinessSearchTest(BusinessSearchRequest request, BusinessSearchResponse expectedResponse)
        {
            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var response = await client.Business.BusinessSearchAsync(request);

                Assert.Equal(expectedResponse.Record.RecordStatus, response.Record.RecordStatus);
                Assert.Equal(expectedResponse.CountryCode, response.CountryCode);

                Assert.Equal(expectedResponse.Record.DatasourceResults.Count(), response.Record.DatasourceResults.Count());
                List <string> expectedDatasourcesNames = expectedResponse.Record.DatasourceResults.Select(x => x.DatasourceName).ToList();
                List <string> actualDatasourceNames    = response.Record.DatasourceResults.Select(x => x.DatasourceName).ToList();
                Assert.True(expectedDatasourcesNames.All(actualDatasourceNames.Contains));

                List <string> expectedBusinessNameResults = expectedResponse.Record.DatasourceResults.SelectMany(datasource => datasource.Results.Select(result => result.BusinessName)).ToList();
                List <string> actualBusinessNameResults   = response.Record.DatasourceResults.SelectMany(datasource => datasource.Results.Select(result => result.BusinessName)).ToList();
                Assert.Equal(expectedBusinessNameResults.Count(), actualBusinessNameResults.Count());
                Assert.True(expectedBusinessNameResults.All(actualBusinessNameResults.Contains));

                List <string> expectedBusinessNumberResults = expectedResponse.Record.DatasourceResults.SelectMany(datasource => datasource.Results.Select(result => result.BusinessRegistrationNumber)).ToList();
                List <string> actualBusinessNumberResults   = response.Record.DatasourceResults.SelectMany(datasource => datasource.Results.Select(result => result.BusinessRegistrationNumber)).ToList();
                Assert.Equal(expectedBusinessNumberResults.Count(), actualBusinessNumberResults.Count());
                Assert.True(expectedBusinessNumberResults.All(actualBusinessNumberResults.Contains));
            }
        }
예제 #5
0
        public async Task BusinessSearchResultTest(string username, string password, string hostEndpoint, string transactionRecordId, BusinessSearchResponse expectedResponse)
        {
            using (var client = new TruliooApiClient(new Context(username, password, new HttpClient())
            {
                Host = hostEndpoint
            }))
            {
                var response = await client.Business.BusinessSearchResultAsync(transactionRecordId);

                Assert.Equal(expectedResponse.TransactionID, response.TransactionID);
                Assert.Equal(expectedResponse.Record.RecordStatus, response.Record.RecordStatus);
                Assert.Equal(expectedResponse.CountryCode, response.CountryCode);

                Assert.Equal(expectedResponse.Record.DatasourceResults.Count(), response.Record.DatasourceResults.Count());
                List <string> expectedDatasourcesNames = expectedResponse.Record.DatasourceResults.Select(x => x.DatasourceName).ToList();
                List <string> actualDatasourceNames    = response.Record.DatasourceResults.Select(x => x.DatasourceName).ToList();
                Assert.True(expectedDatasourcesNames.All(actualDatasourceNames.Contains));

                List <string> expectedBusinessNameResults = expectedResponse.Record.DatasourceResults.SelectMany(datasource => datasource.Results.Select(result => result.BusinessName)).ToList();
                List <string> actualBusinessNameResults   = response.Record.DatasourceResults.SelectMany(datasource => datasource.Results.Select(result => result.BusinessName)).ToList();
                Assert.Equal(expectedBusinessNameResults.Count(), actualBusinessNameResults.Count());
                Assert.True(expectedBusinessNameResults.All(actualBusinessNameResults.Contains));

                List <string> expectedBusinessNumberResults = expectedResponse.Record.DatasourceResults.SelectMany(datasource => datasource.Results.Select(result => result.BusinessRegistrationNumber)).ToList();
                List <string> actualBusinessNumberResults   = response.Record.DatasourceResults.SelectMany(datasource => datasource.Results.Select(result => result.BusinessRegistrationNumber)).ToList();
                Assert.Equal(expectedBusinessNumberResults.Count(), actualBusinessNumberResults.Count());
                Assert.True(expectedBusinessNumberResults.All(actualBusinessNumberResults.Contains));
            }
        }
예제 #6
0
        public async Task GetDocumentTypeAllCountries(string username, string password, string hostEndpoint, int expectedNumberOfCountries)
        {
            using (var client = new TruliooApiClient(new Context(username, password, new HttpClient())
            {
                Host = hostEndpoint
            }))
            {
                var response = await client.Configuration.GetDocumentTypesAsync();

                Assert.Equal(expectedNumberOfCountries, response.Count());
            }
        }
        public async Task GetRecommendedFields(string countryCode, string configurationName, List <string> results)
        {
            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var response = await client.Configuration.GetRecommendedFieldsAsync(countryCode, configurationName);

                Assert.NotNull(response);
            }
        }
예제 #8
0
        public async Task GetDocumentDownload(string transactionRecordId, string fieldName)
        {
            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var response = await client.Verification.GetDocumentDownload(transactionRecordId, fieldName);

                Assert.NotNull(response);
            }
        }
예제 #9
0
        public async void Authentication_Success()
        {
            //Arrange
            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var response = await client.Connection.TestAuthenticationAsync();

                Assert.Contains(_username, response);
            }
        }
예제 #10
0
        public async Task GetDetailedConsents(string countryCode, string configurationName, List <string> results)
        {
            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var response = await client.Configuration.GetDetailedСonsentsAsync(countryCode, configurationName);

                Assert.NotNull(response);
                Assert.Equal(results.Count(), response.Count());
            }
        }
예제 #11
0
        public async void SayHello_Success(string username, string password, string hostEndPoint)
        {
            //Arrange
            using (var client = new TruliooApiClient(new Context(username, password)
            {
                Host = hostEndPoint
            }))
            {
                var response = await client.Connection.SayHelloAsync(username);

                Assert.Contains(username, response);
            }
        }
예제 #12
0
        public async Task GetDocumentTypeSpecificCountry(string username, string password, string hostEndpoint, string countryCode, List <string> expectedDocumentTypes)
        {
            using (var client = new TruliooApiClient(new Context(username, password, new HttpClient())
            {
                Host = hostEndpoint
            }))
            {
                var response = await client.Configuration.GetDocumentTypesAsync(countryCode);

                Assert.Equal(expectedDocumentTypes.Count(), response[countryCode].Count());
                Assert.True(expectedDocumentTypes.All(response[countryCode].Contains));
            }
        }
예제 #13
0
        public async void Authentication_Success(string username, string password, string hostEndPoint)
        {
            //Arrange
            using (var client = new TruliooApiClient(new Context(username, password, new HttpClient())
            {
                Host = hostEndPoint
            }))
            {
                var response = await client.Connection.TestAuthenticationAsync();

                Assert.Contains(username, response);
            }
        }
예제 #14
0
        public async Task GetDocumentTypeAllCountries()
        {
            var expectedNumberOfCountries = 223;

            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var response = await client.Configuration.GetDocumentTypesAsync();

                Assert.Equal(expectedNumberOfCountries, response.Count());
            }
        }
예제 #15
0
        public async Task GetDatasourcesTest(string username, string password, string hostEndpoint, string countryCode, List <string> expectedDatasources)
        {
            using (var client = new TruliooApiClient(new Context(username, password, new HttpClient())
            {
                Host = hostEndpoint
            }))
            {
                var response = await client.Configuration.GetDatasourcesAsync(countryCode, "Identity Verification");

                List <string> datasources = response.Select(datasource => datasource.Name).ToList();
                Assert.Equal(expectedDatasources.Count(), datasources.Count());
                Assert.True(expectedDatasources.All(datasources.Contains));
            }
        }
예제 #16
0
        public async Task GetTransactionStatus(string transactionID, TransactionStatus expectedTransactionStatus)
        {
            using (var client = new TruliooApiClient(new Context(_username, _password)
            {
                Host = _hostEndpoint
            }))
            {
                var response = await client.Verification.GetTransactionStatusAsync(transactionID);

                Assert.Equal(expectedTransactionStatus.Status, response.Status);
                Assert.Equal(expectedTransactionStatus.TransactionId, response.TransactionId);
                Assert.Equal(expectedTransactionStatus.TransactionRecordId, response.TransactionRecordId);
                Assert.Equal(expectedTransactionStatus.IsTimedOut, response.IsTimedOut);
            }
        }
예제 #17
0
        internal async Task <string> SayHelloAsync()
        {
            string responseString = String.Empty;

            try
            {
                var truliooClient = new TruliooApiClient(_truliooSettings.Username, _truliooSettings.Password);
                responseString = await truliooClient.Connection.SayHelloAsync("Joe Napoli");
            }
            catch (Exception e)
            {
                Log($"KO :Exception: {e.Message}", true);
            }
            return(responseString);
        }
예제 #18
0
        public async Task <bool> VerifyAsync(IdentityVerificationRequest request)
        {
            var truliooClient = new TruliooApiClient(_verificationProviderOptions.Username, _verificationProviderOptions.Password);

            var countryList = await truliooClient.Configuration.GetCountryCodesAsync("Identity Verification");

            // todo: Map country iso 3 to country iso 2 code. Abbyy returns iso 3 and Trulioo needs iso 2.
            var countryCode = countryList.FirstOrDefault(c => c.Equals(request.UserInfo.Nationality));

            if (countryCode == null)
            {
                throw new Exception($"Provided country code {countryCode} is invalid.");
            }

            var verifyRequest = new VerifyRequest
            {
                AcceptTruliooTermsAndConditions = true,
                Demo = true,
                ConfigurationName = "Identity Verification",
                CountryCode       = countryCode,
                DataFields        = new DataFields
                {
                    PersonInfo = new PersonInfo
                    {
                        FirstGivenName = request.UserInfo.FirstName,
                        FirstSurName   = request.UserInfo.LastName,
                        DayOfBirth     = request.UserInfo.DateOfBirth.Day,
                        MonthOfBirth   = request.UserInfo.DateOfBirth.Month,
                        YearOfBirth    = request.UserInfo.DateOfBirth.Year,
                        Gender         = request.UserInfo.Gender
                    },
                    Passport = new Passport
                    {
                        Mrz1          = request.PassportInfo.Mrz1,
                        Mrz2          = request.PassportInfo.Mrz2,
                        Number        = request.PassportInfo.Number,
                        DayOfExpiry   = request.PassportInfo.DateOfExpiry.Day,
                        MonthOfExpiry = request.PassportInfo.DateOfExpiry.Month,
                        YearOfExpiry  = request.PassportInfo.DateOfExpiry.Year
                    },
                }
            };

            var verifyResult = await truliooClient.Verification.VerifyAsync(verifyRequest);

            return((verifyResult.Errors == null || !verifyResult.Errors.Any()) && verifyResult.Record.RecordStatus.Equals("match"));
        }
예제 #19
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="BusinessSearch" /> class.
 /// </summary>
 /// <param name="service">
 ///     An object representing the root of Trulioo configuration service.
 /// </param>
 /// <exception cref="ArgumentNullException">
 ///     <paramref name="service" /> is <c>null</c>.
 /// </exception>
 protected internal BusinessSearch(TruliooApiClient service)
 {
     this._service = service ?? throw new ArgumentNullException(nameof(service));
 }