Project

General

Profile

1
package eu.dnetlib.enabling.is.sn.resourcestate.hib;
2

    
3
import java.util.Collection;
4
import javax.annotation.Resource;
5

    
6
import eu.dnetlib.enabling.is.sn.resourcestate.AbstractResourceStateSubscriptionDAOImplTest;
7
import eu.dnetlib.enabling.is.sn.resourcestate.ResourceStateSubscription;
8
import eu.dnetlib.test.utils.EPRTestUtil;
9
import org.apache.commons.logging.Log;
10
import org.apache.commons.logging.LogFactory;
11
import org.junit.After;
12
import org.junit.Test;
13
import org.junit.runner.RunWith;
14
import org.springframework.dao.DataIntegrityViolationException;
15
import org.springframework.test.annotation.DirtiesContext;
16
import org.springframework.test.context.ContextConfiguration;
17
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
18

    
19
import static org.junit.Assert.*;
20

    
21
/**
22
 * test HibernateResourceStateSubscriptionDAOImplTest.
23
 * 
24
 * @author marko
25
 * 
26
 */
27
@RunWith(SpringJUnit4ClassRunner.class)
28
@ContextConfiguration
29
public class HibernateResourceStateSubscriptionDAOImplTest extends AbstractResourceStateSubscriptionDAOImplTest {
30
	/**
31
	 * logger.
32
	 */
33
	private static final Log log = LogFactory.getLog(HibernateResourceStateSubscriptionDAOImplTest.class); // NOPMD by marko on 11/24/08 5:02 PM
34

    
35
	/**
36
	 * instance under test.
37
	 */
38
	@Resource
39
	private transient HibernateResourceStateSubscriptionDAOImpl hibdao;
40

    
41
	/**
42
	 * cleanup db.
43
	 */
44
	@After
45
	public void tearDown() {
46
		final Collection<ResourceStateSubscription> subs = hibdao.listSubscriptions();
47
		if (subs != null) {
48
			subs.forEach(r -> hibdao.removeSubscription(r.getSubscriptionId()));
49
		}
50
	}
51

    
52
	/**
53
	 * test addition.
54
	 */
55
	@Test
56
	public void testAddSubscription() {
57
		assertNotNull("check dao", getDao());
58

    
59
		getDao().addSubscription(getSub());
60

    
61
		log.info("sub id: " + getSub().getSubscriptionId());
62
	}
63

    
64
	/**
65
	 * test encoding of endpoint references.
66
	 */
67
	@Test
68
	@DirtiesContext
69
	public void testEndpoint() {
70
		getSub().setSubscriber(EPRTestUtil.getTestEpr());
71

    
72
		getDao().addSubscription(getSub());
73

    
74
		final ResourceStateSubscription fresh = getDao().getSubscription(getSub().getSubscriptionId());
75

    
76
		assertNotNull("check", fresh);
77
		assertTrue("equals", compare(getSub(), fresh));
78

    
79
		assertNotNull("epr", getSub().getSubscriber());
80
		assertNotNull("fetched epr", fresh.getSubscriber());
81

    
82
		assertEquals("eprs", getSub().getSubscriber().toString(), fresh.getSubscriber().toString());
83
	}
84

    
85
	/**
86
	 * multiple subscriptions should not be allowed.
87
	 */
88
	@Test(expected = DataIntegrityViolationException.class)
89
	@DirtiesContext
90
	public void testMultiple() { // NOPMD
91
		getDao().addSubscription(getSub());
92
		getDao().addSubscription(getSub());
93
	}
94

    
95
	
96
	/**
97
	 * {@inheritDoc}
98
	 * 
99
	 * @see eu.dnetlib.enabling.is.sn.resourcestate.AbstractResourceStateSubscriptionDAOImplTest#prepareDao()
100
	 */
101
	@Override
102
	protected void prepareDao() {
103
		setDao(hibdao);
104
	}
105

    
106
}
(1-1/2)