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 )