public void RegExExtraction_Theory(string regexString, string content, string extractionFunction)
        {
            const string claimName = "PityTheFoolClaim";

            RegexClaimExtractionConfig.ExtractValueByRegexAsync extractionFunc = null;
            if (extractionFunction?.Equals(nameof(ExtractionFunctions.RegexFunc)) ?? false)
            {
                extractionFunc = ExtractionFunctions.RegexFunc;
            }
            var regex  = new Regex(regexString);
            var config = new ValidRegexClaimExtractionConfig(extractionFunc, regex, claimName, ClaimLocation.Body);

            Assert.True(config.ClaimLocation.Equals(ClaimLocation.Body));
            Assert.True(config.ExtractionType.Equals(ExtractionType.RegEx));
            var result = config.GetClaimAsync(content).Result;

            switch (regexString)
            {
            case "/a/b/c/(.*)/e":
            {
                if (string.IsNullOrEmpty(content))
                {
                    if (content == null)
                    {
                        Assert.Equal(claimName, result.Type);
                        Assert.Equal(string.Empty, result.Value);
                    }
                    else
                    {
                        Assert.Equal(claimName, result.Type);
                        Assert.Equal(string.Empty, result.Value);
                    }
                }
                else
                {
                    Assert.Equal(claimName, result.Type);
                    Assert.Equal("d", result.Value);
                }
                break;
            }

            case "/a/(.*)/c/d/e":
            {
                Assert.Equal(claimName, result.Type);
                Assert.Equal("b", result.Value);
                break;
            }

            case "":
            {
                Assert.Equal(claimName, result.Type);
                Assert.Equal(string.Empty, result.Value);
                break;
            }
            }
        }
        public void RegexExtraction_NullData()
        {
            const string claimName = "PityTheFoolClaim";
            var          regex     = new Regex("/a/(.*)/c/d/e");
            var          config    = new ValidRegexClaimExtractionConfig(ExtractionFunctions.RegexFunc, regex, claimName, ClaimLocation.Body);

            Assert.True(config.ClaimLocation.Equals(ClaimLocation.Body));
            Assert.True(config.ExtractionType.Equals(ExtractionType.RegEx));
            try
            {
                config.GetClaimAsync(null).Wait();
            }
            catch (AggregateException) { return; }
            Assert.True(false);
        }