-
Notifications
You must be signed in to change notification settings - Fork 12
/
HasConfig.t
42 lines (30 loc) · 884 Bytes
/
HasConfig.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env perl
use lib 't/lib';
use Gitpan::perl5i;
use Gitpan::Test;
note "Setup test classes"; {
package Some::Class1;
use Gitpan::OO;
with 'Gitpan::Role::HasConfig';
package Some::Class2;
use Gitpan::OO;
with 'Gitpan::Role::HasConfig';
}
note "Config is shared"; {
my $obj1 = Some::Class1->new;
isa_ok $obj1->config, "Gitpan::Config";
my $obj2 = Some::Class2->new;
isa_ok $obj2->config, "Gitpan::Config";
is $obj1->config->mo->id, $obj2->config->mo->id;
}
note "As class method"; {
isa_ok( Some::Class1->config, "Gitpan::Config" );
}
subtest "config changes with Gitpan::Config->default" => sub {
my $obj = Some::Class1->new;
my $config = $obj->config;
my $new_config = Gitpan::Config->new;
Gitpan::Config->set_default($new_config);
is $obj->config->mo->id, $new_config->mo->id;
};
done_testing;