package com.goodworkalan.addendum.connector; import static com.goodworkalan.addendum.Addendum.NAMING_EXCEPTION; import static com.goodworkalan.addendum.Addendum.SQL_CLOSE; import static com.goodworkalan.addendum.Addendum.SQL_CONNECT; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.testng.Assert.assertEquals; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.NamingException; import org.testng.annotations.Test; import com.goodworkalan.addendum.BadInitialContextFactory; import com.goodworkalan.addendum.TestInitialContextFactory; import com.goodworkalan.danger.Danger; /** * Unit tests for the {@link NamingConnector} class. * * @author Alan Gutierrez */ public class NamingConnectorTest { /** Test naming exception. */ // @Test(expectedExceptions = Danger.class) public void namingException() throws NamingException { try { System.setProperty(Context.INITIAL_CONTEXT_FACTORY, BadInitialContextFactory.class.getName()); NamingConnector connector = new NamingConnector("foo"); connector.open(); } catch (Danger e) { assertEquals(e.code, NAMING_EXCEPTION); System.out.println(e.getMessage()); throw e; } } /** Test SQL exception on open. */ // @Test(expectedExceptions = Danger.class) public void openSqlException() throws NamingException { try { System.setProperty(Context.INITIAL_CONTEXT_FACTORY, TestInitialContextFactory.class.getName()); NamingConnector connector = new NamingConnector("bad"); connector.open(); } catch (Danger e) { assertEquals(e.code, SQL_CONNECT); System.out.println(e.getMessage()); throw e; } } /** Test open. */ // @Test public void openAndClose() throws NamingException { System.setProperty(Context.INITIAL_CONTEXT_FACTORY, TestInitialContextFactory.class.getName()); NamingConnector connector = new NamingConnector("good"); connector.close(connector.open()); } /** Test SQL exception on close. */ // @Test(expectedExceptions = Danger.class) public void closeSqlException() throws NamingException, SQLException { NamingConnector connector = new NamingConnector("foo"); Connection connection = mock(Connection.class); doThrow(new SQLException()).when(connection).close(); try { connector.close(connection); } catch (Danger e) { assertEquals(e.code, SQL_CLOSE); System.out.println(e.getMessage()); throw e; } } }