Package org.apache.ojb.odmg

Source Code of org.apache.ojb.odmg.ProjectionAttributeTest

/*
* Created by IntelliJ IDEA.
* User: Matt
* Date: May 19, 2002
* Time: 3:43:36 PM
* To change template for new class use
* Code Style | Class Templates options (Tools | IDE Options).
*/
package org.apache.ojb.odmg;

import java.util.List;

import junit.framework.TestCase;
import org.apache.ojb.broker.ManageableCollection;
import org.apache.ojb.broker.TestHelper;
import org.apache.ojb.odmg.shared.Article;
import org.odmg.Database;
import org.odmg.Implementation;
import org.odmg.OQLQuery;
import org.odmg.Transaction;

public class ProjectionAttributeTest extends TestCase
{
    private static Class CLASS = ProjectionAttributeTest.class;
    private String databaseName;
    private int COUNT = 10;

    public static void main(String[] args)
    {
        String[] arr = {CLASS.getName()};
        junit.textui.TestRunner.main(arr);
    }

    /**
     * Insert the method's description here.
     * Creation date: (06.12.2000 21:58:53)
     */
    public void setUp()
    {
        databaseName = TestHelper.DEF_DATABASE_NAME;
    }

    /**
     * Insert the method's description here.
     * Creation date: (06.12.2000 21:59:14)
     */
    public void tearDown()
    {
        databaseName = null;
    }

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

    private void createData(Database db, Implementation odmg)
            throws Exception
    {
//        Implementation odmg = OJB.getInstance();
        Transaction tx = odmg.newTransaction();
//        db.open(databaseName, Database.OPEN_READ_WRITE);
        tx.begin();
        for (int i = 0; i < COUNT; i++)
        {
            org.apache.ojb.broker.Person aPerson = new org.apache.ojb.broker.Person();
            aPerson.setId(i);
            aPerson.setFirstname("firstname" + i);
            aPerson.setLastname("lastname" + i);
            db.makePersistent(aPerson);
        }
        tx.commit();
    }

    /**
     * test getting all (make sure basic operation is still functional)
     */
    public void testGetProjectionAttribute() throws Exception
    {
        Implementation odmg = OJB.getInstance();
        Database db = odmg.newDatabase();
        db.open(databaseName, Database.OPEN_READ_WRITE);
        try
        {
            createData(db, odmg);

            // 3. Get a list of some articles
            Transaction tx = odmg.newTransaction();
            tx.begin();

            OQLQuery query = odmg.newOQLQuery();
            String sql = "select aPerson.firstname, aPerson.lastname from " + org.apache.ojb.broker.Person.class.getName();
            query.create(sql);

            ManageableCollection result = (ManageableCollection) query.execute();

            // Iterator over the restricted articles objects
            java.util.Iterator it = result.ojbIterator();
            int i = 0;
            while (it.hasNext())
            {
                Object[] res = (Object[]) it.next();
                String firstname = (String) res[0];
                String lastname = (String) res[1];
               
                i++;
            }
            if (i < COUNT)
                fail("Should have found at least " + COUNT + " items");

            OQLQuery query1 = odmg.newOQLQuery();
            query1.create("select distinct anArticle.productGroup.groupId from " + Article.class.getName());
            List result1 = (List) query1.execute();
            for (it = result1.iterator(); it.hasNext(); )
            {
                it.next();
            }
            tx.commit();
        }
        catch (Throwable t)
        {
            t.printStackTrace(System.out);
            fail("testGetAllUnrestricted: " + t.getMessage());
        }
    }

}
TOP

Related Classes of org.apache.ojb.odmg.ProjectionAttributeTest

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.