package com.goodworkalan.addendum.connector; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; import com.goodworkalan.addendum.connector.Connector; /** * A mock connector. * * @author Alan Gutierrez */ public class MockConnector implements Connector { /** The database product name. */ private final String databaseProductName; /** * Create a mock connection with a database product name of "MOCK". */ public MockConnector() { this("MOCK"); } /** * Create a mock connector with the given database product name. * * @param databaseProductName The database product name. */ public MockConnector(String databaseProductName) { this.databaseProductName = databaseProductName; } /** * Open a mock JDBC connection. * * @return A mock JDBC connection. */ public Connection open() { DatabaseMetaData meta = mock(DatabaseMetaData.class); Connection connection = mock(Connection.class); try { when(connection.getMetaData()).thenReturn(meta); } catch (SQLException e) { } try { when(meta.getDatabaseProductName()).thenReturn(databaseProductName); } catch (SQLException e) { } return connection; } /** * Does nothing. * * @param connection * A JDBC connection opened by this connector. */ public void close(Connection connection) { } }