Пример #1
0
        public void TestMatcherAnyEveryInEquals()
        {
            const string expressionJson  = @"
[""anyeveryin"",
    1,
    [""field"", ""testArray""],
    [""equals"",
        [""field"", 1],
        [""value"", ""jewels""]
    ]
]";
            var          expressionBytes = Encoding.UTF8.GetBytes(expressionJson);

            var parser     = new SimpleParser();
            var expression = parser.ParseJsonExpression(expressionBytes);

            var matcher = new SlowMatcher(new[] { expression });

            var ids = new[]
            {
                "5b47eb0936ff92a567a0307e"
            };

            foreach (var entry in _peopleData.Where(x => ids.Contains(x.Key)))
            {
                var data = Encoding.UTF8.GetBytes(entry.Value);
                Assert.True(matcher.Match(data));
            }
        }
Пример #2
0
        public void TestMatcherSometimesMissingBoolEquals()
        {
            const string expressionJson  = @"
[""equals"",
    [""field"", ""sometimesValue""],
    [""value"", false]
]";
            var          expressionBytes = Encoding.UTF8.GetBytes(expressionJson);

            var parser     = new SimpleParser();
            var expression = parser.ParseJsonExpression(expressionBytes);

            var matcher = new SlowMatcher(new[] { expression });

            var ids = new[]
            {
                "5b47eb0936ff92a567a0307e",
                "5b47eb096b1d911c0b9492fb"
            };

            foreach (var entry in _peopleData.Where(x => ids.Contains(x.Key)))
            {
                var data = Encoding.UTF8.GetBytes(entry.Value);
                Assert.True(matcher.Match(data));
            }
        }
Пример #3
0
        public void TestMatcherNestedAnyInAnyInEqualsNoMatch()
        {
            const string expressionJson  = @"
[""anyin"",
    1,
    [""field"", ""nestedArray""],
    [""anyin"",
        2,
        [""field"", 1],
        [""equals"",
            [""field"", 2],
            [""value"", ""z""]
        ]
    ]
]";
            var          expressionBytes = Encoding.UTF8.GetBytes(expressionJson);

            var parser     = new SimpleParser();
            var expression = parser.ParseJsonExpression(expressionBytes);

            var matcher = new SlowMatcher(new[] { expression });

            var ids = new string[] { };

            foreach (var entry in _peopleData.Where(x => ids.Contains(x.Key)))
            {
                var data = Encoding.UTF8.GetBytes(entry.Value);
                Assert.True(matcher.Match(data));
            }
        }
Пример #4
0
        public void TestMatcherNotTrueEquals()
        {
            const string expressionJson =
                @"
[""not"",
    [""equals"",
        [""field"", ""isActive""],
        [""value"", true]
    ]
]";
            var expressionBytes = Encoding.UTF8.GetBytes(expressionJson);

            var parser     = new SimpleParser();
            var expression = parser.ParseJsonExpression(expressionBytes);

            var matcher = new SlowMatcher(new[] { expression });

            var ids = new[]
            {
                "5b47eb096b1d911c0b9492fb",
                "5b47eb093771f06ced629663",
                "5b47eb09ffac5a6ce37042e7",
                "5b47eb091f57571d3c3b1aa1"
            };

            foreach (var entry in _peopleData.Where(x => ids.Contains(x.Key)))
            {
                var data = Encoding.UTF8.GetBytes(entry.Value);
                Assert.True(matcher.Match(data));
            }
        }
Пример #5
0
        public void TestMatcherTrueEquals()
        {
            const string expressionJson  = @"
[""equals"",
    [""field"",""isActive""],
    [""value"",true]
]";
            var          expressionBytes = Encoding.UTF8.GetBytes(expressionJson);

            var parser     = new SimpleParser();
            var expression = parser.ParseJsonExpression(expressionBytes);

            var matcher = new SlowMatcher(new[] { expression });

            var ids = new[]
            {
                "5b47eb0936ff92a567a0307e",
                "5b47eb0950e9076fc0aecd52",
                "5b47eb095c3ad73b9925f7f8",
                "5b47eb0962222a37d066e231",
                "5b47eb09996a4154c35b2f98",
                "5b47eb098eee4b4c4330ec64"
            };

            foreach (var entry in _peopleData.Where(x => ids.Contains(x.Key)))
            {
                var data = Encoding.UTF8.GetBytes(entry.Value);
                Assert.True(matcher.Match(data));
            }
        }
Пример #6
0
        public void TestMatcherMissingStringEquals()
        {
            const string expressionJson  = @"
[""equals"",
    [""field"", ""someValueWhichNeverExists""],
    [""value"", ""hello""]
]";
            var          expressionBytes = Encoding.UTF8.GetBytes(expressionJson);

            var parser     = new SimpleParser();
            var expression = parser.ParseJsonExpression(expressionBytes);

            var matcher = new SlowMatcher(new[] { expression });

            var ids = new string[] { };

            foreach (var entry in _peopleData.Where(x => ids.Contains(x.Key)))
            {
                var data = Encoding.UTF8.GetBytes(entry.Value);
                Assert.True(matcher.Match(data));
            }
        }
Пример #7
0
        public void TestMatcherFloatEquals()
        {
            const string expressionJson  = @"
[""equals"",
    [""field"",""latitude""],
    [""value"",-40.262556]
]";
            var          expressionBytes = Encoding.UTF8.GetBytes(expressionJson);

            var parser     = new SimpleParser();
            var expression = parser.ParseJsonExpression(expressionBytes);

            var matcher = new SlowMatcher(new[] { expression });

            var ids = new[] { "5b47eb096b1d911c0b9492fb" };

            foreach (var entry in _peopleData.Where(x => ids.Contains(x.Key)))
            {
                var data = Encoding.UTF8.GetBytes(entry.Value);
                Assert.True(matcher.Match(data));
            }
        }
Пример #8
0
        public void TestMatcherNumericEquals()
        {
            const string expressionJson  = @"
[""equals"",
    [""field"",""age""],
    [""value"",25]
]";
            var          expressionBytes = Encoding.UTF8.GetBytes(expressionJson);

            var parser     = new SimpleParser();
            var expression = parser.ParseJsonExpression(expressionBytes);

            var matcher = new SlowMatcher(new[] { expression });

            var ids = new[] { "5b47eb091f57571d3c3b1aa1" };

            foreach (var entry in _peopleData.Where(x => ids.Contains(x.Key)))
            {
                var data = Encoding.UTF8.GetBytes(entry.Value);
                Assert.True(matcher.Match(data));
            }
        }