Schema-RDBMS-AUS
view release on metacpan or search on metacpan
t/30_aus_membership.t view on Meta::CPAN
my $self = shift;
throws_ok
{ $self->{_groups}->[2]->add_to_group($self->{_groups}->[0]) }
qr/circular membership/i,
"Can't create a circular membership"
},
sub {
my $self = shift;
ok(
$self->{_groups}->[0]->add_to_group($self->{_groups}->[2]),
"Add activators directly to stoners"
);
},
sub {
my $self = shift;
is_deeply(
$self->{_groups}->[0]->{_membership},
{
$self->{_groups}->[2]->{id} => 1,
$self->{_groups}->[1]->{id} => 1,
$self->{_groups}->[0]->{id} => 0
},
"Activators are now stoners directly"
);
},
sub {
my $self = shift;
ok(
$self->{_groups}->[0]->remove_from_group($self->{_groups}->[1]),
"Remove activators from japhs"
);
},
sub {
my $self = shift;
is_deeply(
$self->{_groups}->[0]->{_membership},
{
$self->{_groups}->[2]->{id} => 1,
$self->{_groups}->[0]->{id} => 0
},
"Activators are not japhs anymore"
);
},
sub {
my $self = shift;
ok(
$self->{_groups}->[2]->add_to_group('hippys'),
"stoners are hippys"
);
},
sub {
my $self = shift;
$self->{_groups}->[0]->refresh;
is_deeply(
$self->{_groups}->[0]->{_membership},
{
$self->{_groups}->[2]->{id} => 1,
$self->{_groups}->[0]->{id} => 0,
$self->{_groups}->[3]->{id} => 2,
},
"hippydom cascades"
);
},
sub {
my $self = shift;
ok(
$self->{_groups}->[0]->add_to_group($self->{_groups}->[1]),
"reconnect groups"
);
},
sub {
my $self = shift;
$self->{_groups}->[0] = $self->{_groups}->[0]->load;
is_deeply(
$self->{_groups}->[0]->{_membership},
{
$self->{_groups}->[0]->{id} => 0,
$self->{_groups}->[1]->{id} => 1,
$self->{_groups}->[2]->{id} => 1,
$self->{_groups}->[3]->{id} => 2,
},
"Everything is connected"
);
},
sub {
my $self = shift;
$self->{_groups}->[0]->remove_from_group($self->{_groups}->[2]);
is_deeply(
$self->{_groups}->[0]->{_membership},
{
$self->{_groups}->[0]->{id} => 0,
$self->{_groups}->[1]->{id} => 1,
$self->{_groups}->[2]->{id} => 2,
$self->{_groups}->[3]->{id} => 3,
},
"Connected like a ladder"
);
},
sub {
my $self = shift;
$self->{_groups}->[1]->remove_from_group($self->{_groups}->[2]);
$self->{_groups}->[0] = $self->{_groups}->[0]->load;
is_deeply(
$self->{_groups}->[0]->{_membership},
{
$self->{_groups}->[0]->{id} => 0,
$self->{_groups}->[1]->{id} => 1,
},
"Chop off the middle peg"
);
},
]
);
plan tests => $plan->num_tests;
$plan->run_tests;
( run in 1.006 second using v1.01-cache-2.11-cpan-524268b4103 )