Commit | Line | Data |
bc33a9b1 |
1 | use FindBin qw/$Bin/; |
2 | BEGIN { |
3 | my $env = "$FindBin::Bin/../script/env"; |
4 | if (-r $env) { |
5 | do $env or die $@; |
6 | } |
7 | } |
cc57f1d2 |
8 | use strict; |
9 | use warnings; |
10 | use Test::More qw/no_plan/; |
11 | use Test::Exception; |
12 | use Data::Dumper; |
13 | |
14 | BEGIN { use_ok 'Gitalist::Git::Tag' } |
15 | |
84f30d65 |
16 | my $ref_sha1 = '3f7567c7bdf7e7ebf410926493b92d398333116e'; |
cc57f1d2 |
17 | # Create an instance from for-each-ref output |
84f30d65 |
18 | my $revline="36c6c6708b8360d7023e8a1649c45bcf9b3bd818 commit refs/tags/0.01 $ref_sha1 add dir1/file2\0Florian Ragwitz <rafl\@debian.org> 1173210275 +0100"; |
19 | |
cc57f1d2 |
20 | my $instance = Gitalist::Git::Tag->new($revline); |
21 | isa_ok($instance, 'Gitalist::Git::Tag'); |
22 | |
84f30d65 |
23 | ok($instance->$_, $_) for $instance->meta->get_attribute_list; |
24 | |
cc57f1d2 |
25 | # Create an instance, passing last_change as a DateTime |
26 | use DateTime; |
27 | my $timespec = [1173210275, '+0100']; |
28 | my $dt = DateTime->from_epoch( |
29 | epoch => @$timespec[0], |
30 | time_zone => @$timespec[1], |
31 | ); |
32 | my $head = Gitalist::Git::Tag->new( |
33 | sha1 => '36c6c6708b8360d7023e8a1649c45bcf9b3bd818', |
34 | name => '0.01', |
35 | type => 'commit', |
36 | committer => 'Florian Ragwitz <rafl@debian.org>', |
37 | last_change => $dt, |
38 | ); |
39 | isa_ok($head, 'Gitalist::Git::Tag'); |
84f30d65 |
40 | |
41 | my $oldtag = "d6602ec5194c87b0fc87103ca4d67251c76f233a tag refs/tags/v0.99 a3eb250f996bf5e12376ec88622c4ccaabf20ea8 commit Test-release for wider distribution."; |
42 | |
43 | ok(!Gitalist::Git::Tag::is_valid_tag($oldtag), 'Gitalist::Git::Tag::is_valid_tag ancient tag'); |
44 | ok(Gitalist::Git::Tag::is_valid_tag($revline), 'Gitalist::Git::Tag::is_valid_tag regular tag'); |
45 | |
46 | # Tags don't necessarily have a refname, check we deal with its absence. |
47 | $revline =~ s/$ref_sha1//; |
48 | ok(Gitalist::Git::Tag::is_valid_tag($revline), 'Gitalist::Git::Tag::is_valid_tag regular tag sans ref sha1'); |