X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fthymeleaf%2FImportVariablesAttributeProcessorTest.java;fp=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fthymeleaf%2FImportVariablesAttributeProcessorTest.java;h=d23db46f156cd9598537f9c52f6f86cbdde440c3;hb=50ba1824d6011095a7349d0e0b381be61b683984;hp=0000000000000000000000000000000000000000;hpb=620cbe5d655c0ca35a026f187eb42e55decd6b08;p=juplo-dialect diff --git a/src/test/java/de/juplo/thymeleaf/ImportVariablesAttributeProcessorTest.java b/src/test/java/de/juplo/thymeleaf/ImportVariablesAttributeProcessorTest.java new file mode 100644 index 0000000..d23db46 --- /dev/null +++ b/src/test/java/de/juplo/thymeleaf/ImportVariablesAttributeProcessorTest.java @@ -0,0 +1,83 @@ +package de.juplo.thymeleaf; + + +import java.io.IOException; +import java.io.InputStream; +import java.util.Scanner; +import java.util.regex.Matcher; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import org.junit.Test; + + + +/** + * + * @author Kai Moritz + */ +public class ImportVariablesAttributeProcessorTest +{ + @Test + public void testPattern() throws IOException + { + Matcher matcher; + + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("{}"); + assertTrue(matcher.matches()); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher(" { } "); + assertTrue(matcher.matches()); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("\t{\t}\t"); + assertTrue(matcher.matches()); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("\n{\n}\n"); + assertTrue(matcher.matches()); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher(" \t\n{ \t\n} \t\n"); + assertTrue(matcher.matches()); + + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("{\"foo\":\"bar\",\"foobar\":{\"foo\":\"bar\"}"); + assertTrue(matcher.matches()); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher(" { \"foo\":\"bar\", \"foobar\": { \"foo\": \"bar\" } "); + assertTrue(matcher.matches()); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("\t{\t\"foo\":\t\"bar\"\t,\t\"foobar\":\t{\t\"foo\":\"bar\"\t}"); + assertTrue(matcher.matches()); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("\n{\n\"foo\":\n\"bar\"\n,\n\"foobar\":\n{\n\"foo\":\"bar\"\n}"); + assertTrue(matcher.matches()); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("\n\t {\n\t \"foo\":\n\t \"bar\"\n\t ,\n\t \"foobar\":\n\t {\n\t \"foo\":\"bar\"\n\t }"); + assertTrue(matcher.matches()); + + String json; + + json = read("/json/1.json"); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher(json); + assertTrue(matcher.matches()); + json = read("/json/2.json"); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher(json); + assertTrue(matcher.matches()); + json = read("/json/3.json"); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher(json); + assertTrue(matcher.matches()); + + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("foo:bar"); + assertTrue(matcher.matches()); + assertNull(matcher.group(1)); + assertNull(matcher.group(2)); + assertEquals("foo:bar", matcher.group(3)); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("replace:foo"); + assertTrue(matcher.matches()); + assertNull(matcher.group(1)); + assertNull(matcher.group(2)); + assertEquals("foo", matcher.group(3)); + matcher = ImportVariablesAttributeProcessor.PATTERN.matcher("merge:foo"); + assertTrue(matcher.matches()); + assertEquals("merge", matcher.group(1)); + assertNull(matcher.group(2)); + assertEquals("foo", matcher.group(3)); + } + + + String read(String resource) + { + InputStream is = getClass().getResourceAsStream(resource); + return new Scanner(is).useDelimiter("\\Z").next(); + } +}