// Path: app/src/main/java/de/codecentric/dao/impl/JpaSessionDao.java
// @Repository("sessionDao")
// @Transactional
// public class JpaSessionDao implements SessionDao {
// 
//     @PersistenceContext
//     private EntityManager em;
// 
//     public JpaSessionDao() {
//     }
// 
//     // test constructor
//     public JpaSessionDao(EntityManager em) {
//         this.em = em;
//     }
// 
//     public List<Session> getSessionsByDate(String date) {
//         return em.createNamedQuery("findSessionsForDate", Session.class).setParameter("date", date).getResultList();
//     }
// 
//     public List<Session> getAllSessions() {
//         return em.createNamedQuery("findAllSessions", Session.class).getResultList();
//     }
// 
//     public Session saveSession(Session session) {
//         return em.merge(session);
//     }
// 
//     public Session getSessionById(String id) {
//         return em.find(Session.class, Integer.parseInt(id));
//     }
// 
//     public List<Session> getAllStaticSessions() {
//         return em.createNamedQuery("findAllStaticSessions", Session.class).getResultList();
//     }
// 
//     public List<Session> getAllSessionsByDateAndType(String date, SessionType... type) {
//         return em.createNamedQuery("findSessionsForDate", Session.class).setParameter("date", date).setParameter("type", Arrays.asList(type)).getResultList();
//     }
// 
//     public List<Session> getStaticSessionsByDate(String date) {
//         return em.createNamedQuery("findStaticSessionsForDate", Session.class).setParameter("date", date).getResultList();
//     }
// 
//     public List<Session> getCurrentSessions() {
//         List<Session> todaySessions = getStaticSessionsByDate(getNowAsString());
//         List<Session> currentSessions = new ArrayList<Session>();
//         for (Session session : todaySessions) {
//             if (session.isInProgress(Calendar.getInstance())) {
//                 currentSessions.add(session);
//             }
//         }
// 
//         return currentSessions;
//     }
// 
//     public List<Session> getAllCurrentSessions() {
//         List<Session> todaySessions = getAllSessionsByDate(getNowAsString());
//         List<Session> currentSessions = new ArrayList<Session>();
//         for (Session session : todaySessions) {
//             if (session.isInNearProgress(DateTime.now())) {
//                 currentSessions.add(session);
//             }
//         }
// 
//         return currentSessions;
//     }
// 
//     String getNowAsString() {
//         SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
//         return format.format(new Date());
//     }
// 
//     @Override
//     public List<String> getListOfConferenceDays() {
//         return em.createNamedQuery("findListOfConferenceDays", String.class).getResultList();
//     }
// 
//     @Override
//     public List<Session> getAllSessionsByDate(String now) {
//         return em.createNamedQuery("findAllSessionsForDate", Session.class).setParameter("date", now).getResultList();
//     }
// 
//     @Override
//     public List<Session> getAllSessionsByAuthor(String author) {
//         return em.createNamedQuery("findAllSessionsForAuthor", Session.class).setParameter("author", "%" + author + "%").getResultList();
//     }
// 
//     @SuppressWarnings("unchecked")
// 	@Override
//     public List<Session> getAllSessionsByAuthorOrTitleOrDescription(String searchTerm){
//     	String searchTermLike = "%" + searchTerm + "%";
//         org.hibernate.Session session = (org.hibernate.Session) em.getDelegate();
// 
//         Criteria criteria = session.createCriteria(Session.class) 
//                 .add(
//                 		Restrictions.or(
//                 		    Restrictions.like("author",searchTermLike),
//                 		    Restrictions.like("title", searchTermLike),
//                 		    Restrictions.like("description" , searchTermLike)
//                 		    )
//                 	).addOrder(Order.asc("date"));
//         return (List<Session>)criteria.list();
//     }
// 
// }


import static org.mockito.Mockito.verify;
import javax.persistence.EntityManager;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import de.codecentric.dao.impl.JpaSessionDao;
package de.codecentric.domain;





public class JpaSessionDaoTest {

    @Mock
    private EntityManager emMock;

// Path: app/src/main/java/de/codecentric/dao/impl/JpaSessionDao.java
// @Repository("sessionDao")
// @Transactional
// public class JpaSessionDao implements SessionDao {
// 
//     @PersistenceContext
//     private EntityManager em;
// 
//     public JpaSessionDao() {
//     }
// 
//     // test constructor
//     public JpaSessionDao(EntityManager em) {
//         this.em = em;
//     }
// 
//     public List<Session> getSessionsByDate(String date) {
//         return em.createNamedQuery("findSessionsForDate", Session.class).setParameter("date", date).getResultList();
//     }
// 
//     public List<Session> getAllSessions() {
//         return em.createNamedQuery("findAllSessions", Session.class).getResultList();
//     }
// 
//     public Session saveSession(Session session) {
//         return em.merge(session);
//     }
// 
//     public Session getSessionById(String id) {
//         return em.find(Session.class, Integer.parseInt(id));
//     }
// 
//     public List<Session> getAllStaticSessions() {
//         return em.createNamedQuery("findAllStaticSessions", Session.class).getResultList();
//     }
// 
//     public List<Session> getAllSessionsByDateAndType(String date, SessionType... type) {
//         return em.createNamedQuery("findSessionsForDate", Session.class).setParameter("date", date).setParameter("type", Arrays.asList(type)).getResultList();
//     }
// 
//     public List<Session> getStaticSessionsByDate(String date) {
//         return em.createNamedQuery("findStaticSessionsForDate", Session.class).setParameter("date", date).getResultList();
//     }
// 
//     public List<Session> getCurrentSessions() {
//         List<Session> todaySessions = getStaticSessionsByDate(getNowAsString());
//         List<Session> currentSessions = new ArrayList<Session>();
//         for (Session session : todaySessions) {
//             if (session.isInProgress(Calendar.getInstance())) {
//                 currentSessions.add(session);
//             }
//         }
// 
//         return currentSessions;
//     }
// 
//     public List<Session> getAllCurrentSessions() {
//         List<Session> todaySessions = getAllSessionsByDate(getNowAsString());
//         List<Session> currentSessions = new ArrayList<Session>();
//         for (Session session : todaySessions) {
//             if (session.isInNearProgress(DateTime.now())) {
//                 currentSessions.add(session);
//             }
//         }
// 
//         return currentSessions;
//     }
// 
//     String getNowAsString() {
//         SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
//         return format.format(new Date());
//     }
// 
//     @Override
//     public List<String> getListOfConferenceDays() {
//         return em.createNamedQuery("findListOfConferenceDays", String.class).getResultList();
//     }
// 
//     @Override
//     public List<Session> getAllSessionsByDate(String now) {
//         return em.createNamedQuery("findAllSessionsForDate", Session.class).setParameter("date", now).getResultList();
//     }
// 
//     @Override
//     public List<Session> getAllSessionsByAuthor(String author) {
//         return em.createNamedQuery("findAllSessionsForAuthor", Session.class).setParameter("author", "%" + author + "%").getResultList();
//     }
// 
//     @SuppressWarnings("unchecked")
// 	@Override
//     public List<Session> getAllSessionsByAuthorOrTitleOrDescription(String searchTerm){
//     	String searchTermLike = "%" + searchTerm + "%";
//         org.hibernate.Session session = (org.hibernate.Session) em.getDelegate();
// 
//         Criteria criteria = session.createCriteria(Session.class) 
//                 .add(
//                 		Restrictions.or(
//                 		    Restrictions.like("author",searchTermLike),
//                 		    Restrictions.like("title", searchTermLike),
//                 		    Restrictions.like("description" , searchTermLike)
//                 		    )
//                 	).addOrder(Order.asc("date"));
//         return (List<Session>)criteria.list();
//     }
// 
// }


// Path: app/src/test/java/de/codecentric/domain/JpaSessionDaoTest.java
import static org.mockito.Mockito.verify;
import javax.persistence.EntityManager;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import de.codecentric.dao.impl.JpaSessionDao;

package de.codecentric.domain;





public class JpaSessionDaoTest {

    @Mock
    private EntityManager emMock;

    private JpaSessionDao dao;