refactored the duties of the different balancer classes, added tests and docs
[dbsrgits/DBIx-Class-Historic.git] / t / lib / DBICTest.pm
index 2077af3..eb8fbc2 100755 (executable)
@@ -30,6 +30,9 @@ DBIx::Class.
     no_deploy=>1,
     no_populate=>1,
     storage_type=>'::DBI::Replicated',
+    storage_type_args=>{
+       balancer_type=>'DBIx::Class::Storage::DBI::Replicated::Balancer::Random'
+    },
   );
 
 This method removes the test SQLite database in t/var/DBIxClass.db 
@@ -43,9 +46,17 @@ default, unless the no_deploy or no_populate flags are set.
 
 =cut
 
+sub has_custom_dsn {
+       return $ENV{"DBICTEST_DSN"} ? 1:0;
+}
+
+sub _sqlite_dbfilename {
+       return "t/var/DBIxClass.db";
+}
+
 sub _database {
     my $self = shift;
-    my $db_file = "t/var/DBIxClass.db";
+    my $db_file = $self->_sqlite_dbfilename;
 
     unlink($db_file) if -e $db_file;
     unlink($db_file . "-journal") if -e $db_file . "-journal";
@@ -73,9 +84,12 @@ sub init_schema {
     } else {
       $schema = DBICTest::Schema->compose_namespace('DBICTest');
     }
+    if( $args{storage_type_args}) {
+       $schema->storage_type_args($args{storage_type_args});
+    } 
     if( $args{storage_type}) {
        $schema->storage_type($args{storage_type});
-    }
+    }    
     if ( !$args{no_connect} ) {
       $schema = $schema->connect($self->_database);
       $schema->storage->on_connect_do(['PRAGMA synchronous = OFF']);