public void ParseComplexTest()
        {
            string expression =
                "$(Element.Name) : 'Test' Or $(Access) == 'Protected' Or " +
                "$(Access) == 'Private' And $(Element.Name) : 'OrAnd' And $(Type) == 'int'";

            IConditionExpression conditionExpression = ConditionExpressionParser.Instance.Parse(
                expression);

            Assert.IsNotNull(conditionExpression, "Expected an expression instance.");

            string expressionString = conditionExpression.ToString();

            Assert.AreEqual(
                "((($(Element.Name) : 'Test') Or ($(Element.Access) == 'Protected')) Or " +
                "((($(Element.Access) == 'Private') And ($(Element.Name) : 'OrAnd')) And ($(Element.Type) == 'int')))",
                expressionString,
                "Unexpected parsed expression.");

            // Parse the ToString representation and verify we get the same result
            conditionExpression = ConditionExpressionParser.Instance.Parse(
                expressionString);
            Assert.AreEqual(expressionString, conditionExpression.ToString(), "Unexpected parsed expression.");
        }