Package com.javaeye.jert.service.test

Source Code of com.javaeye.jert.service.test.DrillDownColumnServiceTest

package com.javaeye.jert.service.test;

import net.sf.hibernate.FlushMode;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate.SessionFactoryUtils;
import org.springframework.orm.hibernate.SessionHolder;
import org.springframework.transaction.support.TransactionSynchronizationManager;

import com.javaeye.jert.domain.Database;
import com.javaeye.jert.domain.DrillDownColumn;
import com.javaeye.jert.domain.ReportDefinition;
import com.javaeye.jert.domain.query.QueryBuilder;
import com.javaeye.jert.service.DatabaseService;
import com.javaeye.jert.service.DrillDownColumnService;
import com.javaeye.jert.service.ReportDefinitionService;

/**
* @author   firebody
* @since    2005-3-10
* @version $Revision: 1.1 $
*/
public class DrillDownColumnServiceTest extends TestService {
    private DrillDownColumnService ddcService;
    /* (non-Javadoc)
     * @see com.javaeye.jert.service.test.TestService#getContext()
     */
    protected ApplicationContext getContext() {
        return new ClassPathXmlApplicationContext("com/javaeye/jert/service/test/DrillDownColumnServiceTest.xml");
    }

    protected void setUp() throws Exception {
        super.setUp();
        ddcService= (DrillDownColumnService) context.getBean("drillDownColumnService");
    }
   
    public void testCRUDDrillDownColumn() throws Exception{
        Database db = new Database();
        ((DatabaseService) context.getBean("databaseService")).createDatabase(db);
        ReportDefinition rd = new ReportDefinition();
        rd.setDatabase(db);
        rd.setName("test report one");
        rd.setSql("select * from user");
        rd.setQueryType(QueryBuilder.QUERY_TYPE_STATIC);
        ReportDefinitionService rs=(ReportDefinitionService)context.getBean("reportDefinitionService");
        rs.createReportDefinition(rd);
        ReportDefinition rd2 = new ReportDefinition();
        rd2.setDatabase(db);
        rd2.setName("test report two");
        rd2.setSql("select * from user");
        rd2.setQueryType(QueryBuilder.QUERY_TYPE_STATIC);
        rs.createReportDefinition(rd2);
        DrillDownColumn ddc=new DrillDownColumn();
        ddc.setName("name");
        ddc.setParametersIndex(2);
        rd.addDrillDownColumn(ddc);
        rd2.addAssociatedDrillDownColumn(ddc);
        ddcService.createDrillDownColumn(ddc);
        assertEquals(rd.getDrillDownColumns().size(),1);
        //getting the stored entity from session is redundant ?
        DrillDownColumn stored=ddcService.getDrillDownColumn(ddc.getId());
        assertEquals(ddc.getId(),stored.getId());
        assertEquals(stored.getName(),"name");
        assertEquals(stored.getParametersIndex(),2);
        assertEquals(stored.getReportDefinition().getId(),rd.getId());
        assertEquals(stored.getToReportDefinition().getId(),rd2.getId());
        stored.setName("changed name");
        ddcService.updateDrillDownColumn(stored);
        assertEquals(stored.getName(),"changed name");
        //test for cascade delete all associated DrillDownColumns
        this.closeSession();
        this.openSession();
        rs=(ReportDefinitionService)context.getBean("reportDefinitionService");
        rd2=rs.getReportDefinition(rd2.getId());
        rs.deleteReportDefinition(rd2);
        assertNull(ddcService.getDrillDownColumn(ddc.getId()));
        rd=rs.getReportDefinition(rd.getId());
        assertEquals(rd.getDrillDownColumns().size(),0);
       
       
    }
    private void openSession() {
        SessionFactory sessionFactory = (SessionFactory) context.getBean("sessionFactory");
        Session hibSession = SessionFactoryUtils.getSession(sessionFactory, true);
        hibSession.setFlushMode(FlushMode.NEVER);
        TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(hibSession));
    }
    private void closeSession() {
        SessionFactory sessionFactory = (SessionFactory) context.getBean("sessionFactory");
        SessionHolder sessionHolder = (SessionHolder) TransactionSynchronizationManager.unbindResource(sessionFactory);
        SessionFactoryUtils.closeSessionIfNecessary(sessionHolder.getSession(), sessionFactory);
    }

}
TOP

Related Classes of com.javaeye.jert.service.test.DrillDownColumnServiceTest

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.