package com.nurkiewicz.jdbcrepository;
import com.nurkiewicz.jdbcrepository.repositories.BoardingPassRepository;
import com.nurkiewicz.jdbcrepository.repositories.CommentRepository;
import com.nurkiewicz.jdbcrepository.repositories.CommentWithUserRepository;
import com.nurkiewicz.jdbcrepository.repositories.UserRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
public abstract class JdbcRepositoryTestConfig {
@Bean
public abstract DataSource dataSource();
@Bean
public CommentRepository commentRepository() {
return new CommentRepository("COMMENTS");
}
@Bean
public UserRepository userRepository() {
return new UserRepository("USERS");
}
@Bean
public BoardingPassRepository boardingPassRepository() {
return new BoardingPassRepository();
}
@Bean
public CommentWithUserRepository commentWithUserRepository() {
return new CommentWithUserRepository(new TableDescription("COMMENTS", "COMMENTS JOIN USERS ON COMMENTS.user_name = USERS.user_name", "id"));
}
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
}