Esempio n. 1
0
        public void TestEvaluateExpression()
        {
            InputValues inputValues = new InputValues()
            {
                MaxCardinality = 1,
                MinCardinality = 0,
                MaxDepth       = 32,
                NextDepth      = 1,
                NoMaxDepth     = true,
                IsArray        = true,
                Normalized     = false,
                ReferenceOnly  = true,
                Structured     = true
            };

            List <Tuple <string, bool> > exprAndExpectedResultList = new List <Tuple <string, bool> >();

            {
                exprAndExpectedResultList.Add(new Tuple <string, bool>("(cardinality.maximum > 1) && (!referenceOnly)", false));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("", true));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("  ", true));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("always", true));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("!structured", false));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("referenceOnly || (depth > 5)", true));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("!(referenceOnly)", false));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("!(normalized && cardinality.maximum > 1)", true));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("true", true));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("(((true==true)))", true));
                exprAndExpectedResultList.Add(new Tuple <string, bool>("!(normalized && isArray) || noMaxDepth", false));
            }

            foreach (var item in exprAndExpectedResultList)
            {
                bool actual   = ExpressionTree.EvaluateCondition(item.Item1, inputValues);
                bool expected = item.Item2;

                Assert.AreEqual(expected, actual);
            }
        }