Coverage Summary for Class: TestCustomDataSource (org.umlg.sqlg.test.datasource)
  | Class | Method, % | Branch, % | Line, % | 
  | TestCustomDataSource | 100%
  
  
    (3/3) | 25%
  
  
    (1/4) | 100%
  
  
    (7/7) | 
  
    | TestCustomDataSource$TestSqlgDataSource | 83.3%
  
  
    (5/6) | 85.7%
  
  
    (6/7) | 
  | Total | 88.9%
  
  
    (8/9) | 25%
  
  
    (1/4) | 92.9%
  
  
    (13/14) | 
 package org.umlg.sqlg.test.datasource;
 
 import org.apache.commons.configuration2.Configuration;
 import org.hamcrest.MatcherAssert;
 import org.junit.Before;
 import org.junit.Test;
 import org.umlg.sqlg.sql.dialect.SqlDialect;
 import org.umlg.sqlg.structure.SqlgDataSource;
 import org.umlg.sqlg.structure.SqlgGraph;
 import org.umlg.sqlg.test.BaseTest;
 
 import javax.sql.DataSource;
 import java.util.Objects;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 
 /**
  * @author jgustie
  */
 public class TestCustomDataSource extends BaseTest {
 
     private static SqlgDataSource sqlgDataSource;
 
     @Before
     public void before() throws Exception {
         super.before();
         sqlgDataSource = this.sqlgGraph.getSqlgDataSource();
     }
 
     @Test
     public void testCustomDataSourceImplementation() {
         configuration.setProperty(SqlgGraph.DATA_SOURCE, TestSqlgDataSource.class.getName());
         try (SqlgGraph sqlgGraph = SqlgGraph.open(configuration)) {
             MatcherAssert.assertThat(sqlgGraph.getSqlgDataSource(), instanceOf(TestSqlgDataSource.class));
         }
     }
 
     /**
      * Sqlg data source implementation to use for testing.
      */
     public static class TestSqlgDataSource implements SqlgDataSource {
 
         @SuppressWarnings("unused")
         public static TestSqlgDataSource create(Configuration configuration) throws Exception {
             // We cannot extend C3P0DataSource, but we can delegate everything to it
             return new TestSqlgDataSource(sqlgDataSource);
         }
 
         private final SqlgDataSource delegate;
 
         private TestSqlgDataSource(SqlgDataSource delegate) {
             this.delegate = Objects.requireNonNull(delegate);
         }
 
         public DataSource getDatasource() {
             return delegate.getDatasource();
         }
 
         public SqlDialect getDialect() {
             return delegate.getDialect();
         }
 
         public void close() {
             delegate.close();
         }
 
         public String getPoolStatsAsJson() {
             return delegate.getPoolStatsAsJson();
         }
         
     }
     
 }