]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jackrabbit/unit/AbstractJcrTestCase.java
Add query in JCR controller
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jackrabbit / src / main / java / org / argeo / server / jackrabbit / 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 import org.springframework.core.io.ClassPathResource;
15 import org.springframework.core.io.Resource;
16
17 public abstract class AbstractJcrTestCase extends TestCase {
18 private TransientRepository repository;
19 private Session session = null;
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 File getRepositoryFile() throws Exception {
48 Resource res = new ClassPathResource(
49 "org/argeo/server/jackrabbit/repository-inMemory.xml");
50 return res.getFile();
51 }
52
53 protected Repository getRepository() {
54 return repository;
55 }
56 }