public void MobileHandoffShouldBeNullIfNotSet()
        {
            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .Build();

            Assert.IsNull(sdkConfig.AllowHandoff);
        }
        public void AttemptsConfigurationShouldBeNullIfNotSet()
        {
            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .Build();

            Assert.IsNull(sdkConfig.AttemptsConfiguration);
        }
        public void ShouldBuildWithAllowsCameraAndUpload()
        {
            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithAllowsCameraAndUpload()
                .Build();

            Assert.AreEqual("CAMERA_AND_UPLOAD", sdkConfig.AllowedCaptureMethods);
        }
        public void ShouldBuildWithPresetIssuingCountry()
        {
            string country = "USA";

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithPresetIssuingCountry(country)
                .Build();

            Assert.AreEqual(country, sdkConfig.PresetIssuingCountry);
        }
        public void ShouldBuildWithLocale()
        {
            string locale = "en";

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithLocale(locale)
                .Build();

            Assert.AreEqual(locale, sdkConfig.Locale);
        }
        public void ShouldBuildWithFontColour()
        {
            string fontColour = "#2d9fff";

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithFontColour(fontColour)
                .Build();

            Assert.AreEqual(fontColour, sdkConfig.FontColour);
        }
        public void ShouldBuildWithSecondaryColour()
        {
            string colour = "#000000";

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithSecondaryColour(colour)
                .Build();

            Assert.AreEqual(colour, sdkConfig.SecondaryColour);
        }
        public void ShouldBuildWithPrimaryColour()
        {
            string colour = "#ffffff";

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithPrimaryColour(colour)
                .Build();

            Assert.AreEqual(colour, sdkConfig.PrimaryColour);
        }
        public void ShouldBuildWithMobileHandoff()
        {
            bool mobileHandoff = true;

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithAllowHandoff(mobileHandoff)
                .Build();

            Assert.AreEqual(mobileHandoff, sdkConfig.AllowHandoff);
        }
        public void ShouldBuildWithErrorUrl()
        {
            string error = "https://yourdomain.com/some/failure/endpoint";

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithErrorUrl(error)
                .Build();

            Assert.AreEqual(error, sdkConfig.ErrorUrl);
        }
        public void ShouldBuildWithPrivacyPolicyUrl()
        {
            string privacyPolicyUrl = "https://yourdomain.com/some/privacy-policy";

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithPrivacyPolicyUrl(privacyPolicyUrl)
                .Build();

            Assert.AreEqual(privacyPolicyUrl, sdkConfig.PrivacyPolicyUrl);
        }
        public void ShouldBuildWithSuccessUrl()
        {
            string success = "https://yourdomain.com/some/success/endpoint";

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithSuccessUrl(success)
                .Build();

            Assert.AreEqual(success, sdkConfig.SuccessUrl);
        }
        public void ShouldBuildWithIdDocumentTextExtractionCategoryRetries()
        {
            string category = "someCategory";
            int    retries  = 2;
            var    kvp      = new KeyValuePair <string, int>(category, retries);

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithIdDocumentTextExtractionCategoryRetries(category, retries)
                .Build();

            CollectionAssert.Contains(sdkConfig.AttemptsConfiguration.IdDocumentTextDataExtraction, kvp);
        }
        public void AttemptsConfigurationShouldResetSameValueWithRepeatedCalls()
        {
            var kvp = new KeyValuePair <string, int>(DocScanConstants.Reclassification, 4);

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithIdDocumentTextExtractionReclassificationRetries(2)
                .WithIdDocumentTextExtractionReclassificationRetries(3)
                .WithIdDocumentTextExtractionReclassificationRetries(4)
                .Build();

            Assert.AreEqual(1, sdkConfig.AttemptsConfiguration.IdDocumentTextDataExtraction.Count);
            CollectionAssert.Contains(sdkConfig.AttemptsConfiguration.IdDocumentTextDataExtraction, kvp);
        }
        public void AttemptsConfigurationShouldAllowMultipleCategories()
        {
            var    kvpReclassificationRetries = new KeyValuePair <string, int>(DocScanConstants.Reclassification, 1);
            string category = "someCategory";
            int    retries  = 2;
            var    kvpUsersChoiceOfCategory = new KeyValuePair <string, int>(category, retries);
            var    kvpGenericRetries        = new KeyValuePair <string, int>(DocScanConstants.Generic, 3);

            SdkConfig sdkConfig =
                new SdkConfigBuilder()
                .WithIdDocumentTextExtractionReclassificationRetries(1)
                .WithIdDocumentTextExtractionCategoryRetries(category, retries)
                .WithIdDocumentTextExtractionGenericRetries(3)
                .Build();

            Assert.AreEqual(3, sdkConfig.AttemptsConfiguration.IdDocumentTextDataExtraction.Count);
            CollectionAssert.Contains(sdkConfig.AttemptsConfiguration.IdDocumentTextDataExtraction, kvpReclassificationRetries);
            CollectionAssert.Contains(sdkConfig.AttemptsConfiguration.IdDocumentTextDataExtraction, kvpUsersChoiceOfCategory);
            CollectionAssert.Contains(sdkConfig.AttemptsConfiguration.IdDocumentTextDataExtraction, kvpGenericRetries);
        }