public void Can_Read_Case_Switch_Expression() { // setup var tokenizer = NewTokenizer("CASE A.Field1 WHEN 1 THEN 'Y' WHEN 2 THEN 'N' ELSE 'U' END"); tokenizer.ReadNextToken(); ExpressionParser parser = new ExpressionParser(tokenizer); // exercise Expression expression = parser.Execute(); // verify Assert.IsNotNull(expression); Assert.IsTrue(expression is CaseSwitchExpression); CaseSwitchExpression caseSwitch = (CaseSwitchExpression)expression; Assert.AreEqual("A.Field1", caseSwitch.Switch.Value); Assert.AreEqual(2, caseSwitch.Cases.Count); Assert.AreEqual("1", caseSwitch.Cases[0].When.Value); Assert.AreEqual("'Y'", caseSwitch.Cases[0].Then.Value); Assert.AreEqual("2", caseSwitch.Cases[1].When.Value); Assert.AreEqual("'N'", caseSwitch.Cases[1].Then.Value); Assert.AreEqual("'U'", caseSwitch.Else.Value); }
private Expression GetCaseSwitchExpression(Expression parent) { CaseSwitchExpression result = new CaseSwitchExpression(parent); result.Switch = ReadCriteriaList(result); ParseCaseExpression(result); return(result); }