1515 */
1616package org .seasar .doma .boot .autoconfigure ;
1717
18+ import org .junit .After ;
19+ import org .junit .Before ;
20+ import org .junit .Test ;
21+ import org .seasar .doma .jdbc .*;
22+ import org .seasar .doma .jdbc .dialect .MysqlDialect ;
23+ import org .seasar .doma .jdbc .dialect .StandardDialect ;
24+ import org .springframework .boot .autoconfigure .jdbc .DataSourceAutoConfiguration ;
25+ import org .springframework .context .annotation .AnnotationConfigApplicationContext ;
26+ import org .springframework .context .annotation .Bean ;
27+ import org .springframework .context .annotation .Configuration ;
28+ import org .springframework .jdbc .datasource .TransactionAwareDataSourceProxy ;
29+
1830import static org .junit .Assert .*;
31+ import static org .hamcrest .CoreMatchers .*;
1932
2033public class DomaAutoConfigurationTest {
34+ AnnotationConfigApplicationContext context ;
35+
36+ @ Before
37+ public void setUp () {
38+ this .context = new AnnotationConfigApplicationContext ();
39+ }
40+
41+ @ Test
42+ public void testAutoRegisteredConfig () {
43+ this .context .register (DomaAutoConfiguration .class ,
44+ DataSourceAutoConfiguration .class );
45+ this .context .refresh ();
46+ Config config = this .context .getBean (Config .class );
47+ assertThat (config , is (notNullValue ()));
48+ assertThat (config .getDataSource (),
49+ is (instanceOf (TransactionAwareDataSourceProxy .class )));
50+ assertThat (config .getDialect (), is (instanceOf (StandardDialect .class )));
51+ assertThat (config .getSqlFileRepository (),
52+ is (instanceOf (GreedyCacheSqlFileRepository .class )));
53+ assertThat (config .getNaming (), is (Naming .DEFAULT ));
54+ assertThat (config .getJdbcLogger (), is (instanceOf (UtilLoggingJdbcLogger .class )));
55+ }
56+
57+ @ Test
58+ public void testConfigWithDomaConfigBuilder () {
59+ this .context .register (ConfigBuilderConfigure .class , DomaAutoConfiguration .class ,
60+ DataSourceAutoConfiguration .class );
61+ this .context .refresh ();
62+ Config config = this .context .getBean (Config .class );
63+ assertThat (config , is (notNullValue ()));
64+ assertThat (config .getDataSource (),
65+ is (instanceOf (TransactionAwareDataSourceProxy .class )));
66+ assertThat (config .getDialect (), is (instanceOf (MysqlDialect .class )));
67+ assertThat (config .getSqlFileRepository (),
68+ is (instanceOf (NoCacheSqlFileRepository .class )));
69+ assertThat (config .getNaming (), is (Naming .SNAKE_UPPER_CASE ));
70+ assertThat (config .getJdbcLogger (), is (instanceOf (UtilLoggingJdbcLogger .class )));
71+ }
72+
73+ @ After
74+ public void tearDown () {
75+ if (this .context != null ) {
76+ this .context .close ();
77+ }
78+ }
2179
22- }
80+ @ Configuration
81+ public static class ConfigBuilderConfigure {
82+ @ Bean
83+ DomaConfigBuilder myDomaConfigBuilder () {
84+ return new DomaConfigBuilder ().dialect (new MysqlDialect ())
85+ .sqlFileRepository (new NoCacheSqlFileRepository ())
86+ .naming (Naming .SNAKE_UPPER_CASE );
87+ }
88+ }
89+ }
0 commit comments