package com.vladmihalcea.flexypool.util;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.jndi.SimpleNamingContextBuilder;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
* JndiUtilsTest - JndiUtils Test
*
* @author Vlad Mihalcea
*/
public class JndiUtilsTest extends AbstractUtilsTest<JndiUtils> {
private SimpleNamingContextBuilder namingContext;
@Before
public void init() throws NamingException {
namingContext = SimpleNamingContextBuilder.emptyActivatedContextBuilder();
}
@After
public void destroy() throws NamingException {
namingContext.clear();
}
@Test
public void testLookupUnboundObject() {
try {
JndiUtils.lookup("abc");
fail("There shouldn't be any object bound with this name");
} catch (IllegalArgumentException e) {
assertEquals(NameNotFoundException.class, e.getCause().getClass());
assertEquals("abc was not found in JNDI", e.getMessage());
}
}
@Test
public void testLookupSuccess() {
namingContext.bind("abc", "def");
assertEquals("def", JndiUtils.lookup("abc"));
}
@Override
protected Class<JndiUtils> getUtilsClass() {
return JndiUtils.class;
}
}