Context-Singleton
view release on metacpan or search on metacpan
t/Context-Singleton-Frame.t view on Meta::CPAN
$object->deduce ('constant');
object => $object,
with_rule => 'constant',
with_value => 'foo',
throws => 'Context::Singleton::Exception::Deduced',
};
test_method_proclaim "should throw when rule is already deduce()-ed as dependency" => do {
my $object = build_frame;
$object->deduce ('cascaded');
object => $object,
with_rule => 'constant',
with_value => 'foo',
throws => 'Context::Singleton::Exception::Deduced',
};
test_method_proclaim "should proclaim() rule with known builder after its deduce() failed" => do {
my $object = build_frame;
$object->try_deduce ('with_deps');
t/Context-Singleton-Frame.t view on Meta::CPAN
};
should_be_deduced 'after deduce() should be deduced' => do {
my $object = build_frame;
$object->deduce ('constant');
object => $object,
with_rule => 'constant',
};
should_be_deduced 'after cascaded deduce() should be deduced' => do {
my $object = build_frame;
$object->deduce ('cascaded');
object => $object,
with_rule => 'constant',
};
should_not_be_deduced 'after unsuccessful cascaded deduce() should not be deduced' => do {
my $object = build_frame;
$object->try_deduce ('with_multi_deps');
object => $object,
with_rule => 'constant',
};
return;
};
t/Context-Singleton-Frame.t view on Meta::CPAN
};
should_be_deducible 'after deduce() should be deducible' => do {
my $object = build_frame;
$object->deduce ('constant');
object => $object,
with_rule => 'constant',
};
should_be_deducible 'after cascaded deduce() should be deducible' => do {
my $object = build_frame;
$object->deduce ('cascaded');
object => $object,
with_rule => 'constant',
};
return;
};
describe_method 'deduce' => [qw[ rule ]] => as {
shared->frame_class = 'Sample::Context::Singleton::Frame::__::Basic';
t/lib/Sample/Context/Singleton/Frame.pm view on Meta::CPAN
as => sub { join '/', @_ },
default => { foo => 'value', bar => 42 },
dep => [ 'foo', 'bar' ],
));
$self->db->contrive (with_deps => (
as => sub { join '-', @_ },
dep => [ 'foo', 'bar' ],
));
$self->db->contrive (cascaded => (
as => sub { join ':', 'cascaded', @_ },
default => { param => 'param' },
dep => [ 'param', 'with_deps' ],
));
$self->db->trigger (with_trigger => sub {
my $copy = 'copy_trigger';
$self->proclaim ($copy, $_[0]) unless $self->is_deduced ($copy);
});
$self->proclaim ('Calc', 'Sample::Context::Singleton::Frame::003::Calc');
t/lib/Sample/Context/Singleton/Frame.pm view on Meta::CPAN
package Sample::Context::Singleton::Frame::__::Basic;
our @ISA = 'Sample::Context::Singleton::Frame::001::Unique::DB';
sub contrive_builders {
my ($self) = @_;
$self->contrive (constant => (
value => 'value-42',
));
$self->contrive (cascaded => (
dep => [ 'constant' ],
as => sub { "cascaded:$_[0]" },
));
$self->contrive (with_deps => (
dep => [ 'unknown' ],
as => sub { "with_deps:$_[0]" },
));
$self->contrive (with_multi_deps => (
dep => [ 'unknown', 'constant' ],
as => sub { "with_deps:$_[0]:$_[1]" },
( run in 0.547 second using v1.01-cache-2.11-cpan-49f99fa48dc )