public void YotiClientEngine_PerformAmlCheckAsync_Other()
        {
            var    keyPair = GetKeyPair();
            string sdkId   = "fake-sdk-id";

            FakeHttpRequester httpRequester = new FakeHttpRequester((httpClient, httpMethod, uri, headers, byteContent) =>
            {
                return(Task.FromResult(new Response
                {
                    Success = false,
                    StatusCode = (int)HttpStatusCode.Forbidden,
                    Content = "{Content}"
                }));
            });

            YotiClientEngine engine     = new YotiClientEngine(httpRequester);
            AmlProfile       amlProfile = TestTools.Aml.CreateStandardAmlProfile();

            AggregateException aggregateException = Assert.ThrowsException <AggregateException>(() =>
            {
                AmlResult amlResult = engine.PerformAmlCheck(sdkId, keyPair, YotiConstants.DefaultYotiApiUrl, amlProfile);
            });

            Assert.IsTrue(Exceptions.IsExceptionInAggregateException <AmlException>(aggregateException));
        }
        public async Task YotiClientEngine_PerformAmlCheckAsync()
        {
            var    keyPair = GetKeyPair();
            string sdkId   = "fake-sdk-id";

            FakeHttpRequester httpRequester = new FakeHttpRequester((httpClient, httpMethod, uri, headers, byteContent) =>
            {
                return(Task.FromResult(new Response
                {
                    Success = true,
                    StatusCode = 200,
                    Content = "{\"on_fraud_list\":true,\"on_pep_list\":false,\"on_watch_list\":false}"
                }));
            });

            YotiClientEngine engine     = new YotiClientEngine(httpRequester);
            AmlProfile       amlProfile = TestTools.Aml.CreateStandardAmlProfile();

            AmlResult amlResult = await engine.PerformAmlCheckAsync(sdkId, keyPair, YotiConstants.DefaultYotiApiUrl, amlProfile);

            Assert.IsNotNull(amlResult);
            Assert.IsTrue(amlResult.IsOnFraudList());
            Assert.IsFalse(amlResult.IsOnPepList());
            Assert.IsFalse(amlResult.IsOnWatchList());
        }
        public void YotiClientEngine_ParseProfile_Success()
        {
            var    keyPair = GetKeyPair();
            string sdkId   = "fake-sdk-id";

            string wrapped_receipt_key         = "kyHPjq2+Y48cx+9yS/XzmW09jVUylSdhbP+3Q9Tc9p6bCEnyfa8vj38AIu744RzzE+Dc4qkSF21VfzQKtJVILfOXu5xRc7MYa5k3zWhjiesg/gsrv7J4wDyyBpHIJB8TWXnubYMbSYQJjlsfwyxE9kGe0YI08pRo2Tiht0bfR5Z/YrhAk4UBvjp84D+oyug/1mtGhKphA4vgPhQ9/y2wcInYxju7Q6yzOsXGaRUXR38Tn2YmY9OBgjxiTnhoYJFP1X9YJkHeWMW0vxF1RHxgIVrpf7oRzdY1nq28qzRg5+wC7cjRpS2i/CKUAo0oVG4pbpXsaFhaTewStVC7UFtA77JHb3EnF4HcSWMnK5FM7GGkL9MMXQenh11NZHKPWXpux0nLZ6/vwffXZfsiyTIcFL/NajGN8C/hnNBljoQ+B3fzWbjcq5ueUOPwARZ1y38W83UwMynzkud/iEdHLaZIu4qUCRkfSxJg7Dc+O9/BdiffkOn2GyFmNjVeq754DCUypxzMkjYxokedN84nK13OU4afVyC7t5DDxAK/MqAc69NCBRLqMi5f8BMeOZfMcSWPGC9a2Qu8VgG125TuZT4+wIykUhGyj3Bb2/fdPsxwuKFR+E0uqs0ZKvcv1tkNRRtKYBqTacgGK9Yoehg12cyLrITLdjU1fmIDn4/vrhztN5w=";
            string other_party_profile_content = "ChCZAib1TBm9Q5GYfFrS1ep9EnAwQB5shpAPWLBgZgFgt6bCG3S5qmZHhrqUbQr3yL6yeLIDwbM7x4nuT/MYp+LDXgmFTLQNYbDTzrEzqNuO2ZPn9Kpg+xpbm9XtP7ZLw3Ep2BCmSqtnll/OdxAqLb4DTN4/wWdrjnFC+L/oQEECu646";
            string remember_me_id = "remember_me_id0123456789";

            FakeHttpRequester httpRequester = new FakeHttpRequester((httpClient, httpMethod, uri, headers, byteContent) =>
            {
                return(Task.FromResult(new Response
                {
                    Success = true,
                    StatusCode = 200,
                    Content = "{\"receipt\":{\"wrapped_receipt_key\": \"" + wrapped_receipt_key + "\",\"other_party_profile_content\": \"" + other_party_profile_content + "\",\"remember_me_id\":\"" + remember_me_id + "\", \"sharing_outcome\":\"SUCCESS\"}}"
                }));
            });

            YotiClientEngine engine = new YotiClientEngine(httpRequester);

            var activityDetails = engine.GetActivityDetails(_encryptedToken, sdkId, keyPair, YotiConstants.DefaultYotiApiUrl);

            Assert.IsNotNull(activityDetails);
            Assert.AreEqual(ActivityOutcome.Success, activityDetails.Outcome);

            Assert.IsNotNull(activityDetails.UserProfile);
            Assert.IsNotNull(activityDetails.Profile);

            Assert.AreEqual(remember_me_id, activityDetails.UserProfile.Id);
            Assert.AreEqual(remember_me_id, activityDetails.Profile.Id);

            Assert.IsNotNull(activityDetails.UserProfile.Selfie);
            Assert.AreEqual(Convert.ToBase64String(Encoding.UTF8.GetBytes("selfie0123456789")), Convert.ToBase64String(activityDetails.UserProfile.Selfie.Data));

            Assert.IsNotNull(activityDetails.Profile.Selfie);
            Assert.AreEqual(Convert.ToBase64String(Encoding.UTF8.GetBytes("selfie0123456789")), Convert.ToBase64String(activityDetails.Profile.Selfie.GetImage().Data));

            Assert.AreEqual("phone_number0123456789", activityDetails.UserProfile.MobileNumber);
            Assert.AreEqual("phone_number0123456789", activityDetails.Profile.MobileNumber.GetValue());

            Assert.AreEqual(new DateTime(1980, 1, 1), activityDetails.UserProfile.DateOfBirth);
            Assert.AreEqual(new DateTime(1980, 1, 1), (DateTime)activityDetails.Profile.DateOfBirth.GetValue());
        }
Ejemplo n.º 4
0
        public void YotiClientEngine_TokenDecodedSuccessfully()
        {
            var    keyPair = GetKeyPair();
            string sdkId   = "fake-sdk-id";

            FakeHttpRequester httpRequester = new FakeHttpRequester((uri, headers) =>
            {
                Assert.AreEqual("/api/v1/profile/" + token, uri.AbsolutePath);

                return(Task.FromResult(new Response
                {
                    Success = false,
                    StatusCode = 500
                }));
            });

            YotiClientEngine engine = new YotiClientEngine(httpRequester);

            engine.GetActivityDetails(encryptedToken, sdkId, keyPair);
        }
Ejemplo n.º 5
0
        public void YotiClientEngine_Http404_ReturnsProfileNotFound()
        {
            var    keyPair = GetKeyPair();
            string sdkId   = "fake-sdk-id";

            FakeHttpRequester httpRequester = new FakeHttpRequester((uri, headers) =>
            {
                return(Task.FromResult(new Response
                {
                    Success = false,
                    StatusCode = 404
                }));
            });

            YotiClientEngine engine = new YotiClientEngine(httpRequester);

            var activityDetails = engine.GetActivityDetails(encryptedToken, sdkId, keyPair);

            Assert.IsNotNull(activityDetails);
            Assert.AreEqual(ActivityOutcome.ProfileNotFound, activityDetails.Outcome);
        }
        public void YotiClientEngine_HttpFailure_ReturnsFailure()
        {
            var    keyPair = GetKeyPair();
            string sdkId   = "fake-sdk-id";

            FakeHttpRequester httpRequester = new FakeHttpRequester((httpClient, httpMethod, uri, headers, byteContent) =>
            {
                return(Task.FromResult(new Response
                {
                    Success = false,
                    StatusCode = 500
                }));
            });

            YotiClientEngine engine = new YotiClientEngine(httpRequester);

            var activityDetails = engine.GetActivityDetails(_encryptedToken, sdkId, keyPair, YotiConstants.DefaultYotiApiUrl);

            Assert.IsNotNull(activityDetails);
            Assert.AreEqual(ActivityOutcome.Failure, activityDetails.Outcome);
        }
Ejemplo n.º 7
0
        public void YotiClientEngine_SharingFailure_ReturnsFailure()
        {
            var    keyPair = GetKeyPair();
            string sdkId   = "fake-sdk-id";

            FakeHttpRequester httpRequester = new FakeHttpRequester((uri, headers) =>
            {
                return(Task.FromResult(new Response
                {
                    Success = true,
                    StatusCode = 200,
                    Content = "{\"session_data\":null,\"receipt\":{\"receipt_id\": null,\"other_party_profile_content\": null,\"policy_uri\":null,\"personal_key\":null,\"remember_me_id\":null, \"sharing_outcome\":\"FAILURE\",\"timestamp\":\"2016-09-23T13:04:11Z\"}}"
                }));
            });

            YotiClientEngine engine = new YotiClientEngine(httpRequester);

            var activityDetails = engine.GetActivityDetails(encryptedToken, sdkId, keyPair);

            Assert.IsNotNull(activityDetails);
            Assert.AreEqual(ActivityOutcome.Failure, activityDetails.Outcome);
        }
        public void YotiClientEngine_TokenDecodedSuccessfully()
        {
            var    keyPair = GetKeyPair();
            string sdkId   = "fake-sdk-id";

            FakeHttpRequester httpRequester = new FakeHttpRequester((httpClient, httpMethod, uri, headers, byteContent) =>
            {
                Assert.AreEqual("/api/v1/profile/" + _token, uri.AbsolutePath);

                return(Task.FromResult(new Response
                {
                    Success = false,
                    StatusCode = 500
                }));
            });

            YotiClientEngine engine = new YotiClientEngine(httpRequester);

            ActivityDetails activityDetails = engine.GetActivityDetails(_encryptedToken, sdkId, keyPair, YotiConstants.DefaultYotiApiUrl);

            Assert.IsNotNull(activityDetails.Outcome);
        }