Clover Coverage Report - perfectjpattern(Aggregated)
Coverage timestamp: Sat Feb 28 2009 14:35:07 CET
28   145   4   7
0   70   0.14   4
4     1  
1    
 
  TestHibernateGenericDao       Line # 38 28 0% 4 0 100% 1.0
 
  (3)
 
1    //----------------------------------------------------------------------
2    //
3    // PerfectJPattern: "Design patterns are good but components are better!"
4    // TestHibernateGenericDao.java Copyright (c) 2009 Giovanni Azua Garcia
5    // bravegag@hotmail.com
6    //
7    // This program is free software; you can redistribute it and/or
8    // modify it under the terms of the GNU General Public License
9    // as published by the Free Software Foundation; either version 3
10    // of the License, or (at your option) any later version.
11    //
12    // This program is distributed in the hope that it will be useful,
13    // but WITHOUT ANY WARRANTY; without even the implied warranty of
14    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15    // GNU General Public License for more details.
16    //
17    // You should have received a copy of the GNU General Public License
18    // along with this program; if not, see <http://www.gnu.org/licenses/>.
19    //
20    //----------------------------------------------------------------------
21    package org.perfectjpattern.jee.integration.dao;
22   
23    import java.util.*;
24   
25    import junit.framework.*;
26   
27    import org.perfectjpattern.example.datamodel.*;
28    import org.perfectjpattern.jee.api.integration.dao.*;
29    import org.slf4j.*;
30   
31    /**
32    * Test Suite for the {@link HibernateGenericDao} implementation.
33    *
34    * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a>
35    * @version $Revision: 1.0 $ $Date: Nov 26, 2007 9:31:46 PM $
36    */
37    public
 
38    class TestHibernateGenericDao
39    extends TestCase
40    {
41    //------------------------------------------------------------------------
42    // public
43    //------------------------------------------------------------------------
 
44  1 toggle public void
45    testCreate()
46    {
47    // create generic read-only Dao instance
48  1 IGenericDao<Long, Person> myPersonDao = HibernateDaoFactory.
49    getInstance().createDao(Person.class);
50   
51    // create a new Person
52  1 Person myGiovanni = new Person("Giovanni", 32);
53   
54  1 myPersonDao.create(myGiovanni);
55   
56    // make sure it exists in the persistent storage
57  1 List<Person> myPersons = myPersonDao.findByExample(myGiovanni, "id");
58   
59  1 assertNotNull("create seems not to work, record was not found.",
60    myPersons);
61  1 assertEquals("create seems not to work, record was not found.",
62    1, myPersons.size());
63  1 assertEquals("create seems not to work, record was not found.",
64    "Giovanni", myPersons.get(0).getName());
65    }
66   
67    //------------------------------------------------------------------------
 
68  1 toggle public void
69    testUpdate()
70    {
71    // create generic read-only Dao instance
72  1 IGenericDao<Long, Person> myPersonDao = HibernateDaoFactory.
73    getInstance().createDao(Person.class);
74   
75    // create a new Person
76  1 Person myRosa = new Person("Rosa", 27);
77  1 myPersonDao.create(myRosa);
78   
79    // retrieve the record just created
80  1 List<Person> myPersons = myPersonDao.findByExample(myRosa, "id");
81   
82  1 Person myUpdate = myPersons.get(0);
83  1 myUpdate.setAge(28);
84  1 myPersonDao.update(myUpdate);
85   
86    // retrieve the record just edited
87  1 myPersons = myPersonDao.findByExample(myRosa, "id", "age");
88   
89  1 assertNotNull("create seems not to work, record was not found.",
90    myPersons);
91  1 assertEquals("create seems not to work, record was not found.",
92    "Rosa", myPersons.get(0).getName());
93  1 assertEquals("create seems not to work, record was not found.",
94    28, myPersons.get(0).getAge());
95    }
96   
97    //------------------------------------------------------------------------
 
98  1 toggle public void
99    testDelete()
100    {
101    // create generic read-only Dao instance
102  1 IGenericDao<Long, Person> myPersonDao = HibernateDaoFactory.
103    getInstance().createDao(Person.class);
104   
105    // create a new Person
106  1 Person myErnesto = new Person("Ernesto", 35);
107  1 Long myId = myPersonDao.create(myErnesto);
108   
109  1 Person myDelete = myPersonDao.findById(myId);
110   
111    // delete Ernesto
112  1 myPersonDao.delete(myDelete);
113   
114  1 boolean myContains = myPersonDao.contains(myDelete);
115   
116    // run assertions on it
117  1 assertFalse("There must be no Elements left matching the deleted.",
118    myContains);
119    }
120   
121    //------------------------------------------------------------------------
122    // protected
123    //------------------------------------------------------------------------
 
124  3 toggle @Override
125    protected void
126    tearDown()
127    throws Exception
128    {
129  3 super.tearDown();
130   
131  3 IGenericDao<Long, Person> myPersonDao = HibernateDaoFactory.
132    getInstance().createDao(Person.class);
133   
134  3 myPersonDao.getTransaction().rollback();
135    }
136   
137    //------------------------------------------------------------------------
138    // members
139    //------------------------------------------------------------------------
140    /**
141    * Provides logging services for this class.
142    */
143    @SuppressWarnings("unused")
144    private final Logger theLogger = LoggerFactory.getLogger(this.getClass());
145    }