Package org.apache.ojb.broker.metadata.torque

Source Code of org.apache.ojb.broker.metadata.torque.TorqueTableGeneratorTest

package org.apache.ojb.broker.metadata.torque;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import org.apache.ojb.broker.metadata.ClassDescriptor;
import org.apache.ojb.broker.metadata.DescriptorRepository;
import org.apache.ojb.broker.metadata.FieldDescriptor;
import org.apache.ojb.broker.metadata.RepositoryPersistor;
import org.apache.ojb.broker.metadata.torque.TableDescriptor;
import org.apache.ojb.broker.metadata.torque.TorqueTableGenerator;
import org.apache.ojb.broker.TestHelper;

public class TorqueTableGeneratorTest extends TestCase {

    private static final String EXAMPLE_FILE = TestHelper.DEF_REPOSITORY;
    private static final String EMPTY_STANDARD_TABLE =
            "    <table name=\"null\" indexTablespace=\"JUnit indx\">\n" +
            "    </table>\n\n";
    private static final String PERSON_PROJECT_TABLE =
            "    <table name=\"PERSON_PROJECT\" indexTablespace=\"JUnit indx\">\n" +
            "        <column name=\"Kategorie_Nr\" required=\"false\" autoIncrement=\"false\" primaryKey=\"true\" type=\"INTEGER\"/>\n" +
            "        <column name=\"KategorieName\" required=\"false\" autoIncrement=\"false\" primaryKey=\"false\" type=\"VARCHAR\"/>\n" +
            "        <column name=\"Beschreibung\" required=\"false\" autoIncrement=\"false\" primaryKey=\"false\" type=\"VARCHAR\"/>\n" +
            "        <foreign-key foreignTable=\"PROJECT\">\n" +
            "            <reference local=\"PROJECT_ID\" foreign=\"ID\"/>\n" +
            "        </foreign-key>\n" +
            "        <foreign-key foreignTable=\"PERSON\">\n" +
            "            <reference local=\"PERSON_ID\" foreign=\"ID\"/>\n" +
            "        </foreign-key>\n" +
            "    </table>\n\n";

    private static final String MAPPING_TABLES =
            "    <table name=\"PageWords\" indexTablespace=\"JUnit indx\">\n" +
            "        <column name=\"ID\" required=\"true\" autoIncrement=\"false\" primaryKey=\"true\" type=\"INTEGER\"/>\n" +
            "        <foreign-key foreignTable=\"WORD\">\n" +
            "            <reference local=\"wordId\" foreign=\"ID\"/>\n" +
            "        </foreign-key>\n" +
            "        <foreign-key foreignTable=\"PAGE\">\n" +
            "            <reference local=\"pageId\" foreign=\"ID\"/>\n" +
            "        </foreign-key>\n" +
            "    </table>\n";

    private TorqueTableGenerator torqueTableGenerator;
    private DescriptorRepository repository;

    public TorqueTableGeneratorTest(String name) {
        super(name);
    }

    public void setUp() throws Exception {
        RepositoryPersistor repositoryPersistor = new RepositoryPersistor();
        this.repository = repositoryPersistor.readDescriptorRepository(EXAMPLE_FILE);
        this.torqueTableGenerator = new TorqueTableGenerator(this.repository, false);
    }

    public void tearDown() throws Exception {
        this.torqueTableGenerator = null;
    }

    public void testGenerateStandardTables() {
        StringBuffer buffer = new StringBuffer();
        TableDescriptor tableDescriptor = new TableDescriptor();
        this.torqueTableGenerator.generateStandardTable(tableDescriptor, buffer, "JUnit indx");
        assertEquals(EMPTY_STANDARD_TABLE, buffer.toString());

        buffer = new StringBuffer();
        tableDescriptor.setName("PERSON_PROJECT");
        ClassDescriptor classDescriptor = this.repository.getDescriptorFor(org.apache.ojb.odmg.shared.ProductGroup.class);
        FieldDescriptor fieldDescriptors[] = classDescriptor.getFieldDescriptions();
        for (int i = 0; i < fieldDescriptors.length; i++) {
            tableDescriptor.addColumn(fieldDescriptors[i]);
        }
        tableDescriptor.setIndices(classDescriptor.getIndexes());
        tableDescriptor.getReferences().addAll(classDescriptor.getObjectReferenceDescriptors());

        this.torqueTableGenerator.generateStandardTable(tableDescriptor, buffer, "JUnit indx");
        assertEquals(PERSON_PROJECT_TABLE, buffer.toString());
    }

    public void testGenerateMappingTables() {
        StringBuffer buffer = new StringBuffer();
        TableDescriptor tableDescriptor = new TableDescriptor();
        this.torqueTableGenerator.generateMappingTables(buffer, "JUnit indx");
        assertEquals(MAPPING_TABLES, buffer.toString());
    }

    public static void main(String[] args) {
        TestRunner.run(suite());
    }

    public static Test suite() {
        return new TestSuite(TorqueTableGeneratorTest.class);
    }

}
TOP

Related Classes of org.apache.ojb.broker.metadata.torque.TorqueTableGeneratorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.