Source

p5-moosex-ersatzmethod / t / 03noconflicts.t

use strict;
use warnings;
use Test::More tests => 6;

BEGIN {
	package Local::Test::Role1;
	no thanks;
	use Moose::Role;
	use MooseX::ErsatzMethod;
	ersatz foo => sub { 1 };
};

BEGIN {
	package Local::Test::Role2;
	no thanks;
	use Moose::Role;
	use MooseX::ErsatzMethod;
	ersatz foo => sub { 2 };
}

BEGIN {
	package Local::Test::Role3;
	no thanks;
	use Moose::Role;
	with qw(
		Local::Test::Role1
		Local::Test::Role2
	);
}

BEGIN {
	package Local::Test::Class::WithRole1;
	no thanks;
	use Moose;
	with qw(
		Local::Test::Role1
	);
}

BEGIN {
	package Local::Test::Class::WithRole1AndRole2;
	no thanks;
	use Moose;
	with qw(
		Local::Test::Role1
		Local::Test::Role2
	);
}

BEGIN {
	package Local::Test::Class::WithRole1ThenRole2;
	no thanks;
	use Moose;
	with qw(
		Local::Test::Role1
	);
	with qw(
		Local::Test::Role2
	);
}

BEGIN {
	package Local::Test::Class::WithRole3;
	no thanks;
	use Moose;
	with qw(
		Local::Test::Role3
	);
}

BEGIN {
	package Local::Test::Class::WithRole1AndRole3;
	no thanks;
	use Moose;
	with qw(
		Local::Test::Role1
		Local::Test::Role3
	);
}

BEGIN {
	package Local::Test::Class::WithRole1ThenRole3;
	no thanks;
	use Moose;
	with qw(
		Local::Test::Role1
	);
	with qw(
		Local::Test::Role3
	);
}

ok(
	$_->new->foo == 1,
	$_,
) for qw(
	Local::Test::Class::WithRole1
);

ok(
	$_->new->foo == 1 || $_->new->foo == 2,
	$_,
) for qw(
	Local::Test::Class::WithRole1AndRole2
	Local::Test::Class::WithRole1ThenRole2
	Local::Test::Class::WithRole3
	Local::Test::Class::WithRole1AndRole3
	Local::Test::Class::WithRole1ThenRole3
);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.