package test.utils.json.compiler; import static org.hamcrest.Matchers.is; import java.util.ArrayList; import java.util.LinkedList; import org.junit.Assert; import org.junit.Test; import test.utils.json.CollectionObj; import test.utils.json.Group; import test.utils.json.SimpleObj; import com.firefly.utils.json.Parser; import com.firefly.utils.json.compiler.DecodeCompiler; import com.firefly.utils.json.compiler.EncodeCompiler; import com.firefly.utils.json.parser.CollectionParser; import com.firefly.utils.json.support.ParserMetaInfo; import com.firefly.utils.json.support.SerializerMetaInfo; public class TestCompiler { @Test public void test() { SerializerMetaInfo[] s = EncodeCompiler.compile(Group.class); ParserMetaInfo[] p = DecodeCompiler.compile(Group.class); for (int i = 0; i < p.length; i++) { Assert.assertThat(p[i].getPropertyNameString(), is(s[i].getPropertyNameString())); System.out.println(p[i].getPropertyNameString()); } } @Test public void test2() { ParserMetaInfo[] pp = DecodeCompiler.compile(CollectionObj.class); ParserMetaInfo p = pp[0]; Assert.assertThat(p.getType().getName(), is(ArrayList.class.getName())); Parser parser = p.getParser(); if(parser instanceof CollectionParser) { CollectionParser colp = (CollectionParser) parser; p = colp.getElementMetaInfo(); Assert.assertThat(p.getType().getName(), is(LinkedList.class.getName())); } parser = p.getParser(); if(parser instanceof CollectionParser) { CollectionParser colp = (CollectionParser) parser; p = colp.getElementMetaInfo(); Assert.assertThat(p.getType().getName(), is(SimpleObj.class.getName())); } } public static void main(String[] args) { ParserMetaInfo[] pp = DecodeCompiler.compile(CollectionObj.class); ParserMetaInfo p = pp[0]; test(p); } public static void test(ParserMetaInfo p) { System.out.println(p.getType()); Parser parser = p.getParser(); if(parser instanceof CollectionParser) { CollectionParser colp = (CollectionParser) parser; test(colp.getElementMetaInfo()); } } }