package org.trimou.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.junit.Test; import org.trimou.engine.MustacheEngineBuilder; /** * * @author Martin Kouba */ public class PatternsTest { @Test public void testMustacheTagPattern() { String text = "{{foo }} and {{#bar}}...{{/bar}}"; Pattern tagPattern = Patterns .newMustacheTagPattern(MustacheEngineBuilder.newBuilder() .build().getConfiguration()); Matcher matcher = tagPattern.matcher(text); StringBuffer result = new StringBuffer(); int occurences = 0; while (matcher.find()) { System.out.println(matcher.group(0)); matcher.appendReplacement(result, "FOUND"); occurences++; } matcher.appendTail(result); assertEquals(3, occurences); assertEquals("FOUND and FOUND...FOUND", result.toString()); } @Test public void testSetDelimitersPattern() { String set1 = "<% %>"; String set2 = "[ ]"; String set3 = "= ="; Pattern setDelimitersPattern = Patterns .newSetDelimitersContentPattern(); Matcher set1Matcher = setDelimitersPattern.matcher(set1); assertEquals(true, set1Matcher.find()); assertEquals("<%", set1Matcher.group(1)); assertEquals("%>", set1Matcher.group(3)); Matcher set2Matcher = setDelimitersPattern.matcher(set2); assertEquals(true, set2Matcher.find()); assertEquals("[", set2Matcher.group(1)); assertEquals("]", set2Matcher.group(3)); Matcher set3Matcher = setDelimitersPattern.matcher(set3); assertEquals(true, set3Matcher.find()); assertEquals("=", set3Matcher.group(1)); assertEquals("=", set3Matcher.group(3)); } @Test public void testHelperIntOrLongLiteralPattern() { assertFalse(Patterns.newHelperIntegerLiteralPattern() .matcher("\"foo\"").matches()); assertTrue(Patterns.newHelperIntegerLiteralPattern().matcher("1") .matches()); assertTrue(Patterns.newHelperIntegerLiteralPattern().matcher("+12") .matches()); assertTrue(Patterns.newHelperIntegerLiteralPattern().matcher("-10000") .matches()); assertFalse(Patterns.newHelperIntegerLiteralPattern().matcher("1.0") .matches()); assertFalse(Patterns.newHelperIntegerLiteralPattern() .matcher("1000000000000").matches()); } }