@Override public JdbcDatabaseContainer newInstance(String tag) { return new MSSQLServerContainer(MSSQLServerContainer.IMAGE + ":" + tag); } }
@Override protected void configure() { addExposedPort(MS_SQL_SERVER_PORT); LicenseAcceptance.assertLicenseAccepted(this.getDockerImageName()); addEnv("ACCEPT_EULA", "Y"); addEnv("SA_PASSWORD", password); }
@Override public String getJdbcUrl() { return "jdbc:sqlserver://" + getContainerIpAddress() + ":" + getMappedPort(MS_SQL_SERVER_PORT); }
public MSSQLServerContainer(final String dockerImageName) { super(dockerImageName); withStartupTimeoutSeconds(DEFAULT_STARTUP_TIMEOUT_SECONDS); withConnectTimeoutSeconds(DEFAULT_CONNECT_TIMEOUT_SECONDS); }
@Test public void testSimple() throws SQLException { HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setJdbcUrl(mssqlServer.getJdbcUrl()); hikariConfig.setUsername(mssqlServer.getUsername()); hikariConfig.setPassword(mssqlServer.getPassword()); HikariDataSource ds = new HikariDataSource(hikariConfig); Statement statement = ds.getConnection().createStatement(); statement.execute("SELECT 1"); ResultSet resultSet = statement.getResultSet(); resultSet.next(); int resultSetInt = resultSet.getInt(1); assertEquals("A basic SELECT query succeeds", 1, resultSetInt); }
@Override protected Integer getLivenessCheckPort() { return getMappedPort(MS_SQL_SERVER_PORT); }
@Test public void testSetupDatabase() throws SQLException { HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setJdbcUrl(mssqlServer.getJdbcUrl()); hikariConfig.setUsername(mssqlServer.getUsername()); hikariConfig.setPassword(mssqlServer.getPassword()); HikariDataSource ds = new HikariDataSource(hikariConfig); Statement statement = ds.getConnection().createStatement(); statement.executeUpdate("CREATE DATABASE [test];"); statement = ds.getConnection().createStatement(); statement.executeUpdate("CREATE TABLE [test].[dbo].[Foo](ID INT PRIMARY KEY);"); statement = ds.getConnection().createStatement(); statement.executeUpdate("INSERT INTO [test].[dbo].[Foo] (ID) VALUES (3);"); statement = ds.getConnection().createStatement(); statement.execute("SELECT * FROM [test].[dbo].[Foo];"); ResultSet resultSet = statement.getResultSet(); resultSet.next(); int resultSetInt = resultSet.getInt("ID"); assertEquals("A basic SELECT query succeeds", 3, resultSetInt); } }