Skip to content

Commit

Permalink
https://issues.jboss.org/browse/JBPAPP-6647
Browse files Browse the repository at this point in the history
git-svn-id: file:///Users/billburke/jboss/resteasy/resteasy-git/svn-server-sync/resteasy/trunk@1373 2b1ed4c4-5db3-0410-90e4-80a7a6204c25
  • Loading branch information
liweinan committed Jun 11, 2011
1 parent 32a69ea commit 1e622df
Show file tree
Hide file tree
Showing 6 changed files with 180 additions and 177 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ public interface ContactDao
public Collection<Contact> findAllContacts();
public void addUpdateContact(Contact contact);
public void deleteContact(Contact contact);
public Collection<Contact> findContactsOfContact(long pid);
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,67 +9,64 @@
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.util.CollectionUtils;


/**
* @author <a href="mailto:obrand@yahoo.com">Olivier Brand</a>
* Jun 28, 2008
* @author <a href="mailto:obrand@yahoo.com">Olivier Brand</a> Jun 28, 2008
*
*/
@SuppressWarnings("unchecked")
public class ContactDaoImpl extends HibernateDaoSupport implements ContactDao
{
public class ContactDaoImpl extends HibernateDaoSupport implements ContactDao {

public ContactDaoImpl() {
// TODO Auto-generated constructor stub
}

public ContactDaoImpl()
{
// TODO Auto-generated constructor stub
}
public void addUpdateContact(Contact contact) {
getHibernateTemplate().merge(contact);
}

public void addUpdateContact(Contact contact)
{
getHibernateTemplate().merge(contact);
}
public void deleteContact(Contact contact) {
getHibernateTemplate().delete(contact);
}

public void deleteContact(Contact contact)
{
getHibernateTemplate().delete(contact);
}
public Collection<Contact> findAllContacts() {
return getHibernateTemplate().find("from Contact c");
// return getHibernateTemplate().loadAll(Contact.class);
}

public Collection<Contact> findAllContacts()
{
return getHibernateTemplate().find("from Contact c");
// return getHibernateTemplate().loadAll(Contact.class);
}
public Contact findContactByName(final String contactName) {
return findSingle("FROM Contact c WHERE c.name =:name", "name",
contactName);
}

public Contact findContactByName(final String contactName)
{
return findSingle("FROM Contact c WHERE c.name =:name", "name", contactName);
}
public Contact findContactById(final long id) {
return (Contact) getHibernateTemplate().get(Contact.class, id);
}

public Contact findContactById(final long id)
{
return (Contact) getHibernateTemplate().get(Contact.class, id);
}
public Contact findContactByAttribute(final ContactAttrs attribute,
final Object value) {
return findSingle("FROM Contact c WHERE c." + attribute + " =:"
+ attribute, attribute.toString(), value);
}

public Contact findContactByAttribute(final ContactAttrs attribute, final Object value)
{
return findSingle("FROM Contact c WHERE c." + attribute + " =:"
+ attribute, attribute.toString(), value);
}
public Contact findContactByEmail(final String email) {
return findSingle("FROM Contact c WHERE c.email =:email", "email",
email);
}

public Contact findContactByEmail(final String email)
{
return findSingle("FROM Contact c WHERE c.email =:email", "email", email);
}
public Contact findContactByPhone(final String phone) {
return findSingle("FROM Contact c WHERE c.telephone=:phone", "phone",
phone);
}

public Contact findContactByPhone(final String phone)
{
return findSingle("FROM Contact c WHERE c.telephone=:phone", "phone", phone);
}
private Contact findSingle(String hql, String paramName, Object value) {
List<Contact> results = getHibernateTemplate().findByNamedParam(hql,
paramName, value);
return CollectionUtils.hasUniqueObject(results) ? results.get(0) : null;
}

private Contact findSingle(String hql, String paramName, Object value)
{
List<Contact> results = getHibernateTemplate().findByNamedParam(
hql, paramName, value);
return CollectionUtils.hasUniqueObject(results) ? results.get(0) : null;
}
public Collection<Contact> findContactsOfContact(long pid) {
Contact parentContact = findSingle(
"from Contact c where c.id=:pid", "pid", pid);
return parentContact.getContactChildren();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@


import java.util.ArrayList;
import java.util.Collection;

import javax.annotation.Resource;

import junit.framework.Assert;

import org.jboss.resteasy.examples.contacts.core.Contact;
import org.jboss.resteasy.examples.contacts.core.ContactAttrs;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
Expand All @@ -16,10 +19,6 @@
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

import org.jboss.resteasy.examples.contacts.core.Contact;
import org.jboss.resteasy.examples.contacts.core.ContactAttrs;


/**
* @author <a href="mailto:obrand@yahoo.com">Olivier Brand</a>
* Jun 28, 2008
Expand All @@ -32,124 +31,121 @@
// within a transaction
@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=false)
@Transactional
public class TestContact
{
private static final String CONTACT_PHONE = "16506193726";
private static final String CONTACT_EMAIL = "olivier@yahoo.com";
private static final String CONTACT_NAME_3 = "newcontact";
private static final String CONTACT_NAME_4 = "newcontact2";
private static final int CONTACT_ID = 1;
private static final String CONTACT_NAME = "olivier";
private static final String CONTACT_NAME_2 = "angela";

// JSR 250 annotation injecting the contactDao bean. Similar to the Spring @Autowired annotation
@Resource
private ContactDao contactDao;

@Before
public void setup()
{
public class TestContact {
private static final String CONTACT_PHONE = "16506193726";
private static final String CONTACT_EMAIL = "olivier@yahoo.com";
private static final String CONTACT_NAME_3 = "newcontact";
private static final String CONTACT_NAME_4 = "newcontact2";
private static final int CONTACT_ID = 1;
private static final String CONTACT_NAME = "olivier";
private static final String CONTACT_NAME_2 = "angela";
private static final long PARENT_CONTACT_ID = 2;

// JSR 250 annotation injecting the contactDao bean. Similar to the Spring
// @Autowired annotation
@Resource
private ContactDao contactDao;

@Before
public void setup() {

}

@After
public void cleanup() {
Contact contact = contactDao.findContactByName(CONTACT_NAME_3);
if (contact != null) {
contactDao.deleteContact(contact);
}
}

@Test
public void simpleTest() {
Assert.assertNotNull(contactDao);
}

@Test
public void testFindByName() {
Assert.assertNotNull(contactDao.findContactByName(CONTACT_NAME));
}

@Test
public void testFindById() {
Assert.assertNotNull(contactDao.findContactById(CONTACT_ID));
}

@Test
public void testFindAllContacts() {
Assert.assertTrue(!contactDao.findAllContacts().isEmpty());
Assert.assertEquals(3, contactDao.findAllContacts().size());
}

@Test
public void testFindByNameContacts() {
Contact contact = contactDao.findContactByName(CONTACT_NAME_2);
Assert.assertNotNull(contact);
Assert.assertEquals(2, contact.getContactChildren().size());
}

@Test
public void testFindByEmail() {
Assert.assertNotNull(contactDao.findContactByEmail(CONTACT_EMAIL));
}

@Test
public void testFindByPhone() {
Assert.assertNotNull(contactDao.findContactByPhone(CONTACT_PHONE));
}

@Test
public void testFindByAttribute() {
Assert.assertNotNull(contactDao.findContactByAttribute(
ContactAttrs.telephone, CONTACT_PHONE));
Assert.assertNotNull(contactDao.findContactByAttribute(
ContactAttrs.email, CONTACT_EMAIL));
Assert.assertNotNull(contactDao.findContactByAttribute(
ContactAttrs.name, CONTACT_NAME));
Assert.assertNotNull(contactDao.findContactByAttribute(ContactAttrs.id,
1L));
}

@Test
public void testInsertContact() {
Contact newContact = new Contact();
newContact.setEmail("newcontact@yahoo.com");
newContact.setName(CONTACT_NAME_3);
newContact.setTelephone("3213123123");
Contact contact = contactDao.findContactByName(CONTACT_NAME_3);
Assert.assertNull(contact);
contactDao.addUpdateContact(newContact);
contact = contactDao.findContactByName(CONTACT_NAME_3);
Assert.assertNotNull(contact);
}

@Test
public void testDeleteContact() {
Contact newContact = new Contact();
newContact.setEmail("newcontact2@yahoo.com");
newContact.setName(CONTACT_NAME_4);
newContact.setTelephone("3213123134");
Contact contact = contactDao.findContactByName(CONTACT_NAME_4);
Assert.assertNull(contact);
contactDao.addUpdateContact(newContact);
contact = contactDao.findContactByName(CONTACT_NAME_4);
Assert.assertNotNull(contact);
contactDao.deleteContact(contact);
contact = contactDao.findContactByName(CONTACT_NAME_4);
Assert.assertNull(contact);
}

}

@After
public void cleanup()
{
Contact contact = contactDao.findContactByName(CONTACT_NAME_3);
if(contact != null)
{
contactDao.deleteContact(contact);
@Test
public void testGetContactsOfContact() {
Collection<Contact> contacts = contactDao.findContactsOfContact(PARENT_CONTACT_ID);
Assert.assertEquals(2, contacts.size());
}

@Test(expected = IndexOutOfBoundsException.class)
public void empty() {
new ArrayList<Object>().get(0);
}
}

@Test
public void simpleTest()
{
Assert.assertNotNull(contactDao);
}

@Test
public void testFindByName()
{
Assert.assertNotNull(contactDao.findContactByName(CONTACT_NAME));
}

@Test
public void testFindById()
{
Assert.assertNotNull(contactDao.findContactById(CONTACT_ID));
}

@Test
public void testFindAllContacts()
{
Assert.assertTrue(!contactDao.findAllContacts().isEmpty());
Assert.assertEquals(3, contactDao.findAllContacts().size());
}

@Test
public void testFindByNameContacts()
{
Contact contact = contactDao.findContactByName(CONTACT_NAME_2);
Assert.assertNotNull(contact);
Assert.assertEquals(2,contact.getContactChildren().size());
}

@Test
public void testFindByEmail()
{
Assert.assertNotNull(contactDao.findContactByEmail(CONTACT_EMAIL));
}

@Test
public void testFindByPhone()
{
Assert.assertNotNull(contactDao.findContactByPhone(CONTACT_PHONE));
}

@Test
public void testFindByAttribute()
{
Assert.assertNotNull(contactDao.findContactByAttribute(ContactAttrs.telephone,CONTACT_PHONE));
Assert.assertNotNull(contactDao.findContactByAttribute(ContactAttrs.email,CONTACT_EMAIL));
Assert.assertNotNull(contactDao.findContactByAttribute(ContactAttrs.name,CONTACT_NAME));
Assert.assertNotNull(contactDao.findContactByAttribute(ContactAttrs.id, 1L));
}

@Test
public void testInsertContact()
{
Contact newContact = new Contact();
newContact.setEmail("newcontact@yahoo.com");
newContact.setName(CONTACT_NAME_3);
newContact.setTelephone("3213123123");
Contact contact = contactDao.findContactByName(CONTACT_NAME_3);
Assert.assertNull(contact);
contactDao.addUpdateContact(newContact);
contact = contactDao.findContactByName(CONTACT_NAME_3);
Assert.assertNotNull(contact);
}

@Test
public void testDeleteContact()
{
Contact newContact = new Contact();
newContact.setEmail("newcontact2@yahoo.com");
newContact.setName(CONTACT_NAME_4);
newContact.setTelephone("3213123134");
Contact contact = contactDao.findContactByName(CONTACT_NAME_4);
Assert.assertNull(contact);
contactDao.addUpdateContact(newContact);
contact = contactDao.findContactByName(CONTACT_NAME_4);
Assert.assertNotNull(contact);
contactDao.deleteContact(contact);
contact = contactDao.findContactByName(CONTACT_NAME_4);
Assert.assertNull(contact);
}

@Test(expected = IndexOutOfBoundsException.class)
public void empty()
{
new ArrayList<Object>().get(0);
}
}
}
1 change: 0 additions & 1 deletion jaxrs/examples/spring-hibernate-contacts/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,5 @@
<module>core</module>
<module>persistence</module>
<module>services</module>
<module>client</module>
</modules>
</project>
Loading

0 comments on commit 1e622df

Please sign in to comment.