package com.google.sitebricks.util; import com.google.inject.Guice; import com.google.inject.Module; import com.google.sitebricks.compiler.*; import com.google.sitebricks.rendering.DynTypedMvelEvaluatorCompiler; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import java.util.List; import java.util.HashMap; /** * Created with IntelliJ IDEA. * On: Mar 25, 2007 12:06:10 PM * * @author Dhanji R. Prasanna (dhanji at gmail com) */ public class TextToolsTest { private static final String TOKENS = "tokens"; @DataProvider(name = TOKENS) public final Object[][] tokens() { return new Object[][]{ {new String[]{"hello expr", "${expr}"}}, {new String[]{"hello expr", "${expr}", "as $asd $ {}"}}, {new String[]{"$$ { {}", "${}"}}, }; } @Test(dataProvider = TOKENS) public final void testTokenize(String[] rawStream) throws ExpressionCompileException { StringBuilder builder = new StringBuilder(); for (String chunk : rawStream) builder.append(chunk); List<Token> tokens = Parsing.tokenize(builder.toString(), new DynTypedMvelEvaluatorCompiler(new HashMap<String, Class<?>>())); assertEquals(tokens.size(),rawStream.length); for (int i = 0; i < rawStream.length; i++) { Token token = tokens.get(i); // assert rawStream[i].equals(token.getToken()); if (rawStream[i].startsWith("${") && rawStream[i].endsWith("}")) assertTrue(token.isExpression()); else assertTrue(!token.isExpression()); } } }