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 }