⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testeventdao.java

📁 hibernate quickly 一书的各章节源代码
💻 JAVA
字号:
package com.manning.hq.ch10;

import junit.framework.TestCase;

import java.util.List;
import java.util.Iterator;
import java.sql.Statement;

import org.hibernate.Session;

/**
 * 
 */
public class TestEventDao extends TestCase {

    /**
     *
     */
    public void testFindEventsFor() throws Exception {
        Event eventBefore = new Event();
        Event eventIn = new Event();
        Event eventAfter = new Event();

        eventBefore.setStartDate(DateUtils.newDate(6, 1, 2005));
        eventIn.setStartDate(DateUtils.newDate(7, 1, 2005));
        eventAfter.setStartDate(DateUtils.newDate(8, 1, 2005));

        EventDao eventDao = new EventDao();
        Session session = HibernateFactory.openSession();
        try {
            session.save(eventBefore);
            session.save(eventAfter);
            session.save(eventIn);
            session.flush();

            List eventsFor = eventDao.findEventsFor(7, 2005);
            assertEquals("Should return 1", 1, eventsFor.size());
            Event actualEvent = (Event) eventsFor.get(0);
            assertEquals("Should be Event In, not the other events.", eventIn.getId(), actualEvent.getId());
        } finally {
            session.delete(eventBefore);
            session.delete(eventIn);
            session.delete(eventAfter);
            session.flush();
            HibernateFactory.close(session);
        }
    }

    public void testFindEventsForVersion2() throws Exception {
        Event eventBefore = new Event();
        Event eventIn = new Event();
        Event eventAfter = new Event();

        eventBefore.setStartDate(DateUtils.newDate(6, 1, 2005));
        eventIn.setStartDate(DateUtils.newDate(7, 1, 2005));
        eventAfter.setStartDate(DateUtils.newDate(8, 1, 2005));

        EventDao eventDao = new EventDao();
        Session session = HibernateFactory.openSession();
        try {
            session.save(eventBefore);
            session.save(eventAfter);
            session.save(eventIn);
            session.flush();

            List eventsFor = eventDao.findEventsFor(7, 2005);
            assertTrue("Should return 1", eventsFor.size() >= 1);
            assertTrue("Should contain", contains(eventsFor, eventIn));
            assertFalse("Shouldn抰 contain before", contains(eventsFor, eventBefore));
            assertFalse("Shouldn抰 contain after", contains(eventsFor, eventAfter));
        } finally {
            session.delete(eventBefore);
            session.delete(eventIn);
            session.delete(eventAfter);
            session.flush();
            session.close();
        }
    }

    /**
     *
     */
    public void testResetToKnownState() throws Exception{
        Session session = HibernateFactory.openSession();
        Statement statement = session.connection().createStatement();
        statement.execute("DELETE FROM events");
        HibernateFactory.close(session);
    }
    private boolean contains(List list, Event contained) {
        for (Iterator it = list.iterator(); it.hasNext();) {
            Event event = (Event) it.next();
            if (event.getId().equals(contained.getId())) {
                return true;
            }
        }
        return false;
    }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -