]> git.argeo.org Git - lgpl/argeo-commons.git/blob - unit/AbstractJcrTestCase.java
Prepare next development cycle
[lgpl/argeo-commons.git] / unit / AbstractJcrTestCase.java
1 package org.argeo.server.jackrabbit.unit;
2
3 import java.io.File;
4
5 import javax.jcr.Repository;
6 import javax.jcr.Session;
7 import javax.jcr.SimpleCredentials;
8
9 import junit.framework.TestCase;
10
11 import org.apache.commons.io.FileUtils;
12 import org.apache.jackrabbit.core.TransientRepository;
13 import org.argeo.ArgeoException;
14
15 public abstract class AbstractJcrTestCase extends TestCase {
16 private TransientRepository repository;
17 private Session session = null;
18
19 protected abstract File getRepositoryFile() throws Exception;
20
21 @Override
22 protected void setUp() throws Exception {
23 File homeDir = new File(System.getProperty("java.io.tmpdir"),
24 AbstractJcrTestCase.class.getSimpleName());
25 FileUtils.deleteDirectory(homeDir);
26 repository = new TransientRepository(getRepositoryFile(), homeDir);
27 }
28
29 @Override
30 protected void tearDown() throws Exception {
31 if (session != null)
32 session.logout();
33 }
34
35 protected Session session() {
36 if (session == null) {
37 try {
38 session = getRepository().login(
39 new SimpleCredentials("demo", "demo".toCharArray()));
40 } catch (Exception e) {
41 throw new ArgeoException("Cannot login to repository", e);
42 }
43 }
44 return session;
45 }
46
47 protected Repository getRepository() {
48 return repository;
49 }
50 }