package org.jtwig.parser.parboiled.expression; import org.hamcrest.CoreMatchers; import org.hamcrest.Matcher; import org.jtwig.model.expression.ComprehensionListExpression; import org.jtwig.model.expression.Expression; import org.jtwig.parser.ParseException; import org.jtwig.parser.parboiled.AbstractParserTest; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.parboiled.support.ParsingResult; import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertThat; public class ComprehensionListExpressionParserTest extends AbstractParserTest { private ComprehensionListExpressionParser underTest = context.parser(ComprehensionListExpressionParser.class); @Rule public ExpectedException expectedException = ExpectedException.none(); @Test public void happyComprehension() throws Exception { ParsingResult<Expression> result = parse(underTest.ExpressionRule(), "[1..2]"); Expression exp = result.valueStack.pop(); assertThat(exp, instanceOf(ComprehensionListExpression.class)); } @Test public void missingEndBracketComprehension() throws Exception { expectedException.expectCause((Matcher)CoreMatchers.instanceOf(ParseException.class)); parse(underTest.ExpressionRule(), "[1..2"); } }