package com.nurkiewicz.jdbcrepository.postgresql;
import com.nurkiewicz.jdbcrepository.JdbcRepositoryTestConfig;
import com.nurkiewicz.jdbcrepository.repositories.BoardingPassRepository;
import com.nurkiewicz.jdbcrepository.repositories.CommentRepository;
import com.nurkiewicz.jdbcrepository.repositories.UserRepository;
import com.nurkiewicz.jdbcrepository.sql.PostgreSqlGenerator;
import com.nurkiewicz.jdbcrepository.sql.SqlGenerator;
import org.postgresql.jdbc2.optional.PoolingDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
@EnableTransactionManagement
@Configuration
public class JdbcRepositoryTestPostgresqlConfig extends JdbcRepositoryTestConfig {
public static final int POSTGRESQL_PORT = 5432;
@Bean
@Override
public CommentRepository commentRepository() {
return new CommentRepository("comments");
}
@Bean
@Override
public UserRepository userRepository() {
return new UserRepository("users");
}
@Override
public BoardingPassRepository boardingPassRepository() {
return new BoardingPassRepository("boarding_pass");
}
@Bean
public SqlGenerator sqlGenerator() {
return new PostgreSqlGenerator();
}
@Bean
@Override
public DataSource dataSource() {
PoolingDataSource ds = new PoolingDataSource();
ds.setUser("postgres");
ds.setPassword(System.getProperty("postgresql.password"));
ds.setDatabaseName("spring_data_jdbc_repository_test");
return ds;
}
}