001: /*
002: * User: Michael Rettig
003: * Date: Sep 15, 2002
004: * Time: 1:06:32 PM
005: */
006: package net.sourceforge.jaxor.parser.tests;
007:
008: import net.sourceforge.jaxor.example.tests.JaxorTestCase;
009: import net.sourceforge.jaxor.parser.Aggregate;
010: import net.sourceforge.jaxor.parser.Attribute;
011: import net.sourceforge.jaxor.parser.Entity;
012: import net.sourceforge.jaxor.parser.EntityParser;
013: import org.jdom.CDATA;
014: import org.jdom.Element;
015:
016: import java.util.List;
017:
018: public class EntityParserTest extends JaxorTestCase {
019:
020: public void testParsing() throws Exception {
021: EntityParser parser = new EntityParser("srcfile", null);
022: parser.generate(getInputSource(createJaxorElement()), false);
023: Entity ent = parser.getJaxor().getEntity();
024: assertEquals("table_name", ent.getTableName());
025: List prim = ent.getAttributeList().getPrimaryKey();
026: assertEquals(1, prim.size());
027: Attribute key = (Attribute) prim.get(0);
028: assertEquals("column_name", key.getName());
029: assertEquals(1, ent.getAggregates().size());
030: assertEquals(2, ((Aggregate) ent.getAggregates().get(0))
031: .getAttributes().size());
032: assertEquals("where column_name > -1", ent.getSelectAllSql());
033: }
034:
035: private Element createJaxorElement() {
036: Element el = new Element("jaxor");
037: el.setAttribute("package", "com.test");
038: el.addContent(createImport());
039: el.addContent(createEntity());
040: return el;
041: }
042:
043: private Element createEntity() {
044: Element el = new Element("entity");
045: el.setAttribute("name", "table_name");
046: el.setAttribute("select-all-sql", "where column_name > -1");
047: el.addContent(createDeclaration());
048: el.addContent(createPrimaryKey());
049: el.addContent(createAggregate());
050: el.addContent(createQuery());
051: el.addContent(createMethod());
052: return el;
053: }
054:
055: private static Element createImport() {
056: Element el = new Element("import");
057: el.setAttribute("name", "java.io.*");
058: return el;
059: }
060:
061: public static Element createQuery() {
062: Element el = new Element("query");
063: el.setAttribute("name", "selectAll");
064: el.setAttribute("sql", "where id=?");
065: el.addContent(createParam());
066: return el;
067: }
068:
069: private static Element createMethod() {
070: Element el = new Element("method");
071: el.setAttribute("throws", "Exception");
072: el.setAttribute("name", "methodName");
073: el.setAttribute("type", "void");
074: el.addContent(createParam());
075: return el;
076: }
077:
078: private static Element createParam() {
079: Element el = new Element("param");
080: el.setAttribute("name", "param_name");
081: el.setAttribute("type", "java.lang.Long");
082: return el;
083: }
084:
085: private Element createAggregate() {
086: Element el = new Element("aggregate");
087: el.setAttribute("alias", "AggregateField");
088: el.setAttribute("type", "com.something.Objet");
089: el.setAttribute("mapper", "mapperClass");
090: el.addContent(createAttribute());
091: el.addContent(createAttribute());
092: return el;
093: }
094:
095: private Element createPrimaryKey() {
096: Element el = new Element("primary-key");
097: el.addContent(createAttribute());
098: return el;
099: }
100:
101: private Element createDeclaration() {
102: Element el = new Element("declarations");
103: el.addContent(new CDATA("private static int count = 0;"));
104: return el;
105: }
106:
107: public static Element createAttribute() {
108: Element el = new Element("attribute");
109: el.setAttribute("name", "column_name");
110: el.setAttribute("type", "java.lang.Long");
111: el.setAttribute("mapper", "LongMapper");
112: return el;
113: }
114: }
|