#!/usr/local/bin/perl -w

=head1 NAME

00rev.t - testing of VCP::Rev services

=cut

use strict ;

use Carp ;
use Test ;
use VCP::Rev ;

## TODO: Add lots of tests to 00rev.t

my $r ;

my @tests = (
sub { ok join( ",", VCP::Rev->split_id( "1"       ) ), "1"       },
sub { ok join( ",", VCP::Rev->split_id( "1a"      ) ), "1,a"     },
sub { ok join( ",", VCP::Rev->split_id( "1.2"     ) ), "1,,2"    },
sub { ok join( ",", VCP::Rev->split_id( "1a.2"    ) ), "1,a,2"   },
sub { ok join( ",", VCP::Rev->split_id( "1a.2b"   ) ), "1,a,2,b" },

sub { ok( VCP::Rev->cmp_id( [qw( 1 a 2 )], [qw( 1 b 1 )] ) < 0 ) },
sub { ok( VCP::Rev->cmp_id( "1a2", "1b1" ) < 0 ) },
sub { ok( VCP::Rev->cmp_id( [qw( 1 a 2 )], [qw( 1 a 1 )] ) > 0 ) },
sub { ok( VCP::Rev->cmp_id( [qw( 1 b 2 )], [qw( 1 a 1 )] ) > 0 ) },
sub { ok( VCP::Rev->cmp_id( [qw( 10 )],    [qw( 1 )] ) > 0 ) },

sub { $r = VCP::Rev->new() ; ok( ref $r, "VCP::Rev" ) },

sub { ok( ! $r->labels, ! 0 ) },

sub {
   $r->add_label( "l1" ) ;
   ok( join( ",", $r->labels ), "l1" ) ;
},

sub {
   $r->add_label( "l2", "l3" ) ;
   ok( join( ",", $r->labels ), "l1,l2,l3" ) ;
},

sub {
   $r->add_label( "l2", "l3" ) ;
   ok( join( ",", $r->labels ), "l1,l2,l3" ) ;
},

sub {
   ok $r->remove_label( "l1", "l3" ) ;
},

sub {
   ok( join( ",", $r->labels ), "l2" ) ;
},

sub {
   $r->labels( "l4", "l5" ) ;
   ok( join( ",", $r->labels ), "l4,l5" ) ;
},

sub {
   $r->name( "foo" );
   $r->rev_id( "1" );
   ok $r->id, "foo#1";
},

sub {
   my $comment = "hi, ho the gang's all here";
   $r->comment( $comment );
   ok $r->comment, $comment;
},

# test time, sort_time accessors
sub {
   $r->time(10);
   ok $r->time, 10;
},

sub {
   $r->sort_time(15);
   ok $r->sort_time, 15;
},

) ;

plan tests => scalar( @tests ) ;

$_->() for @tests ;
