/** * Copyright (C) 2000-2016 Atomikos <info@atomikos.com> * * LICENSE CONDITIONS * * See http://www.atomikos.com/Main/WhichLicenseApplies for details. */ package com.atomikos.jndi; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import java.util.Hashtable; import javax.naming.CompositeName; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.Name; import javax.naming.NamingException; import javax.sql.XADataSource; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import com.atomikos.icatch.jta.UserTransactionManager; import com.atomikos.jdbc.AtomikosDataSourceBean; public class JndiTestJUnit { private Context ctx ; @Before public void before() throws NamingException { Hashtable<String, String> env = new Hashtable<String, String>(); env.put(Context.INITIAL_CONTEXT_FACTORY, AtomikosContextFactory.class.getName()); ctx = new InitialContext(env); } @Test public void testNameParser() throws Exception { AtomikosContext atomikosCtd = new AtomikosContext(); Name name = atomikosCtd.getNameParser("").parse("java:comp/UserTransaction"); assertEquals("java:comp/UserTransaction", name.toString()); assertSame(UserTransactionManager.class, atomikosCtd.lookup(name).getClass()); name = atomikosCtd.getNameParser(new CompositeName()).parse("java:comp/UserTransaction"); assertEquals("java:comp/UserTransaction", name.toString()); assertSame(UserTransactionManager.class, atomikosCtd.lookup(name).getClass()); } @Test public void testDefaultUserTransactionAndResources() throws Exception { AtomikosDataSourceBean adsb = new AtomikosDataSourceBean(); adsb.setMaxPoolSize(1); adsb.setXaDataSource(Mockito.mock(XADataSource.class)); adsb.setUniqueResourceName("jdbc/pds"); adsb.init(); assertTrue(adsb == ctx.lookup("jdbc/pds")); } @After public void after() throws NamingException { ctx.close(); } @Test public void userTransactionIsBound() throws NamingException { Object lookup = ctx.lookup("java:comp/UserTransaction"); System.err.println(lookup); Object lookup2 = ctx.lookup("java:comp/UserTransaction"); System.err.println(lookup2); assertTrue( lookup instanceof UserTransactionManager); } }