GenOOx-Data-File-SAMbwa

 view release on metacpan or  search on metacpan

t/lib/MTCM/Testable.pm  view on Meta::CPAN

package MTCM::Testable;


#######################################################################
#######################   Load External modules   #####################
#######################################################################
use Modern::Perl;
use autodie;
use Moose::Role;
use namespace::autoclean;


#######################################################################
#################   Required methods and attributes   #################
#######################################################################
requires qw(_init_testable_objects _init_data_for_testable_objects);


#######################################################################
#########################   Consumed Roles   ##########################
#######################################################################
with 'MTCM::AutoUse';


#######################################################################
#######################   Interface attributes   ######################
#######################################################################
has 'testable_objects' => (
	traits    => ['Array'],
	is        => 'ro',
	isa       => 'ArrayRef[Any]',
	clearer   => '_clear_testable_objects',
	builder   => '_init_testable_objects',
	handles   => {
		all_testable_objects    => 'elements',
		add_testable_object     => 'push',
		map_testable_objects    => 'map',
		get_testable_object     => 'get',
		count_testable_objects  => 'count',
		has_testable_objects    => 'count',
		has_no_testable_objects => 'is_empty',
	},
	lazy   => 1
);

has 'data_for_testable_objects' => (
	traits    => ['Array'],
	is        => 'ro',
	isa       => 'ArrayRef[HashRef]',
	builder   => '_init_data_for_testable_objects',
	handles   => {
		all_data_for_testable_objects    => 'elements',
		add_data_for_testable_object     => 'push',
		map_data_for_testable_objects    => 'map',
		get_data_for_testable_object     => 'get',
		count_data_for_testable_objects  => 'count',
		has_data_for_testable_objects    => 'count',
		has_no_data_for_testable_objects => 'is_empty',
	},
	lazy   => 1
);

1;



( run in 1.770 second using v1.01-cache-2.11-cpan-0d23b851a93 )