View Javadoc

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  }