2 use warnings FATAL => 'all';
4 use Test::Requires 'MooseX::SimpleConfig'; # skip all if not reuqired
5 use Test::More tests => 11;
7 use Test::Deep '!blessed';
8 use Test::NoWarnings 1.04 ':early';
9 use Scalar::Util 'blessed';
15 # nothing special going on here
19 with 'MooseX::SimpleConfig';
20 sub get_config_from_file
22 my ($class, $file) = @_;
23 $loaded_file{$file}++;
30 my $obj = Generic->new_with_config;
31 is($obj->configfile, undef, 'no configfile set');
32 cmp_deeply(\%loaded_file, {}, 'no files loaded');
39 # this is a classic legacy usecase from old documentation that we must
42 package OverriddenDefault;
45 has '+configfile' => (
46 default => 'OverriddenDefault file',
52 my $obj = OverriddenDefault->new_with_config;
53 is($obj->configfile, blessed($obj) . ' file', 'configfile set via overridden default');
54 is($loaded_file{blessed($obj) . ' file'}, 1, 'correct file was loaded from');
61 # "reader" method is overridden to provide for configfile default
63 package OverriddenMethod;
66 around configfile => sub {
67 my $class = blessed($_[1]) || $_[1];
68 $default_sub{$class}++;
75 my $obj = OverriddenMethod->new_with_config;
76 is($obj->configfile, blessed($obj) . ' file', 'configfile set via overridden sub');
77 ok($default_sub{blessed($obj)}, 'default sub was called');
78 is($loaded_file{blessed($obj) . ' file'}, 1, 'correct file was loaded from');