[jboss-cvs] JBossAS SVN: r100262 - in projects/snowdrop/examples/trunk/sportsclub: sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository and 8 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 2 10:54:48 EST 2010


Author: lvlcek at redhat.com
Date: 2010-02-02 10:54:46 -0500 (Tue, 02 Feb 2010)
New Revision: 100262

Added:
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateEquipmentRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateInvoiceRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateMembershipRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernatePersonRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaAccountRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaEquipmentRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaInvoiceRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaMembershipRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaReservationRepository.java
Removed:
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonDao.java
Modified:
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Reservation.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/AccountRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/PaymentRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/ReservationRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateReservationRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/initializer/DatabaseInitializer.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateReservationRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaAccountRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaEquipmentRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaInvoiceRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaMembershipRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaPaymentRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaReservationRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/initializer/DatabaseInitializer.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/sportsclub/service/ReservationService.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/sportsclub/service/ReservationServiceImpl.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java
Log:
Implemented JPA Repository stubs
Implemented tests for JPA and Hibernate Repositories

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Reservation.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Reservation.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Reservation.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -2,11 +2,7 @@
 
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
+import javax.persistence.*;
 
 /**
  * @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
@@ -25,10 +21,10 @@
    @Column(name = "toDT", nullable = false)
    private Date to;
 
-   @ManyToOne
+   @ManyToOne(fetch = FetchType.LAZY)
    private Equipment equipment;
 
-   @ManyToOne
+   @ManyToOne(fetch = FetchType.LAZY)
    private Account account;
 
 

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/AccountRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/AccountRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/AccountRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -10,6 +10,7 @@
  */
 public interface AccountRepository extends Repository<Account, Long>
 {
+   // TODO if no usages then remove this method!
    List<Account> findByPersonName(String name);
 
    int countByCriteria(AccountSearchCriteria accountSearchCriteria);

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/PaymentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/PaymentRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/PaymentRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -7,6 +7,6 @@
 
 public interface PaymentRepository extends Repository<Payment, Long>
 {
-
+    // TODO if not used then remove!
     List<Payment> findForAccount(Account account);
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/ReservationRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/ReservationRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/ReservationRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -9,5 +9,5 @@
 {
    List<Reservation> getByCriteria(ReservationSearchCriteria criteria);
 
-   Integer countByCriteria(ReservationSearchCriteria criteria);
+   Long countByCriteria(ReservationSearchCriteria criteria);
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateReservationRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateReservationRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateReservationRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -66,11 +66,11 @@
       return cri.list();
    }
 
-   public Integer countByCriteria(ReservationSearchCriteria criteria)
+   public Long countByCriteria(ReservationSearchCriteria criteria)
    {
       Criteria cri = convert(criteria);
       cri.setProjection(Projections.count("id"));
-      return (Integer) cri.uniqueResult();
+      return new Long((Integer)cri.uniqueResult());
    }
 
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/initializer/DatabaseInitializer.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/initializer/DatabaseInitializer.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/initializer/DatabaseInitializer.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -95,6 +95,13 @@
             saveMap(session, accounts);
 
 
+            Map<String, Invoice> invoices = new HashMap<String, Invoice>();
+
+            invoices.put("invoice1", createInvoice(accounts.get("account1")));
+
+            saveMap(session, invoices);
+
+
             Map<String, Equipment> equipments = new HashMap<String, Equipment>();
 
             equipments.put("equipment1", createEquipment("Engage", "95T Engage by LifeFitness", TREADMILL));
@@ -123,7 +130,7 @@
       });
    }
 
-   private static void saveMap(Session session, Map data)
+   private void saveMap(Session session, Map data)
    {
       for (String key : (Set<String>)data.keySet())
       {
@@ -131,13 +138,13 @@
       }
    }
 
-   private static void save(Session session, Object entity)
+   private void save(Session session, Object entity)
    {
       session.save(entity);
       session.flush();
    }
 
-   private static Account createAccount(Membership silverMembership, BillingType billingType, Person person)
+   private Account createAccount(Membership silverMembership, BillingType billingType, Person person)
    {
       Account account = new Account();
       account.setSubscriber(person);
@@ -148,8 +155,21 @@
       return account;
    }
 
-   private static Person createPerson(String firstname, String lastname, String street, String city, String province, String country)
+   private Invoice createInvoice(Account account)
    {
+      Date date = createDate(2009, 02, 01);
+
+      Invoice invoice = new Invoice();
+      invoice.setAccount(account);
+      invoice.setAmount(account.getFeePerBillingPeriod());
+      invoice.setIssueDate(date);
+      invoice.setBillingPeriod(account.getBillingPeriodFor(date));
+
+      return invoice;
+   }
+
+   private Person createPerson(String firstname, String lastname, String street, String city, String province, String country)
+   {
       Person person = new Person();
       person.setName(new Name());
       person.setAddress(new Address());
@@ -164,7 +184,7 @@
       return person;
    }
 
-   private static Membership createMembership(String code, String amount)
+   private Membership createMembership(String code, String amount)
    {
       Membership membership = new Membership(code);
       membership.setActive(true);
@@ -172,7 +192,7 @@
       return membership;
    }
 
-   private static Equipment createEquipment(String name, String description, EquipmentType type)
+   private Equipment createEquipment(String name, String description, EquipmentType type)
    {
       Equipment equipment = new Equipment();
       equipment.setDescription(description);
@@ -181,7 +201,7 @@
       return equipment;
    }
 
-   private static Reservation createReservation(Date fromDate, Date toDate, Equipment equipment, Account account)
+   private Reservation createReservation(Date fromDate, Date toDate, Equipment equipment, Account account)
    {
       assert fromDate.before(toDate);
       Reservation reservation = new Reservation();
@@ -195,7 +215,7 @@
    /**
     * Months are human readable and start at 1!
     */
-   private static Date createDate(int year, int month, int day)
+   private Date createDate(int year, int month, int day)
    {
       Calendar cal = Calendar.getInstance(Locale.US);
       cal.clear();

Deleted: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -1,44 +0,0 @@
-package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
-import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
-import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.AccountSearchCriteria;
-import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.PersonSearchCriteria;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
- */
- at ContextConfiguration(locations = {"classpath:test-infrastructure.xml", "classpath:dao-context.xml"})
- at RunWith(SpringJUnit4ClassRunner.class)
-public class TestHibernateAccountDao
-{
-
-   @Autowired
-   AccountRepository accountRepository;
-
-   @Test
-   @Transactional
-   public void testAccountRepository()
-   {
-      Collection<Account> accounts = accountRepository.findAll();
-      Assert.assertEquals(12, accounts.size());
-
-      AccountSearchCriteria criteria = new AccountSearchCriteria();
-      PersonSearchCriteria personCriteria = new PersonSearchCriteria();
-      personCriteria.setName("Vetinari");
-      criteria.setPersonSearchCriteria(personCriteria);
-      List<Account> accountList = accountRepository.findByCriteria(criteria);
-      Account account = accountList.get(0);
-      Assert.assertNotNull(account.getBalance());
-   }
-}

Copied: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountRepository.java (from rev 100243, projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountDao.java)
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateAccountRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,44 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.AccountSearchCriteria;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.PersonSearchCriteria;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml", "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+ at Transactional
+public class TestHibernateAccountRepository
+{
+
+   @Autowired
+   AccountRepository accountRepository;
+
+   @Test
+   public void testAccountRepository()
+   {
+      Collection<Account> accounts = accountRepository.findAll();
+      Assert.assertEquals(12, accounts.size());
+
+      AccountSearchCriteria criteria = new AccountSearchCriteria();
+      PersonSearchCriteria personCriteria = new PersonSearchCriteria();
+      personCriteria.setName("Vetinari");
+      criteria.setPersonSearchCriteria(personCriteria);
+      List<Account> accountList = accountRepository.findByCriteria(criteria);
+      Account account = accountList.get(0);
+      Assert.assertNotNull(account.getBalance());
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateEquipmentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateEquipmentRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateEquipmentRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,30 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.junit.Assert;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.EquipmentRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml", "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+ at Transactional
+public class TestHibernateEquipmentRepository
+{
+   @Autowired
+   EquipmentRepository equipmentRepository;
+
+   @Test
+   public void testEquipmentTypes()
+   {
+      EquipmentType[] types = equipmentRepository.getEquipmentTypes();
+      Assert.assertEquals(3,types.length);
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateInvoiceRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateInvoiceRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateInvoiceRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,39 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.junit.Assert;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.InvoiceRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml", "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+ at Transactional
+public class TestHibernateInvoiceRepository
+{
+   @Autowired
+   InvoiceRepository invoiceRepository;
+
+   @Autowired
+   AccountRepository accountRepository;
+
+   @Test
+   public void testFindForAccount()
+   {
+      Account a = accountRepository.findById(2L);
+      List<Invoice> invoices = invoiceRepository.findForAccount(a);
+      Assert.assertNotNull(invoices);
+      Assert.assertEquals(1, invoices.size());
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateMembershipRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateMembershipRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateMembershipRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,48 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.junit.runner.RunWith;
+import org.junit.Assert;
+import org.junit.Test;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.MembershipRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Membership;
+
+import java.util.List;
+import java.util.Arrays;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml", "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+ at Transactional
+public class TestHibernateMembershipRepository
+{
+   @Autowired
+   MembershipRepository membershipRepository;
+
+   @Test
+   public void testCountAll()
+   {
+      long cnt = membershipRepository.countAll();
+      Assert.assertEquals(3, cnt);
+   }
+
+   @Test
+   public void testFindAllMembershipCodes()
+   {
+      List<String> codes = membershipRepository.findAllMembershipCodes();
+      Assert.assertEquals(3, codes.size());
+      Assert.assertTrue(codes.containsAll(Arrays.asList(new String[]{"GOLD","PLATINUM","SILVER"})));
+   }
+
+   @Test
+   public void testFindAllActiveMembershipTypes()
+   {
+      List<Membership> memlist = membershipRepository.findAllActiveMembershipTypes();
+      Assert.assertEquals(3, memlist.size());
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernatePersonRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernatePersonRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernatePersonRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,29 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.junit.Assert;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.PersonRepository;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml", "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+ at Transactional
+public class TestHibernatePersonRepository
+{
+   @Autowired
+   PersonRepository personRepository;
+
+   @Test
+   public void testPersonRepository()
+   {
+      long count = personRepository.countAll();
+      Assert.assertEquals(12, count);
+   }
+}

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateReservationRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateReservationRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/TestHibernateReservationRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -16,16 +16,15 @@
 
 @ContextConfiguration(locations = {"classpath:test-infrastructure.xml", "classpath:dao-context.xml"})
 @RunWith(SpringJUnit4ClassRunner.class)
+ at Transactional
 public class TestHibernateReservationRepository
 {
    @Autowired
    ReservationRepository reservationRepository;
 
    @Test
-   @Transactional
    public void testFromToFilterCriteria()
    {
-
       Date from = getDate(2009, 1, 1);
       Date to = getDate(2009, 12, 31);
 
@@ -33,24 +32,23 @@
       criteria.setFromDate(from);
       criteria.setToDate(to);
 
-      List<Reservation> reservations = reservationRepository.getByCriteria(criteria);
-      Assert.assertEquals(6, reservations.size());
+      Assert.assertEquals(6, reservationRepository.getByCriteria(criteria).size());
+      Assert.assertEquals(6, reservationRepository.countByCriteria(criteria).longValue());
 
       criteria = new ReservationSearchCriteria();
       criteria.setFromDate(getDate(2009, 02, 01));
 
-      reservations = reservationRepository.getByCriteria(criteria);
-      Assert.assertEquals(5, reservations.size());
+      Assert.assertEquals(5, reservationRepository.getByCriteria(criteria).size());
+      Assert.assertEquals(5, reservationRepository.countByCriteria(criteria).longValue());
 
       criteria = new ReservationSearchCriteria();
       criteria.setToDate(getDate(2009, 11, 30));
 
-      reservations = reservationRepository.getByCriteria(criteria);
-      Assert.assertEquals(5, reservations.size());
+      Assert.assertEquals(5, reservationRepository.getByCriteria(criteria).size());
+      Assert.assertEquals(5, reservationRepository.countByCriteria(criteria).longValue());
    }
 
    @Test
-   @Transactional
    public void testEquipmentTypeFilterCriteria()
    {
       Date from = getDate(2009, 1, 1);
@@ -63,9 +61,8 @@
       criteria.setToDate(to);
       criteria.setEquipmentType(types);
 
-      List<Reservation> reservations = reservationRepository.getByCriteria(criteria);
-
-      Assert.assertEquals(1, reservations.size());
+      Assert.assertEquals(1, reservationRepository.getByCriteria(criteria).size());
+      Assert.assertEquals(1, reservationRepository.countByCriteria(criteria).longValue());
    }
 
    private Date getDate(int year, int month, int day)

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaAccountRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaAccountRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaAccountRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -7,6 +7,7 @@
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.AccountSearchCriteria;
 import org.springframework.stereotype.Repository;
 
+import javax.persistence.Query;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -15,26 +16,35 @@
  * @author Marius Bogoevici
  */
 @Repository
-public class JpaAccountRepository extends JpaRepository<Account, Long> implements AccountRepository {
+public class JpaAccountRepository extends JpaRepository<Account, Long> implements AccountRepository
+{
 
-    public JpaAccountRepository() {
-        super(Account.class);
-    }
+   public JpaAccountRepository()
+   {
+      super(Account.class);
+   }
 
-    public int countByCriteria(AccountSearchCriteria accountSearchCriteria) {
-        return this.findAll().size(); // TODO create real implementation
-    }
+   public List<Account> findByPersonName(String name)
+   {
+      Query query = entityManager.createQuery(" from " + Account.class.getSimpleName() + " a " +
+            "where a.subscriber.name.firstName like :name " +
+            "or a.subscriber.name.lastName like :name " +
+            "or a.subscriber.name.middleName like :name");
+      query.setParameter("name", "%" + name + "%");
+      return query.getResultList();
+   }
 
-    public List<Account> findByPersonName(String name) {
-        // TODO create real implementation
-        return this.findAll();
-    }
+   public int countByCriteria(AccountSearchCriteria accountSearchCriteria)
+   {
+      return this.findAll().size(); // TODO create real implementation
+   }
 
-    public List<Account> findByCriteria(AccountSearchCriteria accountSearchCriteria) {
-        // TODO create real implementation
-        if (accountSearchCriteria.getRange() != null)
-            return this.findAll().subList(accountSearchCriteria.getRange().getMinIndex(), accountSearchCriteria.getRange().getMaxIndex());
-        else
-            return this.findAll();
-    }
+   public List<Account> findByCriteria(AccountSearchCriteria accountSearchCriteria)
+   {
+      // TODO create real implementation
+      if (accountSearchCriteria.getRange() != null)
+         return this.findAll().subList(accountSearchCriteria.getRange().getMinIndex(), accountSearchCriteria.getRange().getMaxIndex());
+      else
+         return this.findAll();
+   }
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaEquipmentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaEquipmentRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaEquipmentRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -12,10 +12,10 @@
 public class JpaEquipmentRepository extends JpaRepository<Equipment,Long> implements EquipmentRepository{
 
     public JpaEquipmentRepository() {
-        super(Equipment.class); //TODO: create real implementation
+        super(Equipment.class);
     }
 
     public EquipmentType[] getEquipmentTypes() {
-        return new EquipmentType[0]; //TODO: create real implementation
+        return EquipmentType.values();
     }
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaInvoiceRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaInvoiceRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaInvoiceRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -5,6 +5,7 @@
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.InvoiceRepository;
 import org.springframework.stereotype.Repository;
 
+import javax.persistence.Query;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -13,13 +14,18 @@
  * @author Marius Bogoevici
  */
 @Repository
-public class JpaInvoiceRepository extends JpaRepository<Invoice, Long> implements InvoiceRepository {
+public class JpaInvoiceRepository extends JpaRepository<Invoice, Long> implements InvoiceRepository
+{
 
-    public JpaInvoiceRepository() {
-        super(Invoice.class);
-    }
+   public JpaInvoiceRepository()
+   {
+      super(Invoice.class);
+   }
 
-    public List<Invoice> findForAccount(Account account) {
-        return Collections.emptyList(); //TODO create real implementation
-    }
+   public List<Invoice> findForAccount(Account account)
+   {
+      Query q = entityManager.createQuery("FROM " + Invoice.class.getSimpleName() + " i WHERE i.account.id = :id");
+      q.setParameter("id", account.getId());
+      return q.getResultList();
+   }
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaMembershipRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaMembershipRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaMembershipRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -4,6 +4,7 @@
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.MembershipRepository;
 import org.springframework.stereotype.Repository;
 
+import javax.persistence.Query;
 import java.lang.reflect.Member;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -13,18 +14,32 @@
  * @author Marius Bogoevici
  */
 @Repository
-public class JpaMembershipRepository extends JpaRepository<Membership,String> implements MembershipRepository {
+public class JpaMembershipRepository extends JpaRepository<Membership, String> implements MembershipRepository
+{
 
-    public JpaMembershipRepository() {
-        super(Membership.class);
-    }
+   public JpaMembershipRepository()
+   {
+      super(Membership.class);
+   }
 
-    public List<Membership> findAllActiveMembershipTypes() {
-        return Collections.emptyList();
-    }
+   public List<Membership> findAllActiveMembershipTypes()
+   {
+      Query query = entityManager.createQuery("FROM " + Membership.class.getSimpleName() + " m WHERE m.active = :active");
+      query.setParameter("active", true);
+      return query.getResultList();
+   }
 
-    public List<String> findAllMembershipCodes() {
-        return Collections.emptyList();
-    }
+   public long countAll()
+   {
+      Query query = entityManager.createQuery("SELECT COUNT(code) FROM " + Membership.class.getSimpleName());
+      return (Long) query.getSingleResult();
+   }
+
+   public List<String> findAllMembershipCodes()
+   {
+      Query query = entityManager.createQuery("SELECT m.code FROM " + Membership.class.getSimpleName() + " m WHERE m.active = :active");
+      query.setParameter("active", true);
+      return query.getResultList();
+   }
 }
 

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaPaymentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaPaymentRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaPaymentRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -5,6 +5,7 @@
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.PaymentRepository;
 import org.springframework.stereotype.Repository;
 
+import javax.persistence.Query;
 import java.util.Collections;
 import java.util.List;
 
@@ -19,6 +20,8 @@
     }
 
     public List<Payment> findForAccount(Account account) {
-        return Collections.emptyList();
+       Query query = entityManager.createQuery("FROM " + Payment.class.getSimpleName() + " p WHERE p.account.id = :id");
+       query.setParameter("id", account.getId());
+       return query.getResultList();
     }
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaReservationRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaReservationRepository.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/JpaReservationRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -1,10 +1,12 @@
 package org.jboss.snowdrop.samples.sportsclub.dao.jpa;
 
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.ReservationRepository;
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.ReservationSearchCriteria;
 import org.springframework.stereotype.Repository;
 
+import javax.persistence.Query;
 import java.util.Collections;
 import java.util.List;
 
@@ -12,18 +14,66 @@
  * @author Marius Bogoevici
  */
 @Repository
-public class JpaReservationRepository extends JpaRepository<Reservation, Long> implements ReservationRepository {
+public class JpaReservationRepository extends JpaRepository<Reservation, Long> implements ReservationRepository
+{
 
-    public JpaReservationRepository() {
-        super(Reservation.class);
-    }
+   public JpaReservationRepository()
+   {
+      super(Reservation.class);
+   }
 
-    public Integer countByCriteria(ReservationSearchCriteria criteria) {
-        return 0;
-    }
+   public Long countByCriteria(ReservationSearchCriteria criteria)
+   {
+      Query query = getQuery(criteria, "SELECT count(r.id) ");
+      return (Long)query.getSingleResult();
+   }
 
-    public List<Reservation> getByCriteria(ReservationSearchCriteria criteria) {
-        return Collections.emptyList();
-    }
+   public List<Reservation> getByCriteria(ReservationSearchCriteria criteria)
+   {
+      Query query = getQuery(criteria, null);
+      return query.getResultList();
+   }
+
+   private Query getQuery(ReservationSearchCriteria criteria, String select)
+   {
+      String q = (select != null ? select : "");
+
+      q += "FROM " + Reservation.class.getSimpleName() + " r WHERE 1 = 1";
+
+      if (criteria.getFromDate() != null)
+      {
+         q += " AND r.from >= :from";
+      }
+      if (criteria.getToDate() != null)
+      {
+         q += " AND r.to <= :to";
+      }
+      if (criteria.getEquipmentType() != null && !criteria.getEquipmentType().isEmpty())
+      {
+         StringBuilder sb = new StringBuilder();
+         String d = "";
+         for (EquipmentType type : criteria.getEquipmentType())
+         {
+            sb.append(d);
+            sb.append("'");
+            sb.append(type);
+            sb.append("'");
+            if (d.isEmpty()) d = ",";
+         }
+         q += " AND r.equipment.equipmentType IN (" + sb.toString() + ")";
+      }
+
+      Query query = entityManager.createQuery(q);
+
+      if (criteria.getFromDate() != null)
+      {
+         query.setParameter("from", criteria.getFromDate());
+      }
+      if (criteria.getToDate() != null)
+      {
+         query.setParameter("to", criteria.getToDate());
+      }
+      return query;
+   }
 }
 

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/initializer/DatabaseInitializer.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/initializer/DatabaseInitializer.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/initializer/DatabaseInitializer.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -21,15 +21,7 @@
 import org.springframework.transaction.support.TransactionCallback;
 import org.springframework.transaction.support.TransactionTemplate;
 
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Address;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.BillingType;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Equipment;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Membership;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Name;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Person;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.*;
 
 /**
  * @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
@@ -102,6 +94,13 @@
             saveMap(DatabaseInitializer.this.entityManager, accounts);
 
 
+            Map<String, Invoice> invoices = new HashMap<String, Invoice>();
+
+            invoices.put("invoice1", createInvoice(accounts.get("account1")));
+
+            saveMap(DatabaseInitializer.this.entityManager, invoices);
+
+
             Map<String, Equipment> equipments = new HashMap<String, Equipment>();
 
             equipments.put("equipment1", createEquipment("Engage", "95T Engage by LifeFitness", TREADMILL));
@@ -130,7 +129,7 @@
       });
    }
 
-   private static void saveMap(EntityManager entityManager, Map data)
+   private void saveMap(EntityManager entityManager, Map data)
    {
       for (String key : (Set<String>)data.keySet())
       {
@@ -138,13 +137,13 @@
       }
    }
 
-   private static void save(EntityManager entityManager, Object entity)
+   private void save(EntityManager entityManager, Object entity)
    {
       entityManager.persist(entity);
       //entityManager.flush();
    }
 
-   private static Account createAccount(Membership silverMembership, BillingType billingType, Person person)
+   private Account createAccount(Membership silverMembership, BillingType billingType, Person person)
    {
       Account account = new Account();
       account.setSubscriber(person);
@@ -155,8 +154,21 @@
       return account;
    }
 
-   private static Person createPerson(String firstname, String lastname, String street, String city, String province, String country)
+   private Invoice createInvoice(Account account)
    {
+      Date date = createDate(2009, 02, 01);
+
+      Invoice invoice = new Invoice();
+      invoice.setAccount(account);
+      invoice.setAmount(account.getFeePerBillingPeriod());
+      invoice.setIssueDate(date);
+      invoice.setBillingPeriod(account.getBillingPeriodFor(date));
+
+      return invoice;
+   }
+
+   private Person createPerson(String firstname, String lastname, String street, String city, String province, String country)
+   {
       Person person = new Person();
       person.setName(new Name());
       person.setAddress(new Address());
@@ -171,7 +183,7 @@
       return person;
    }
 
-   private static Membership createMembership(String code, String amount)
+   private Membership createMembership(String code, String amount)
    {
       Membership membership = new Membership(code);
       membership.setActive(true);
@@ -179,7 +191,7 @@
       return membership;
    }
 
-   private static Equipment createEquipment(String name, String description, EquipmentType type)
+   private Equipment createEquipment(String name, String description, EquipmentType type)
    {
       Equipment equipment = new Equipment();
       equipment.setDescription(description);
@@ -188,7 +200,7 @@
       return equipment;
    }
 
-   private static Reservation createReservation(Date fromDate, Date toDate, Equipment equipment, Account account)
+   private Reservation createReservation(Date fromDate, Date toDate, Equipment equipment, Account account)
    {
       assert fromDate.before(toDate);
       Reservation reservation = new Reservation();
@@ -202,7 +214,7 @@
    /**
     * Months are human readable and start at 1!
     */
-   private static Date createDate(int year, int month, int day)
+   private Date createDate(int year, int month, int day)
    {
       Calendar cal = Calendar.getInstance(Locale.US);
       cal.clear();

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaAccountRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaAccountRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaAccountRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,43 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.jpa;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.junit.Assert;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.AccountSearchCriteria;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.PersonSearchCriteria;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml",
+                                   "classpath:TEST-jpa-infrastructure.xml",
+                                   "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+public class TestJpaAccountRepository
+{
+   @Autowired
+   AccountRepository accountRepository;
+
+   @Test
+   public void testAccountRepository()
+   {
+      Collection<Account> accounts = accountRepository.findAll();
+      Assert.assertEquals(12, accounts.size());
+
+//      AccountSearchCriteria criteria = new AccountSearchCriteria();
+//      PersonSearchCriteria personCriteria = new PersonSearchCriteria();
+//      personCriteria.setName("Vetinari");
+//      criteria.setPersonSearchCriteria(personCriteria);
+//      List<Account> accountList = accountRepository.findByCriteria(criteria);
+//      Account account = accountList.get(0);
+//      Assert.assertNotNull(account.getBalance());
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaEquipmentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaEquipmentRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaEquipmentRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,30 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.jpa;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.junit.Assert;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.EquipmentRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml",
+                                   "classpath:TEST-jpa-infrastructure.xml",
+                                   "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+public class TestJpaEquipmentRepository
+{
+   @Autowired
+   EquipmentRepository equipmentRepository;
+
+   @Test
+   public void testEquipmentTypes()
+   {
+      EquipmentType[] types = equipmentRepository.getEquipmentTypes();
+      Assert.assertEquals(3,types.length);
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaInvoiceRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaInvoiceRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaInvoiceRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,41 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.jpa;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.junit.Assert;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.InvoiceRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml",
+                                   "classpath:TEST-jpa-infrastructure.xml",
+                                   "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+public class TestJpaInvoiceRepository
+{
+   @Autowired
+   InvoiceRepository invoiceRepository;
+
+   @Autowired
+   AccountRepository accountRepository;
+
+   @Test
+   @Transactional
+   public void testFindForAccount()
+   {
+      Account a = accountRepository.findById(2L);
+      List<Invoice> invoices = invoiceRepository.findForAccount(a);
+      Assert.assertNotNull(invoices);
+      Assert.assertEquals(1, invoices.size());
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaMembershipRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaMembershipRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaMembershipRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,48 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.jpa;
+
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.junit.Assert;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.MembershipRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Membership;
+
+import java.util.List;
+import java.util.Arrays;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml",
+                                   "classpath:TEST-jpa-infrastructure.xml",
+                                   "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+public class TestJpaMembershipRepository
+{
+   @Autowired
+   MembershipRepository membershipRepository;
+
+   @Test
+   public void testCountAll()
+   {
+      long cnt = membershipRepository.countAll();
+      Assert.assertEquals(3, cnt);
+   }
+
+   @Test
+   public void testFindAllMembershipCodes()
+   {
+      List<String> codes = membershipRepository.findAllMembershipCodes();
+      Assert.assertEquals(3, codes.size());
+      Assert.assertTrue(codes.containsAll(Arrays.asList(new String[]{"GOLD","PLATINUM","SILVER"})));
+   }
+
+   @Test
+   public void testFindAllActiveMembershipTypes()
+   {
+      List<Membership> memlist = membershipRepository.findAllActiveMembershipTypes();
+      Assert.assertEquals(3, memlist.size());
+   }
+}

Deleted: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonDao.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonDao.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonDao.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -1,32 +0,0 @@
-package org.jboss.snowdrop.samples.sportsclub.dao.jpa;
-
-import javax.persistence.EntityManager;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-import org.jboss.snowdrop.samples.sportsclub.domain.repository.PersonRepository;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * @author Marius Bogoevici
- */
- at ContextConfiguration(locations = {"classpath:test-infrastructure.xml",
-                                   "classpath:TEST-jpa-infrastructure.xml",
-                                   "classpath:dao-context.xml"})
- at RunWith(SpringJUnit4ClassRunner.class)
-public class TestJpaPersonDao
-{
-   @Autowired
-   PersonRepository personRepository;
-
-   @Test
-   public void testPersonRepository()
-   {
-      long count = personRepository.countAll();
-      Assert.assertEquals(12, count);
-   }
-}

Copied: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonRepository.java (from rev 100243, projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonDao.java)
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaPersonRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,32 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.jpa;
+
+import javax.persistence.EntityManager;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.PersonRepository;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Marius Bogoevici
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml",
+                                   "classpath:TEST-jpa-infrastructure.xml",
+                                   "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+public class TestJpaPersonRepository
+{
+   @Autowired
+   PersonRepository personRepository;
+
+   @Test
+   public void testPersonRepository()
+   {
+      long count = personRepository.countAll();
+      Assert.assertEquals(12, count);
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaReservationRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaReservationRepository.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-jpa-dao/src/test/java/org/jboss/snowdrop/samples/sportsclub/dao/jpa/TestJpaReservationRepository.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -0,0 +1,78 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.jpa;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.ReservationRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.ReservationSearchCriteria;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
+import org.junit.runner.RunWith;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.util.*;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+ at ContextConfiguration(locations = {"classpath:test-infrastructure.xml",
+                                   "classpath:TEST-jpa-infrastructure.xml",
+                                   "classpath:dao-context.xml"})
+ at RunWith(SpringJUnit4ClassRunner.class)
+public class TestJpaReservationRepository
+{
+   @Autowired
+   ReservationRepository reservationRepository;
+
+   @Test
+   public void testFromToFilterCriteria()
+   {
+      Date from = getDate(2009, 1, 1);
+      Date to = getDate(2009, 12, 31);
+
+      ReservationSearchCriteria criteria = new ReservationSearchCriteria();
+      criteria.setFromDate(from);
+      criteria.setToDate(to);
+
+      Assert.assertEquals(6, reservationRepository.getByCriteria(criteria).size());
+      Assert.assertEquals(6, reservationRepository.countByCriteria(criteria).longValue());
+
+      criteria = new ReservationSearchCriteria();
+      criteria.setFromDate(getDate(2009, 02, 01));
+
+      Assert.assertEquals(5, reservationRepository.getByCriteria(criteria).size());
+      Assert.assertEquals(5, reservationRepository.countByCriteria(criteria).longValue());
+
+      criteria = new ReservationSearchCriteria();
+      criteria.setToDate(getDate(2009, 11, 30));
+
+      Assert.assertEquals(5, reservationRepository.getByCriteria(criteria).size());
+      Assert.assertEquals(5, reservationRepository.countByCriteria(criteria).longValue());
+   }
+
+   @Test
+   public void testEquipmentTypeFilterCriteria()
+   {
+      Date from = getDate(2009, 1, 1);
+      Date to = getDate(2009, 12, 31);
+
+      List<EquipmentType> types = new ArrayList<EquipmentType>();
+      types.add(EquipmentType.COURT);
+      ReservationSearchCriteria criteria = new ReservationSearchCriteria();
+      criteria.setFromDate(from);
+      criteria.setToDate(to);
+      criteria.setEquipmentType(types);
+
+      Assert.assertEquals(1, reservationRepository.getByCriteria(criteria).size());
+      Assert.assertEquals(1, reservationRepository.countByCriteria(criteria).longValue());
+   }
+
+   private Date getDate(int year, int month, int day)
+   {
+      Calendar cal = Calendar.getInstance(Locale.US);
+      cal.clear();
+      cal.set(year, month - 1, day);
+      return cal.getTime();
+   }
+}

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/sportsclub/service/ReservationService.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/sportsclub/service/ReservationService.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/sportsclub/service/ReservationService.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -13,7 +13,7 @@
 {
    List<Reservation> getReservations(Date fromDate, Date toDate, Integer nim, Integer max, List<EquipmentType> types);
 
-   Integer countReservationsForRange(Date fromDate, Date toDate, List<EquipmentType> types);
+   Long countReservationsForRange(Date fromDate, Date toDate, List<EquipmentType> types);
 
    void create(Reservation reservation);
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/sportsclub/service/ReservationServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/sportsclub/service/ReservationServiceImpl.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/sportsclub/service/ReservationServiceImpl.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -36,7 +36,7 @@
       return reservationRepository.getByCriteria(criteria);
    }
 
-   public Integer countReservationsForRange(Date fromDate, Date toDate, List<EquipmentType> types)
+   public Long countReservationsForRange(Date fromDate, Date toDate, List<EquipmentType> types)
    {
       ReservationSearchCriteria criteria = new ReservationSearchCriteria();
       criteria.setFromDate(fromDate);

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java	2010-02-02 15:31:41 UTC (rev 100261)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java	2010-02-02 15:54:46 UTC (rev 100262)
@@ -28,7 +28,7 @@
    private Long currentId;
 
    private Map<Long, Reservation> reservationsMap = new HashMap<Long, Reservation>();
-   private Integer rowCount;
+   private Long rowCount;
 
    private ReservationTableState tableState;
 
@@ -99,7 +99,7 @@
                reservationSearchOptions.getToDate(),
                reservationSearchOptions.getSelectedEquipmentTypes());
       }
-      return rowCount;
+      return rowCount.intValue();
    }
 
    @Override




More information about the jboss-cvs-commits mailing list