1 package net.sf.r4h; 2 3 import java.util.Date; 4 import java.util.HashSet; 5 import java.util.List; 6 7 import junit.framework.Assert; 8 import net.sf.r4h.HibernateRepository; 9 import net.sf.r4h.model.Bid; 10 import net.sf.r4h.model.Item; 11 import net.sf.r4h.model.User; 12 13 import org.junit.After; 14 import org.junit.Before; 15 import org.junit.runner.RunWith; 16 import org.springframework.beans.factory.annotation.Autowired; 17 import org.springframework.beans.factory.annotation.Qualifier; 18 import org.springframework.test.context.ContextConfiguration; 19 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 20 import org.springframework.transaction.annotation.Transactional; 21 22 @RunWith( SpringJUnit4ClassRunner.class ) 23 @ContextConfiguration( locations = { "/test-annotation-beans.xml" } ) 24 @Transactional 25 public abstract class AbstractDaoTest { 26 @Autowired 27 @Qualifier("userRepository") 28 protected HibernateRepository<User,Integer> userRepository; 29 30 @Autowired 31 @Qualifier("itemRepository") 32 protected HibernateRepository<Item,Integer> itemRepository; 33 34 @Autowired 35 @Qualifier("bidRepository") 36 protected HibernateRepository<Bid,Integer> bidRepository; 37 protected User user1; 38 protected User user2; 39 40 @Before 41 public void setUp() { 42 user1 = createUser( 1 ); 43 user1.setDate( new Date() ); 44 user2 = createUser( 2 ); 45 } 46 47 private User createUser( final int index ) { 48 final User user = new User(); 49 user.setName( "user" + index ); 50 user.setItems( new HashSet<Item>() ); 51 52 final Item item = new Item(); 53 item.setTime( new Date(index*1000*10000L) ); 54 item.setName( "item" + index ); 55 user.getItems().add( item ); 56 57 final Bid bid = new Bid(); 58 bid.setName( "bid" + index ); 59 item.getBids().add( bid ); 60 bid.setItem( item ); 61 userRepository.save( user ); 62 return user; 63 } 64 65 @After 66 public void tearDown() { 67 userRepository.delete( user1 ); 68 userRepository.delete( user2 ); 69 } 70 71 protected <T> void assertEquals( final List<T> actual, final T... expected ) { 72 Assert.assertEquals( expected.length, actual.size() ); 73 for ( int i = 0; i < actual.size(); i++ ) { 74 Assert.assertEquals( expected[ i ], actual.get( i ) ); 75 } 76 } 77 78 public static <T> T[] asArray( final T... values ) { 79 return values; 80 } 81 }