jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bilobag <bilo...@hotmail.com>
Subject Re: Junit testing with Jackrabbit using AbstractDependencyInjectionSpringContextTests
Date Fri, 20 Jul 2007 14:15:09 GMT

Thanks a lot for the help Christoph!  Your code worked.  This will really get
my unit tests going.  Thanks again.



Christoph Kiehl-3 wrote:
> 
> bilobag wrote:
> 
>> Ok, i think my issue is that I have the
>> org.springmodules.jcr.support.OpenSessionInViewFilter configured in my
>> web.xml which is supposed to keep my repository session open.  My dao
>> mainly
>> just uses the jcrTemplate methods to access the repository.  I believe
>> the
>> template opens and closes the session.  Does anyone know of a way to keep
>> it
>> open during my entire test case?   
> 
> I just copied some code from OpenSessionInViewFilter to put together a
> quick and 
> dirty solution. I'm using transactions and therefore have a threadbound
> session 
> available anyway. There might be a cleaner solution but this one should
> work for 
> now.
> 
> Cheers,
> Christoph
> 
> ps: Just post such questions to the user list next time. Most developers
> read 
> both lists anyway.
> 
> =======
> 
> package com.subshell.sophora.server.persistence.jcr;
> 
> import javax.jcr.Node;
> import javax.jcr.RepositoryException;
> import javax.jcr.Session;
> 
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> import org.apache.jackrabbit.JcrConstants;
> import
> org.springframework.test.AbstractDependencyInjectionSpringContextTests;
> import
> org.springframework.transaction.support.TransactionSynchronizationManager;
> import org.springmodules.jcr.JcrTemplate;
> import org.springmodules.jcr.SessionFactory;
> import org.springmodules.jcr.SessionFactoryUtils;
> 
> public class NodeServiceTests extends
> 		AbstractDependencyInjectionSpringContextTests {
> 
> 	protected static final Log log =
> LogFactory.getLog(NodeServiceTests.class);
> 
> 	protected JcrTemplate jcrTemplate;
> 
> 	private SessionFactory sf;
> 
> 	private Session session;
> 
> 	public JcrTemplate getJcrTemplate() {
> 		return jcrTemplate;
> 	}
> 
> 	public void setJcrTemplate(JcrTemplate jcrTemplate) {
> 		this.jcrTemplate = jcrTemplate;
> 	}
> 
> 	public NodeServiceTests() {
> 		super();
> 		setAutowireMode(AUTOWIRE_BY_NAME);
> 	}
> 
> 	@Override
> 	protected String[] getConfigLocations() {
> 		return new String[] { "classpath:WEB-INF/applicationContext.xml" };
> 	}
> 
> 	@Override
> 	protected void onSetUp() throws Exception {
> 		super.onSetUp();
> 		sf = jcrTemplate.getSessionFactory();
> 		session = SessionFactoryUtils.getSession(sf, true);
> 		TransactionSynchronizationManager.bindResource(sf,
> 				sf.getSessionHolder(session));
> 	}
> 
> 	@Override
> 	protected void onTearDown() throws Exception {
> 		TransactionSynchronizationManager.unbindResource(sf);
> 		SessionFactoryUtils.releaseSession(session, sf);
> 		super.onTearDown();
> 	}
> 
> 	public void testGetAllFiles() throws RepositoryException {
> 		Node addNode = jcrTemplate.getRootNode().addNode("test");
> 		addNode.addMixin(JcrConstants.MIX_REFERENCEABLE);
> 		String uuid = addNode.getUUID();
> 
> 		Node nodeByUUID = jcrTemplate.getNodeByUUID(uuid);
> 		assertEquals(JcrConstants.MIX_REFERENCEABLE,
> 				nodeByUUID.getMixinNodeTypes()[0].getName());
> 	}
> }
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Junit-testing-with-Jackrabbit-using-AbstractDependencyInjectionSpringContextTests-tf4111862.html#a11708893
Sent from the Jackrabbit - Dev mailing list archive at Nabble.com.


Mime
View raw message