package br.com.citframework.util; import static org.mockito.Mockito.mock; import javax.naming.Context; import javax.resource.ResourceException; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.mockito.Mockito; import br.com.centralit.MockInitialContextRule; /** * Classe de testes, mockada, para valida��o do comportamento de {@link JNDIFactory} * * @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a> * @since 19/08/2014 * */ public final class JNDIFactoryTest { private static Context context = mock(Context.class); private static JNDIFactory factory = new JNDIFactory(); private static final String JNDI_JAVA = "java:"; private static final String JNDI_JAVA_TEST = JNDI_JAVA.concat("/test"); private static final String JNDI_JAVA_TEST_NOTFOUND = JNDI_JAVA.concat("/notFound"); private final String BINDED_STRING = "This is STRIINNNGGGG!!"; @Rule public MockInitialContextRule mockInitialContextRule = new MockInitialContextRule(context); @BeforeClass public static void setUpClass() throws Exception { context.createSubcontext(JNDI_JAVA); context.createSubcontext(JNDI_JAVA_TEST); ReflectionUtils.setField(factory, "context", context); } @Test public void testPutResource() throws Exception { final Boolean result = factory.putResource(context, JNDI_JAVA_TEST, BINDED_STRING); Assert.assertTrue(result); Mockito.verify(context, Mockito.times(1)).bind(JNDI_JAVA_TEST, BINDED_STRING); } @Test public void testGetResource() throws Exception { factory.getResource(JNDI_JAVA_TEST); Mockito.when(context.lookup(JNDI_JAVA_TEST)).thenReturn(JNDI_JAVA_TEST); Mockito.verify(context, Mockito.times(1)).lookup(JNDI_JAVA_TEST); } @Test @SuppressWarnings("unchecked") public void testGetResourceNotFound() throws Exception { Mockito.when(context.lookup(JNDI_JAVA_TEST_NOTFOUND)).thenThrow(ResourceException.class); } }