Index: trunk/Nebulous-Server/t/02_config.t
===================================================================
--- trunk/Nebulous-Server/t/02_config.t	(revision 20965)
+++ trunk/Nebulous-Server/t/02_config.t	(revision 20965)
@@ -0,0 +1,110 @@
+#!/usr/bin/perl
+
+# Copryight (C) 2004-2005  Joshua Hoblitt
+#
+# $Id: 02_config.t,v 1.1 2008-12-12 21:13:41 jhoblitt Exp $
+
+use strict;
+use warnings;
+
+use Test::More tests => 21;
+
+use lib qw( ./t ./lib );
+
+use Nebulous::Server::Config;
+
+isa_ok(Nebulous::Server::Config->new(), "Nebulous::Server::Config");
+
+{
+    my $config = Nebulous::Server::Config->new;
+
+    ok($config->add_db(
+        dbindex     => 0,
+        dsn         => "DBI:mysql:database=foobar:host=localhost",
+        dbuser      => "baz",
+        dbpasswd    => "boo",
+    ), "add a db");
+
+    is($config->n_db, 1, "number of dbs");
+}
+
+
+{
+    my $config = Nebulous::Server::Config->new;
+
+    ok($config->add_db(
+        dbindex     => 0,
+        dsn         => "DBI:mysql:database=foobar:host=localhost",
+        dbuser      => "baz",
+        dbpasswd    => "boo",
+    ), "add a db");
+
+    ok($config->add_db(
+        dbindex     => 0,
+        dsn         => "DBI:mysql:database=foobar:host=localhost",
+        dbuser      => "baz",
+        dbpasswd    => "boo",
+    ), "add a db");
+
+    is($config->n_db, 1, "number of dbs");
+}
+
+{
+    my $config = Nebulous::Server::Config->new;
+
+    ok($config->add_db(
+        dbindex     => 0,
+        dsn         => "DBI:mysql:database=foobar:host=localhost",
+        dbuser      => "baz",
+        dbpasswd    => "boo",
+    ), "add a db");
+
+    ok($config->add_db(
+        dbindex     => 1,
+        dsn         => "DBI:mysql:database=foobar:host=localhost",
+        dbuser      => "baz",
+        dbpasswd    => "boo",
+    ), "add a db");
+
+    is($config->n_db, 2, "number of dbs");
+}
+
+{
+    my $config = Nebulous::Server::Config->new;
+
+    $config->add_db(
+        dbindex     => 0,
+        dsn         => "DBI:mysql:database=foobar:host=localhost",
+        dbuser      => "baz",
+        dbpasswd    => "boo",
+    );
+
+    $config->add_db(
+        dbindex     => 1,
+        dsn         => "DBI:mysql:database=foobar:host=localhost2",
+        dbuser      => "baz2",
+        dbpasswd    => "boo2",
+    );
+
+    # default should be 0
+    my $config_db = $config->db();
+
+    isa_ok($config_db, "Nebulous::Server::Config::DB");
+    is($config_db->dsn, "DBI:mysql:database=foobar:host=localhost", "dsn");
+    is($config_db->dbuser, "baz", "dbuser");
+    is($config_db->dbpasswd, "boo", "dbpasswd");
+
+    my $config_db0 = $config->db(0);
+
+    isa_ok($config_db0, "Nebulous::Server::Config::DB");
+    is($config_db0->dsn, "DBI:mysql:database=foobar:host=localhost", "dsn");
+    is($config_db0->dbuser, "baz", "dbuser");
+    is($config_db0->dbpasswd, "boo", "dbpasswd");
+
+    my $config_db1 = $config->db(1);
+
+    isa_ok($config_db1, "Nebulous::Server::Config::DB");
+    is($config_db1->dsn, "DBI:mysql:database=foobar:host=localhost2", "dsn");
+    is($config_db1->dbuser, "baz2", "dbuser");
+    is($config_db1->dbpasswd, "boo2", "dbpasswd");
+}
Index: trunk/Nebulous-Server/t/02_server_setup.t
===================================================================
--- trunk/Nebulous-Server/t/02_server_setup.t	(revision 20091)
+++ trunk/Nebulous-Server/t/02_server_setup.t	(revision 20965)
@@ -3,10 +3,10 @@
 # Copryight (C) 2004-2005  Joshua Hoblitt
 #
-# $Id: 02_server_setup.t,v 1.6 2008-02-02 01:51:29 jhoblitt Exp $
+# $Id: 02_server_setup.t,v 1.7 2008-12-12 21:13:41 jhoblitt Exp $
 
 use strict;
 use warnings;
 
-use Test::More tests => 2;
+use Test::More tests => 6;
 
 use lib qw( ./t ./lib );
@@ -17,23 +17,49 @@
 Test::Nebulous->setup;
 
-isa_ok(
-    Nebulous::Server->new(
-        dsn         => $NEB_DB,
-        dbuser      => $NEB_USER,
-        dbpasswd    => $NEB_PASS,
-    ),
-    "Nebulous::Server"
-);
+isa_ok(Nebulous::Server->new(), "Nebulous::Server");
 
 Test::Nebulous->setup;
 
-eval {
-    Nebulous::Server->new(
+# ->new()
+{
+    my $neb = Nebulous::Server->new( log_level => 'off' );
+
+    ok($neb, "set log level");
+}
+
+Test::Nebulous->setup;
+
+{
+    my $neb = Nebulous::Server->new(
         dsn         => "DBI:mysql:database=foobar:host=localhost",
         dbuser      => "baz",
         dbpasswd    =>"boo",
     );
-};
-like( $@, qr/DBI connect.*? failed/, "bad dsn/user/pass" );
+
+    ok($neb, "set database");
+}
+
+Test::Nebulous->setup;
+
+# add dbs after ->new()
+{
+    my $neb = Nebulous::Server->new;
+
+    ok($neb->config->add_db(
+        dbindex    => 0,
+        dsn         => "DBI:mysql:database=foobar:host=localhost",
+        dbuser      => "baz",
+        dbpasswd    =>"boo",
+    ), "add db");
+    
+    ok($neb->config->add_db(
+        dbindex    => 1,
+        dsn         => "DBI:mysql:database=foobar:host=localhost",
+        dbuser      => "baz",
+        dbpasswd    =>"boo",
+    ), "add dbs");
+
+    is($neb->config->n_db, 2, "n dbs")
+}
 
 Test::Nebulous->cleanup;
Index: trunk/Nebulous-Server/t/08_server_delete_instance.t
===================================================================
--- trunk/Nebulous-Server/t/08_server_delete_instance.t	(revision 20091)
+++ trunk/Nebulous-Server/t/08_server_delete_instance.t	(revision 20965)
@@ -3,5 +3,5 @@
 # Copryight (C) 2004-2005  Joshua Hoblitt
 #
-# $Id: 08_server_delete_instance.t,v 1.10 2008-03-20 21:10:14 jhoblitt Exp $
+# $Id: 08_server_delete_instance.t,v 1.11 2008-12-12 21:13:41 jhoblitt Exp $
 
 use strict;
@@ -24,7 +24,8 @@
 
 {
-    my $uri = $neb->create_object("foo");
+    my $key = "foo";
+    my $uri = $neb->create_object($key);
 
-    ok($neb->delete_instance($uri), "delete instance");
+    ok($neb->delete_instance($key, $uri), "delete instance");
 }
 
@@ -32,17 +33,18 @@
 
 {
-    my $uri1 = $neb->create_object("foo");
-    my $uri2 = $neb->replicate_object("foo");
+    my $key = "foo";
+    my $uri1 = $neb->create_object($key);
+    my $uri2 = $neb->replicate_object($key);
 
-    ok($neb->delete_instance($uri1), "delete instance");
+    ok($neb->delete_instance($key, $uri1), "delete instance");
 
-    my $locations = $neb->find_instances("foo");
+    my $locations = $neb->find_instances($key);
 
     is($locations->[0], $uri2, "instance remains");
 
-    ok($neb->delete_instance( $uri2 ), "delete instance");
+    ok($neb->delete_instance($key, $uri2), "delete instance");
 
     eval {
-        $neb->find_instances("foo");
+        $neb->find_instances($key);
     };
     like($@, qr/is valid object key/, "storage object was deleted");
@@ -52,5 +54,8 @@
 
 eval {
-    $neb->delete_instance("file:/foo");
+    my $key = "foo";
+    my $uri1 = $neb->create_object($key);
+
+    $neb->delete_instance($key, "file:/foo");
 };
 like($@, qr/no instance is associated with uri/, "uri does not exist");
@@ -61,12 +66,15 @@
     $neb->delete_instance();
 };
-like($@, qr/1 was expected/, "no params");
+like($@, qr/2 were expected/, "no params");
 
 Test::Nebulous->setup;
 
 eval {
-    $neb->delete_instance("foo", 2);
+    my $key = "foo";
+    my $uri1 = $neb->create_object($key);
+
+    $neb->delete_instance("foo", 2, 3);
 };
-like($@, qr/1 was expected/, "too many params");
+like($@, qr/2 were expected/, "too many params");
 
 Test::Nebulous->cleanup;
Index: trunk/Nebulous-Server/t/10_server_is_valid_volume_name.t
===================================================================
--- trunk/Nebulous-Server/t/10_server_is_valid_volume_name.t	(revision 20091)
+++ trunk/Nebulous-Server/t/10_server_is_valid_volume_name.t	(revision 20965)
@@ -3,5 +3,5 @@
 # Copryight (C) 2004-2005  Joshua Hoblitt
 #
-# $Id: 10_server_is_valid_volume_name.t,v 1.5 2008-03-20 21:10:14 jhoblitt Exp $
+# $Id: 10_server_is_valid_volume_name.t,v 1.6 2008-12-12 21:13:41 jhoblitt Exp $
 
 use strict;
@@ -23,13 +23,13 @@
 Test::Nebulous->setup;
 
-ok($neb->_is_valid_volume_name('node01'), "valid volume name");
+ok($neb->_is_valid_volume_name('foo', 'node01'), "valid volume name");
 
 Test::Nebulous->setup;
 
-ok($neb->_is_valid_volume_name('node02'), "valid volume name");
+ok($neb->_is_valid_volume_name('foo', 'node02'), "valid volume name");
 
 Test::Nebulous->setup;
 
-is($neb->_is_valid_volume_name('node99'), undef, "invalid volume name");
+is($neb->_is_valid_volume_name('foo', 'node99'), undef, "invalid volume name");
 
 Test::Nebulous->cleanup;
