DBIx-Migration-Directories

 view release on metacpan or  search on metacpan

t/01_class.t  view on Meta::CPAN

    desired_version_from    => 'DBIx::Migration::Directories',
);

is(
    $mh->desired_version, $DBIx::Migration::Directories::SCHEMA_VERSION, 
    'desired_version_from - Good package'
);

ok(
    $mh = $mh->new(
        dbh         =>  $dbh,
        base        =>  't/tetc',
        schema      =>  'OtherTest',
        dir         =>  't/tetc/TestSchema/_generic',
    ),
    'Initialize new object off of existing object'
);
    
is($mh->desired_version, 4, 'new object initializes properly');

ok(
    $mh = $mh->new(
        dbh                     =>      $dbh,
        dir                     =>      't/tetc/TestSchema',
        desired_version_from    =>      'TestSchema',
    ),
    'Initialize new object with desired_version_from'
);

is($mh->{schema}, 'TestSchema', 'schema name set from desired_version_from');
is($mh->desired_version, $TestSchema::VERSION, 'version number matches');

$mh = $mh->new(
    dbh                     =>      $dbh,
    base                    =>      't/tetc',
    schema                  =>      'TestSchema',
    current_version         =>      3,
);

is($mh->desired_version, 3, 'desired_version - Impossible to upgrade');

eval {
    $mh = $mh->new(
        dbh                     =>      $dbh,
        dir                     =>      't/tetc/TestSchema',
        schema                  =>      'TestSchema',
        current_version         =>      -1,
    );
};

like($@,
    qr/Failed to detect the highest version/,
    'Initialize new object with bad current_version'
);

SKIP: {
  mkdir('bogus-dir', 0000) or die $!;

  if(opendir(my $dir, 'bogus-dir')) {
    closedir $dir;
    chmod(0700, 'bogus-dir');
    rmdir('bogus-dir');

    skip "root can write to everything", 1;
  }

  eval {
      $mh = $mh->new(
          dbh                     =>      $dbh,
          dir                     =>      'bogus-dir',
          schema                  =>      'TestSchema',
          current_version         =>      -1,
      );
  };

  like($@,
      qr/^opendir\("bogus-dir"\) failed:/,
      'Initialize with directory we dont have access to'
  );

  chmod(0700, 'bogus-dir');
  rmdir('bogus-dir');
}



( run in 1.065 second using v1.01-cache-2.11-cpan-98e64b0badf )