IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 20, 2009, 11:15:20 AM (17 years ago)
Author:
jhoblitt
Message:

merge neb_distrib_20081210

Location:
trunk/Nebulous-Server
Files:
10 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous-Server

  • trunk/Nebulous-Server/t/01_load.t

    r17076 r23932  
    1212use Test::More tests => 5;
    1313
    14 BEGIN { use_ok( 'Nebulous::Keys' ); }
     14BEGIN { use_ok( 'Nebulous::Key' ); }
    1515BEGIN { use_ok( 'Nebulous::Server' ); }
    1616BEGIN { use_ok( 'Nebulous::Server::Log' ); }
  • trunk/Nebulous-Server/t/02_config.t

    r23931 r23932  
    33# Copryight (C) 2004-2005  Joshua Hoblitt
    44#
    5 # $Id: 02_config.t,v 1.1 2008-12-12 21:13:41 jhoblitt Exp $
     5# $Id: 02_config.t,v 1.1.2.2 2008-12-14 22:52:37 eugene Exp $
    66
    77use strict;
  • trunk/Nebulous-Server/t/02_server_setup.t

    r20990 r23932  
    88use warnings;
    99
    10 use Test::More tests => 2;
     10use Test::More tests => 6;
    1111
    1212use lib qw( ./t ./lib );
     
    1717Test::Nebulous->setup;
    1818
    19 isa_ok(
    20     Nebulous::Server->new(
    21         dsn         => $NEB_DB,
    22         dbuser      => $NEB_USER,
    23         dbpasswd    => $NEB_PASS,
    24     ),
    25     "Nebulous::Server"
    26 );
     19isa_ok(Nebulous::Server->new(), "Nebulous::Server");
    2720
    2821Test::Nebulous->setup;
    2922
    30 eval {
    31     Nebulous::Server->new(
     23# ->new()
     24{
     25    my $neb = Nebulous::Server->new( trace => 'off' );
     26
     27    ok($neb, "set log level");
     28}
     29
     30Test::Nebulous->setup;
     31
     32{
     33    my $neb = Nebulous::Server->new(
    3234        dsn         => "DBI:mysql:database=foobar:host=localhost",
    3335        dbuser      => "baz",
    3436        dbpasswd    =>"boo",
    3537    );
    36 };
    37 like( $@, qr/DBI connect.*? failed/, "bad dsn/user/pass" );
     38
     39    ok($neb, "set database");
     40}
     41
     42Test::Nebulous->setup;
     43
     44# add dbs after ->new()
     45{
     46    my $neb = Nebulous::Server->new;
     47
     48    ok($neb->config->add_db(
     49        dbindex    => 0,
     50        dsn         => "DBI:mysql:database=foobar:host=localhost",
     51        dbuser      => "baz",
     52        dbpasswd    =>"boo",
     53    ), "add db");
     54   
     55    ok($neb->config->add_db(
     56        dbindex    => 1,
     57        dsn         => "DBI:mysql:database=foobar:host=localhost",
     58        dbuser      => "baz",
     59        dbpasswd    =>"boo",
     60    ), "add dbs");
     61
     62    is($neb->config->n_db, 2, "n dbs")
     63}
    3864
    3965Test::Nebulous->cleanup;
  • trunk/Nebulous-Server/t/03_server_create_object.t

    r19493 r23932  
    88use warnings FATAL => qw( all );
    99
    10 use Test::More tests => 89;
     10use Test::More tests => 99;
    1111
    1212use lib qw( ./t ./lib );
    1313
     14use File::Basename qw( basename );
    1415use File::ExtAttr qw( getfattr );
    1516use Nebulous::Server;
     
    2627);
    2728
     29use Test::DBUnit dsn => $NEB_DB, username => $NEB_USER, password => $NEB_PASS;
     30
    2831Test::Nebulous->setup;
    2932
     
    334337}
    335338
     339# test for properly row creation in the directories table
     340
     341Test::Nebulous->setup;
     342
     343{
     344    my $key = "foo";
     345    $neb->create_object($key);
     346
     347    expected_dataset_ok(
     348        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     349        storage_object  => [so_id => 1, ext_id => $key, dir_id => 1],
     350    );
     351}
     352
     353Test::Nebulous->setup;
     354
     355{
     356    my $key = "a/foo";
     357    $neb->create_object($key);
     358
     359    expected_dataset_ok(
     360        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     361        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     362        storage_object  => [so_id => 1, ext_id => $key, ext_id_basename => basename($key), dir_id => 2],
     363    );
     364
     365}
     366
     367Test::Nebulous->setup;
     368
     369{
     370    my $key = "a/b/foo";
     371    $neb->create_object($key);
     372
     373    expected_dataset_ok(
     374        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     375        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     376        directory       => [dir_id => 3, dirname => 'b', parent_id => 2],
     377        storage_object  => [so_id => 1, ext_id => $key, ext_id_basename => basename($key), dir_id => 3],
     378    );
     379}
     380
     381Test::Nebulous->setup;
     382
     383{
     384    my $key = "a/b/c/foo";
     385    $neb->create_object($key);
     386
     387    expected_dataset_ok(
     388        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     389        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     390        directory       => [dir_id => 3, dirname => 'b', parent_id => 2],
     391        directory       => [dir_id => 4, dirname => 'c', parent_id => 3],
     392        storage_object  => [so_id => 1, ext_id => $key, ext_id_basename => basename($key), dir_id => 4],
     393    );
     394}
     395
     396Test::Nebulous->setup;
     397
     398{
     399    my $key1 = "a/b/c/foo";
     400    my $key2 = "foo";
     401    $neb->create_object($key1);
     402    $neb->create_object($key2);
     403
     404    expected_dataset_ok(
     405        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     406        storage_object  => [so_id => 2, ext_id => $key2, ext_id_basename => basename($key2), dir_id => 1],
     407        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     408        directory       => [dir_id => 3, dirname => 'b', parent_id => 2],
     409        directory       => [dir_id => 4, dirname => 'c', parent_id => 3],
     410        storage_object  => [so_id => 1, ext_id => $key1, ext_id_basename => basename($key1), dir_id => 4],
     411    );
     412}
     413
     414Test::Nebulous->setup;
     415
     416{
     417    my $key1 = "a/b/c/foo";
     418    my $key2 = "a/foo";
     419    $neb->create_object($key1);
     420    $neb->create_object($key2);
     421
     422    expected_dataset_ok(
     423        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     424        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     425        storage_object  => [so_id => 2, ext_id => $key2, ext_id_basename => basename($key2), dir_id => 2],
     426        directory       => [dir_id => 3, dirname => 'b', parent_id => 2],
     427        directory       => [dir_id => 4, dirname => 'c', parent_id => 3],
     428        storage_object  => [so_id => 1, ext_id => $key1, ext_id_basename => basename($key1), dir_id => 4],
     429    );
     430}
     431
     432Test::Nebulous->setup;
     433
     434{
     435    my $key1 = "a/b/c/foo";
     436    my $key2 = "d/foo";
     437    $neb->create_object($key1);
     438    $neb->create_object($key2);
     439
     440    expected_dataset_ok(
     441        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     442        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     443        directory       => [dir_id => 3, dirname => 'b', parent_id => 2],
     444        directory       => [dir_id => 4, dirname => 'c', parent_id => 3],
     445        storage_object  => [so_id => 1, ext_id => $key1, ext_id_basename => basename($key1), dir_id => 4],
     446        directory       => [dir_id => 5, dirname => 'd', parent_id => 1],
     447        storage_object  => [so_id => 2, ext_id => $key2, ext_id_basename => basename($key2), dir_id => 5],
     448    );
     449}
     450
     451Test::Nebulous->setup;
     452
     453{
     454    my $key1 = "a/b/c/foo";
     455    my $key2 = "a/d/foo";
     456    $neb->create_object($key1);
     457    $neb->create_object($key2);
     458
     459    expected_dataset_ok(
     460        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     461        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     462        directory       => [dir_id => 3, dirname => 'b', parent_id => 2],
     463        directory       => [dir_id => 4, dirname => 'c', parent_id => 3],
     464        storage_object  => [so_id => 1, ext_id => $key1, ext_id_basename => basename($key1), dir_id => 4],
     465        directory       => [dir_id => 5, dirname => 'd', parent_id => 2],
     466        storage_object  => [so_id => 2, ext_id => $key2, ext_id_basename => basename($key2), dir_id => 5],
     467    );
     468}
     469
     470Test::Nebulous->setup;
     471
     472{
     473    my $key1 = "a/b/c/foo";
     474    my $key2 = "d/a/foo";
     475    $neb->create_object($key1);
     476    $neb->create_object($key2);
     477
     478    expected_dataset_ok(
     479        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     480        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     481        directory       => [dir_id => 3, dirname => 'b', parent_id => 2],
     482        directory       => [dir_id => 4, dirname => 'c', parent_id => 3],
     483        storage_object  => [so_id => 1, ext_id => $key1, ext_id_basename => basename($key1), dir_id => 4],
     484        directory       => [dir_id => 5, dirname => 'd', parent_id => 1],
     485        directory       => [dir_id => 6, dirname => 'a', parent_id => 5],
     486        storage_object  => [so_id => 2, ext_id => $key2, ext_id_basename => basename($key2), dir_id => 6],
     487    );
     488}
     489
     490Test::Nebulous->setup;
     491
     492{
     493    my $key1 = "a/b/c/foo";
     494    my $key2 = "a/b/c/d/foo";
     495    $neb->create_object($key1);
     496    $neb->create_object($key2);
     497
     498    expected_dataset_ok(
     499        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     500        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     501        directory       => [dir_id => 3, dirname => 'b', parent_id => 2],
     502        directory       => [dir_id => 4, dirname => 'c', parent_id => 3],
     503        storage_object  => [so_id => 1, ext_id => $key1, ext_id_basename => basename($key1), dir_id => 4],
     504        directory       => [dir_id => 5, dirname => 'd', parent_id => 4],
     505        storage_object  => [so_id => 2, ext_id => $key2, ext_id_basename => basename($key2), dir_id => 5],
     506    );
     507}
     508
    336509Test::Nebulous->setup;
    337510
  • trunk/Nebulous-Server/t/08_server_delete_instance.t

    r20990 r23932  
    33# Copryight (C) 2004-2005  Joshua Hoblitt
    44#
    5 # $Id: 08_server_delete_instance.t,v 1.12 2008-12-14 22:54:25 eugene Exp $
     5# $Id: 08_server_delete_instance.t,v 1.10.22.1 2008-12-14 22:52:37 eugene Exp $
    66
    77use strict;
     
    2424
    2525{
    26     my $uri = $neb->create_object("foo");
     26    my $key = "foo";
     27    my $uri = $neb->create_object($key);
    2728
    28     ok($neb->delete_instance($uri), "delete instance");
     29    ok($neb->delete_instance($key, $uri), "delete instance");
    2930}
    3031
     
    3233
    3334{
    34     my $uri1 = $neb->create_object("foo");
    35     my $uri2 = $neb->replicate_object("foo");
     35    my $key = "foo";
     36    my $uri1 = $neb->create_object($key);
     37    my $uri2 = $neb->replicate_object($key);
    3638
    37     ok($neb->delete_instance($uri1), "delete instance");
     39    ok($neb->delete_instance($key, $uri1), "delete instance");
    3840
    39     my $locations = $neb->find_instances("foo");
     41    my $locations = $neb->find_instances($key);
    4042
    4143    is($locations->[0], $uri2, "instance remains");
    4244
    43     ok($neb->delete_instance( $uri2 ), "delete instance");
     45    ok($neb->delete_instance($key, $uri2), "delete instance");
    4446
    4547    eval {
    46         $neb->find_instances("foo");
     48        $neb->find_instances($key);
    4749    };
    4850    like($@, qr/is valid object key/, "storage object was deleted");
     
    5254
    5355eval {
    54     $neb->delete_instance("file:/foo");
     56    my $key = "foo";
     57    my $uri1 = $neb->create_object($key);
     58
     59    $neb->delete_instance($key, "file:/foo");
    5560};
    5661like($@, qr/no instance is associated with uri/, "uri does not exist");
     
    6166    $neb->delete_instance();
    6267};
    63 like($@, qr/1 was expected/, "no params");
     68like($@, qr/2 were expected/, "no params");
    6469
    6570Test::Nebulous->setup;
    6671
    6772eval {
    68     $neb->delete_instance("foo", 2);
     73    my $key = "foo";
     74    my $uri1 = $neb->create_object($key);
     75
     76    $neb->delete_instance("foo", 2, 3);
    6977};
    70 like($@, qr/1 was expected/, "too many params");
     78like($@, qr/2 were expected/, "too many params");
    7179
    7280Test::Nebulous->cleanup;
  • trunk/Nebulous-Server/t/10_server_is_valid_volume_name.t

    r20990 r23932  
    2323Test::Nebulous->setup;
    2424
    25 ok($neb->_is_valid_volume_name('node01'), "valid volume name");
     25ok($neb->_is_valid_volume_name('foo', 'node01'), "valid volume name");
    2626
    2727Test::Nebulous->setup;
    2828
    29 ok($neb->_is_valid_volume_name('node02'), "valid volume name");
     29ok($neb->_is_valid_volume_name('foo', 'node02'), "valid volume name");
    3030
    3131Test::Nebulous->setup;
    3232
    33 is($neb->_is_valid_volume_name('node99'), undef, "invalid volume name");
     33is($neb->_is_valid_volume_name('foo', 'node99'), undef, "invalid volume name");
    3434
    3535Test::Nebulous->cleanup;
  • trunk/Nebulous-Server/t/12_server_find_objects.t

    r17717 r23932  
    88use warnings FATAL => qw( all );
    99
    10 use Test::More tests => 6;
     10use Test::More tests => 28;
    1111
    1212use lib qw( ./t ./lib );
     
    2525# search for a regex of '' should match nothing
    2626eval {
    27     # key
    28     my $uri = $neb->create_object("foo");
     27    $neb->create_object("foo");
    2928
    3029    my $keys = $neb->find_objects();
     
    3534
    3635{
    37     # key
    38     my $uri = $neb->create_object("foo");
     36    $neb->create_object("foo");
    3937
    4038    my $keys = $neb->find_objects("foo");
     
    4846{
    4947    # key
    50     my $uri1 = $neb->create_object("foo");
    51     my $uri2 = $neb->replicate_object("foo");
     48    $neb->create_object("foo");
     49    $neb->replicate_object("foo");
    5250
    5351    my $keys = $neb->find_objects("foo");
     
    5553    is(scalar @$keys, 1, 'number of keys found');
    5654    is($keys->[0], "foo", "key name");
     55}
     56
     57Test::Nebulous->setup;
     58
     59{
     60    # key
     61    $neb->create_object("foo");
     62    $neb->create_object("bar");
     63
     64    my $keys = $neb->find_objects("foo");
     65
     66    is(scalar @$keys, 1, 'number of keys found');
     67    is($keys->[0], "foo", "key name");
     68}
     69
     70# test recursive dir searching
     71Test::Nebulous->setup;
     72
     73{
     74    $neb->create_object("a/foo");
     75
     76    my $keys = $neb->find_objects("a");
     77
     78    is(scalar @$keys, 1, 'number of keys found');
     79    is($keys->[0], "a/foo", "key name");
     80}
     81
     82Test::Nebulous->setup;
     83
     84{
     85    $neb->create_object("a/foo");
     86    $neb->create_object("b/foo");
     87
     88    my $keys = $neb->find_objects("a");
     89
     90    is(scalar @$keys, 1, 'number of keys found');
     91    is($keys->[0], "a/foo", "key name");
     92}
     93
     94Test::Nebulous->setup;
     95
     96{
     97    $neb->create_object("a/foo");
     98    $neb->create_object("a/b/foo");
     99
     100    my $keys = $neb->find_objects("a");
     101
     102    is(scalar @$keys, 1, 'number of keys found');
     103    is($keys->[0], "a/foo", "key name");
     104}
     105
     106Test::Nebulous->setup;
     107
     108{
     109    $neb->create_object("a/foo");
     110    $neb->create_object("a/bar");
     111
     112    my $keys = $neb->find_objects("a");
     113
     114    is(scalar @$keys, 2, 'number of keys found');
     115    is($keys->[0], "a/foo", "key name");
     116    is($keys->[1], "a/bar", "key name");
     117}
     118
     119Test::Nebulous->setup;
     120
     121{
     122    $neb->create_object("a/foo");
     123    $neb->create_object("bar");
     124
     125    my $keys = $neb->find_objects("a");
     126
     127    is(scalar @$keys, 1, 'number of keys found');
     128    is($keys->[0], "a/foo", "key name");
     129}
     130
     131Test::Nebulous->setup;
     132
     133{
     134    $neb->create_object("a/foo");
     135    $neb->create_object("foo");
     136    $neb->create_object("bar");
     137
     138    my $keys = $neb->find_objects("/");
     139
     140    is(scalar @$keys, 2, 'number of keys found');
     141    is($keys->[0], "foo", "key name");
     142    is($keys->[1], "bar", "key name");
     143}
     144
     145Test::Nebulous->setup;
     146
     147{
     148    $neb->create_object("a/foo");
     149    $neb->create_object("foo");
     150    $neb->create_object("bar");
     151
     152    my $keys = $neb->find_objects(".");
     153
     154    is(scalar @$keys, 2, 'number of keys found');
     155    is($keys->[0], "foo", "key name");
     156    is($keys->[1], "bar", "key name");
     157}
     158
     159Test::Nebulous->setup;
     160
     161{
     162    $neb->create_object("a/foo");
     163    $neb->create_object("foo");
     164    $neb->create_object("bar");
     165
     166    my $keys = $neb->find_objects("..");
     167
     168    is(scalar @$keys, 2, 'number of keys found');
     169    is($keys->[0], "foo", "key name");
     170    is($keys->[1], "bar", "key name");
    57171}
    58172
  • trunk/Nebulous-Server/t/13_server_rename_object.t

    r17717 r23932  
    88use warnings FATAL => qw( all );
    99
    10 use Test::More tests => 6;
     10use Test::More tests => 8;
    1111
    1212use lib qw( ./t ./lib );
    1313
     14use File::Basename qw( basename );
    1415use Nebulous::Server;
    1516use Test::Nebulous;
     
    2122);
    2223
     24use Test::DBUnit dsn => $NEB_DB, username => $NEB_USER, password => $NEB_PASS;
     25
    2326Test::Nebulous->setup;
    2427
    2528{
     29    my $key = "bar";
    2630    my $uri = $neb->create_object("foo");
    2731
    28     $neb->rename_object("foo", "bar");
     32    $neb->rename_object("foo", $key);
    2933
    30     eval {
    31         $neb->find_objects('^foo$');
    32     };
    33     like($@, qr/no keys found/, "old key name");
     34    expected_dataset_ok(
     35        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     36        storage_object  => [so_id => 1, ext_id => $key, ext_id_basename => basename($key), dir_id => 1],
     37    );
     38}
    3439
    35     my $keys = $neb->find_objects('^bar$');
    36     is(scalar @$keys, 1, 'number of keys found');
     40Test::Nebulous->setup;
     41
     42{
     43    my $key = "a/bar";
     44    my $uri = $neb->create_object("foo");
     45
     46    $neb->rename_object("foo", $key);
     47
     48    expected_dataset_ok(
     49        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     50        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     51        storage_object  => [so_id => 1, ext_id => $key, ext_id_basename => basename($key), dir_id => 2],
     52    );
     53}
     54
     55Test::Nebulous->setup;
     56
     57{
     58    my $key = "bar";
     59    my $uri = $neb->create_object("a/foo");
     60
     61    $neb->rename_object("a/foo", $key);
     62
     63    expected_dataset_ok(
     64        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     65        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     66        storage_object  => [so_id => 1, ext_id => $key, ext_id_basename => basename($key), dir_id => 1],
     67    );
    3768}
    3869
     
    73104like($@, qr/2 were expected/, "too many params");
    74105
     106# test attempting to rename a key in such a way to cause the distributed
     107# storage db to change
     108# this must be the last test as we're messing with the $neb object
     109eval {
     110    $neb->config->add_db(
     111        dbindex     => 1,
     112        dsn         => $NEB_DB,
     113        dbuser      => $NEB_USER,
     114        dbpasswd    => $NEB_PASS,
     115    );
     116
     117    $neb->create_object("a/foo");
     118    $neb->rename_object("a/foo", "g/bar");
     119};
     120like($@, qr/rename objects across distributed database boundaries/, "rename between databases");
     121
    75122Test::Nebulous->cleanup;
  • trunk/Nebulous-Server/t/16_server_swap_objects.t

    r20091 r23932  
    88use warnings FATAL => qw( all );
    99
    10 use Test::More tests => 8;
     10use Test::More tests => 13;
    1111
    1212use lib qw( ./t ./lib );
    1313
     14use File::Basename qw( basename );
    1415use Nebulous::Server;
    1516use Test::Nebulous;
     
    2122);
    2223
     24use Test::DBUnit dsn => $NEB_DB, username => $NEB_USER, password => $NEB_PASS;
     25
    2326Test::Nebulous->setup;
    2427
    2528{
    26     my $uri1 = $neb->create_object("foo1");
    27     my $uri2 = $neb->create_object("foo2");
     29    my $key1 = "foo1";
     30    my $key2 = "foo2";
     31    my $uri1 = $neb->create_object($key1);
     32    my $uri2 = $neb->create_object($key2);
    2833
    29     ok($neb->swap_objects("foo1", "foo2"), "swap succeeded");
     34    ok($neb->swap_objects($key1, $key2), "swap succeeded");
    3035
    31     my $new_uri1 = ($neb->find_instances("foo1"))->[0];
    32     my $new_uri2 = ($neb->find_instances("foo2"))->[0];
     36    my $new_uri1 = ($neb->find_instances($key1))->[0];
     37    my $new_uri2 = ($neb->find_instances($key2))->[0];
     38
     39    expected_dataset_ok(
     40        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     41        storage_object  => [so_id => 1, ext_id => $key2, ext_id_basename => basename($key2), dir_id => 1],
     42        storage_object  => [so_id => 2, ext_id => $key1, ext_id_basename => basename($key1), dir_id => 1],
     43    );
     44
     45    is($uri1, $new_uri2, "key1 -> key2");
     46    is($uri2, $new_uri1, "key2 -> key1");
     47}
     48
     49Test::Nebulous->setup;
     50
     51{
     52    my $key1 = "foo1";
     53    my $key2 = "a/foo2";
     54    my $uri1 = $neb->create_object($key1);
     55    my $uri2 = $neb->create_object($key2);
     56
     57    ok($neb->swap_objects($key1, $key2), "swap succeeded");
     58
     59    my $new_uri1 = ($neb->find_instances($key1))->[0];
     60    my $new_uri2 = ($neb->find_instances($key2))->[0];
     61
     62    expected_dataset_ok(
     63        directory       => [dir_id => 1, dirname => '/', parent_id => 1],
     64        directory       => [dir_id => 2, dirname => 'a', parent_id => 1],
     65        storage_object  => [so_id => 1, ext_id => $key2, ext_id_basename => basename($key2), dir_id => 2],
     66        storage_object  => [so_id => 2, ext_id => $key1, ext_id_basename => basename($key1), dir_id => 1],
     67    );
    3368
    3469    is($uri1, $new_uri2, "key1 -> key2");
  • trunk/Nebulous-Server/t/75_parse_neb_key.t

    r19431 r23932  
    1010use Test::More;
    1111
    12 plan tests => 80;
     12plan tests => 99;
    1313
    1414use lib qw( ./t ./lib );
    1515
    16 use Nebulous::Keys qw( parse_neb_key );
     16use Nebulous::Key qw( parse_neb_key );
    1717use Test::Nebulous;
    1818
     
    224224}
    225225
     226# root volume references
     227{
     228    my $key = parse_neb_key('neb:///');
     229
     230    is($key->path, '', 'path');
     231    is($key->volume, undef, 'volume name');
     232    is($key->soft_volume, undef, 'soft volume name');
     233}
     234
     235{
     236    my $key = parse_neb_key('neb:///.');
     237
     238    is($key->path, '', 'path');
     239    is($key->volume, undef, 'volume name');
     240    is($key->soft_volume, undef, 'soft volume name');
     241}
     242
     243{
     244    my $key = parse_neb_key('neb:///..');
     245
     246    is($key->path, '', 'path');
     247    is($key->volume, undef, 'volume name');
     248    is($key->soft_volume, undef, 'soft volume name');
     249}
     250
     251{
     252    my $key = parse_neb_key('/');
     253
     254    is($key->path, '', 'path');
     255    is($key->volume, undef, 'volume name');
     256    is($key->soft_volume, undef, 'soft volume name');
     257}
     258
     259{
     260    my $key = parse_neb_key('.');
     261
     262    is($key->path, '', 'path');
     263    is($key->volume, undef, 'volume name');
     264    is($key->soft_volume, undef, 'soft volume name');
     265}
     266
     267{
     268    my $key = parse_neb_key('..');
     269
     270    is($key->path, '', 'path');
     271    is($key->volume, undef, 'volume name');
     272    is($key->soft_volume, undef, 'soft volume name');
     273}
     274
    226275# key w/ whitespace
    227276eval {
     
    267316};
    268317like( $@, qr/requires a leading slash/, "leading slash" );
     318
     319# URI w/ volume but w/o path
     320eval {
     321    my $key = parse_neb_key('neb://foo');
     322};
     323like( $@, qr/requires a path/, "no path" );
Note: See TracChangeset for help on using the changeset viewer.