#!/usr/bin/perl -w
use strict;
use Test::More;
use SVN::Mirror;
use File::Path;
use File::Spec;
if( eval "use VCP::Dest::svk; 1" ) {
plan tests => 10;
}
else {
plan skip_all => 'VCP::Dest::svk not installed';
}
my $m;
my $repospath = "t/repos";
rmtree ([$repospath]) if -d $repospath;
my $abs_path = File::Spec->rel2abs( $repospath ) ;
my $cvsroot = File::Spec->rel2abs( "t/cvs-test-data" ) ;
$m = SVN::Mirror->new (target_path => 'cvs-trunk',
repospath => $abs_path,
repos_create => 1,
options => ['--branch-only=trunk'],
source => "cvs:$cvsroot:kuso/...");
$m->init;
is_deeply ($m->{options}, ["--branch-only=trunk"]);
$m = SVN::Mirror->new (target_path => 'cvs-trunk',
repospath => $abs_path,
repos_create => 1,
get_source => 1);
$m->init;
is (ref $m, 'SVN::Mirror::VCP');
is ($m->{source}, "cvs:$cvsroot:kuso/...");
is_deeply ($m->{options}, ["--branch-only=trunk"]);
$m->run;
my ($m2, $mpath);
($m2, $mpath) = SVN::Mirror::has_local ($m->{repos}, "$m->{source_uuid}:$m->{source_path}");
ok ($m2);
is ("$m2->{target_path}$mpath", '/cvs-trunk');
($m2, $mpath) = SVN::Mirror::has_local ($m->{repos}, "$m->{source_uuid}:$m->{source_path}/blah");
ok ($m2);
is ("$m2->{target_path}$mpath", '/cvs-trunk/blah');
# check '/cvs-trunk/blah/more'
$m = SVN::Mirror->new (target_path => 'cvs-all', repospath => $abs_path,
source => "cvs:$cvsroot:kuso/...");
$m->init;
$m->run;
ok(1);
# check '/cvs-all/trunk/more'
$m = SVN::Mirror->new (target_path => 'cvs-partial', repospath => $abs_path,
options => ['--branch-only=trunk,somebranch,anotherbranch'],
source => "cvs:$cvsroot:kuso/...");
$m->init;
$m->run;
ok(1);
$m->delete;