1 package net.sumaris.core.test;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import com.google.common.base.Preconditions;
26 import net.sumaris.core.config.SumarisConfiguration;
27 import org.apache.commons.lang3.StringUtils;
28 import org.slf4j.Logger;
29 import org.slf4j.LoggerFactory;
30 import org.springframework.context.annotation.Bean;
31 import org.springframework.jdbc.datasource.DriverManagerDataSource;
32
33 import javax.annotation.Resource;
34 import javax.sql.DataSource;
35
36
37
38
39
40 @org.springframework.boot.test.context.TestConfiguration
41 public abstract class TestConfiguration {
42
43
44 private static final Logger log =
45 LoggerFactory.getLogger(TestConfiguration.class);
46
47 protected static SumarisConfiguration initConfiguration(String configFileName) {
48 SumarisConfiguration config = SumarisConfiguration.getInstance();
49 if (config == null) {
50 log.info(String.format("Configuration file: %s", configFileName));
51 config = new SumarisConfiguration(configFileName);
52 SumarisConfiguration.setInstance(config);
53 }
54 return config;
55 }
56
57 @Bean
58 public DataSource dataSource(SumarisConfiguration config) {
59
60 Preconditions.checkArgument(StringUtils.isNotBlank(config.getJdbcDriver()), "Missing jdbc driver in configuration");
61 Preconditions.checkArgument(StringUtils.isNotBlank(config.getJdbcURL()), "Missing jdbc driver in configuration");
62 Preconditions.checkArgument(StringUtils.isNotBlank(config.getJdbcUsername()), "Missing jdbc username in configuration");
63
64 log.info(String.format("Database URL: %s", config.getJdbcURL()));
65 log.info(String.format("Database username: %s", config.getJdbcUsername()));
66
67
68 DriverManagerDataSource dataSource = new DriverManagerDataSource();
69 dataSource.setDriverClassName(config.getJdbcDriver());
70 dataSource.setUrl(config.getJdbcURL());
71 dataSource.setUsername(config.getJdbcUsername());
72 dataSource.setPassword(config.getJdbcPassword());
73
74 if (StringUtils.isNotBlank(config.getJdbcSchema())) {
75 dataSource.setSchema(config.getJdbcSchema());
76 }
77 if (StringUtils.isNotBlank(config.getJdbcCatalog())) {
78 dataSource.setCatalog(config.getJdbcCatalog());
79 }
80 return dataSource;
81 }
82
83 }