Module-Generate

 view release on metacpan or  search on metacpan

t/02-cover.t  view on Meta::CPAN

	ok($class->use('Foo'));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{USE}, ['Foo']);	
	ok($class->use('Bar'));	
	%class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{USE}, ['Foo', 'Bar']);	
};

subtest 'base' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->base('Foo'));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{BASE}, ['Foo']);	
	ok($class->base('Bar'));
	%class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{BASE}, ['Foo', 'Bar']);	
};

subtest 'parent' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->parent('Foo'));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{PARENT}, ['Foo']);	
	ok($class->parent('Bar'));
	is_deeply($class{Test}->{PARENT}, ['Foo', 'Bar']);	
};

subtest 'require' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->require('Foo'));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{REQUIRE}, ['Foo']);	
	ok($class->require('Bar'));	
	%class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{REQUIRE}, ['Foo', 'Bar']);	
};

subtest 'our' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->our('$foo'));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{GLOBAL}, ['$foo']);	
	ok($class->our('$bar'));
	%class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{GLOBAL}, ['$foo', '$bar']);	
};

subtest 'begin' => sub {
	ok(my $class = Module::Generate->class('Test'));
	my $ref = sub { 1; };
	ok($class->begin($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{BEGIN}, $ref);	
};

subtest 'unitcheck' => sub {
	ok(my $class = Module::Generate->class('Test'));
	my $ref = sub { 1; };
	ok($class->unitcheck($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{UNITCHECK}, $ref);	
};

subtest 'check' => sub {
	ok(my $class = Module::Generate->class('Test'));
	my $ref = sub { 1; };
	ok($class->check($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{CHECK}, $ref);	
};

subtest 'init' => sub {
	ok(my $class = Module::Generate->class('Test'));
	my $ref = sub { 1; };
	ok($class->init($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{INIT}, $ref);	
};

subtest 'end' => sub {
	ok(my $class = Module::Generate->class('Test'));
	my $ref = sub { 1; };
	ok($class->end($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{END}, $ref);	
};

subtest 'new' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->new);
	my $ref = sub { 1; };
	ok($class->new($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{SUBS}->{new}->{CODE}, $ref);	
};

subtest 'accessor' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->accessor('foo'));
	my $ref = sub { 1; };
	ok($class->accessor('foo', $ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{SUBS}->{foo}->{CODE}, $ref);	
};

subtest 'macro' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->macro('test', '{ 1 }'));
	ok($class->macro('test', sub { 1 }));
};

subtest 'sub' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->sub('bar'));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{SUBS}->{bar}, {INDEX => 5, TEST => [['can_ok', '$obj', "'bar'"]]});
};

subtest 'code' => sub {
	ok(my $class = Module::Generate->class('Test'));
	ok($class->code('{ 1 }'));



( run in 0.659 second using v1.01-cache-2.11-cpan-d7f47b0818f )