Skip to content

Commit

Permalink
Fix response version comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
oklahomer committed Apr 5, 2018
1 parent 24f6e13 commit 48e8a83
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 7 deletions.
18 changes: 12 additions & 6 deletions lib/Facebook/OpenGraph/Response.pm
Expand Up @@ -40,20 +40,26 @@ sub is_api_version_eq_or_later_than {
my ($self, $comparing_version) = @_;
croak 'comparing version is not given.' unless $comparing_version;

(my $decimal_comparing_version = $comparing_version) =~ s/\A v //x;
(my $decimal_response_version = $self->api_version) =~ s/\A v //x;
(my $comp_major, my $comp_minor)
= $comparing_version =~ m/ (\d+) \. (\d+ )/x;

return ($decimal_comparing_version + 0) <= ($decimal_response_version + 0);
(my $response_major, my $response_minor)
= $self->api_version =~ m/ (\d+) \. (\d+ )/x;

return $comp_major <= $response_major && $comp_minor <= $response_minor;
}

sub is_api_version_eq_or_older_than {
my ($self, $comparing_version) = @_;
croak 'comparing version is not given.' unless $comparing_version;

(my $decimal_comparing_version = $comparing_version) =~ s/\A v //x;
(my $decimal_response_version = $self->api_version) =~ s/\A v //x;
(my $comp_major, my $comp_minor)
= $comparing_version =~ m/ (\d+) \. (\d+ )/x;

(my $response_major, my $response_minor)
= $self->api_version =~ m/ (\d+) \. (\d+ )/x;

return ($decimal_comparing_version + 0) >= ($decimal_response_version + 0);
return $response_major <= $comp_major && $response_minor <= $comp_minor;
}

sub header {
Expand Down
12 changes: 11 additions & 1 deletion t/004_response/01_basic.t
Expand Up @@ -86,8 +86,13 @@ subtest 'is_api_version_eq_or_older_than' => sub {
content => $content,
});

ok(!$res->is_api_version_eq_or_older_than('v1.3'));
ok(!$res->is_api_version_eq_or_older_than('v1.4'));
ok($res->is_api_version_eq_or_older_than('v2.3'));
ok($res->is_api_version_eq_or_older_than('v2.4'));
ok($res->is_api_version_eq_or_older_than('v2.10'));
ok($res->is_api_version_eq_or_older_than('v3.3'));
ok($res->is_api_version_eq_or_older_than('v3.4'));
};

subtest 'is_api_version_eq_or_later_than' => sub {
Expand All @@ -112,8 +117,13 @@ subtest 'is_api_version_eq_or_later_than' => sub {
content => $content,
});

ok($res->is_api_version_eq_or_later_than('v2.3'));
ok($res->is_api_version_eq_or_later_than('v1.2'));
ok($res->is_api_version_eq_or_later_than('v1.3'));
ok($res->is_api_version_eq_or_later_than('v2.2'));
ok($res->is_api_version_eq_or_later_than('v2.3'));
ok(!$res->is_api_version_eq_or_later_than('v2.10'));
ok(!$res->is_api_version_eq_or_later_than('v3.2'));
ok(!$res->is_api_version_eq_or_later_than('v3.3'));
};

done_testing;

0 comments on commit 48e8a83

Please sign in to comment.