@Test public void testFullConfiguration() throws Exception { DataSourceFactory ds = getDataSourceFactory("yaml/full_db_pool.yml"); assertThat(ds.getDriverClass()).isEqualTo("org.postgresql.Driver"); assertThat(ds.getUser()).isEqualTo("pg-user"); assertThat(ds.getUrl()).isEqualTo("jdbc:postgresql://db.example.com/db-prod"); assertThat(ds.getPassword()).isEqualTo("iAMs00perSecrEET"); assertThat(ds.getProperties()).containsEntry("charSet", "UTF-8"); assertThat(ds.getMaxWaitForConnection()).isEqualTo(Duration.seconds(1)); assertThat(ds.getValidationQuery()).isEqualTo("/* MyService Health Check */ SELECT 1"); assertThat(ds.getMinSize()).isEqualTo(8); assertThat(ds.getInitialSize()).isEqualTo(15); assertThat(ds.getMaxSize()).isEqualTo(32); assertThat(ds.getCheckConnectionWhileIdle()).isFalse(); assertThat(ds.getEvictionInterval()).isEqualTo(Duration.seconds(10)); assertThat(ds.getMinIdleTime()).isEqualTo(Duration.minutes(1)); assertThat(ds.getValidationInterval()).isEqualTo(Duration.minutes(1)); assertThat(ds.isAutoCommentsEnabled()).isFalse(); assertThat(ds.getReadOnlyByDefault()).isFalse(); assertThat(ds.isRemoveAbandoned()).isTrue(); assertThat(ds.getRemoveAbandonedTimeout()).isEqualTo(Duration.seconds(15L)); assertThat(ds.getAbandonWhenPercentageFull()).isEqualTo(75); assertThat(ds.isAlternateUsernamesAllowed()).isTrue(); assertThat(ds.getCommitOnReturn()).isTrue(); assertThat(ds.getRollbackOnReturn()).isTrue(); assertThat(ds.getAutoCommitByDefault()).isFalse(); assertThat(ds.getDefaultCatalog()).isEqualTo("test_catalog"); assertThat(ds.getDefaultTransactionIsolation()) .isEqualTo(DataSourceFactory.TransactionIsolation.READ_COMMITTED); assertThat(ds.getUseFairQueue()).isFalse(); assertThat(ds.getInitializationQuery()) .isEqualTo("insert into connections_log(ts) values (now())"); assertThat(ds.getLogAbandonedConnections()).isEqualTo(true); assertThat(ds.getLogValidationErrors()).isEqualTo(true); assertThat(ds.getMaxConnectionAge()).isEqualTo(Optional.of(Duration.hours(1))); assertThat(ds.getCheckConnectionOnBorrow()).isEqualTo(true); assertThat(ds.getCheckConnectionOnConnect()).isEqualTo(false); assertThat(ds.getCheckConnectionOnReturn()).isEqualTo(true); assertThat(ds.getValidationQueryTimeout()).isEqualTo(Optional.of(Duration.seconds(3))); assertThat(ds.getValidatorClassName()) .isEqualTo(Optional.of("io.dropwizard.db.CustomConnectionValidator")); }