Checking in changes prior to tagging of version 2.63.
[MogileFS-Server.git] / t / replpolicy-parsing.t
blob6298fdb43e0d1081edc9f12455a8018b0999e958
1 # -*-perl-*-
3 use strict;
4 use warnings;
5 use Test::More;
6 use FindBin qw($Bin);
7 use Data::Dumper;
9 use MogileFS::Server;
10 use MogileFS::Util qw(error_code);
11 use MogileFS::Test;
13 my $obj;
15 $obj = MogileFS::ReplicationPolicy->new_from_policy_string("MultipleHosts(5)");
16 isa_ok($obj, "MogileFS::ReplicationPolicy::MultipleHosts", "got a multiple hosts policy")
17     or die "can't proceed";
18 is($obj->mindevcount, 5, "got correct devcount");
20 $obj = MogileFS::ReplicationPolicy->new_from_policy_string("MultipleHosts()");
21 isa_ok($obj, "MogileFS::ReplicationPolicy::MultipleHosts", "got a multiple hosts policy")
22     or die "can't proceed";
24 foreach my $str ("Union(MultipleHosts(5), MultipleHosts(2))",
25                  "Union(MultipleHosts(5), MultipleHosts(2), )",
26                  "Union( MultipleHosts(5), MultipleHosts(2) )",
27                  "Union(MultipleHosts(  5),MultipleHosts(2))",
28                  "Union ( MultipleHosts ( 5 ) , MultipleHosts ( 2 ) )",
29                  "Union ( MultipleHosts ( 5 ) ,\n MultipleHosts ( 2 ) )",
30                  "Union ( MultipleHosts ( 5 ) , \n MultipleHosts ( 2 ), )",
31                  )
33     $obj = MogileFS::ReplicationPolicy->new_from_policy_string($str);
34     isa_ok($obj, "MogileFS::ReplicationPolicy::Union") or die "Failed to parse: $str";
35     is(scalar @{$obj->{policies}}, 2, "got 2 sub policies");
36     isa_ok($obj->{policies}[0], "MogileFS::ReplicationPolicy::MultipleHosts");
37     isa_ok($obj->{policies}[1], "MogileFS::ReplicationPolicy::MultipleHosts");
40 done_testing();