WWW-Suffit-AuthDB

 view release on metacpan or  search on metacpan

t/03-model.t  view on Meta::CPAN

        #note(explain(\@data));
    }

    # Delete the `foo` key from meta
    {
        ok($model->meta_del("foo"), "Delete the `foo` key from meta") or diag $model->error;
    }

};

# Stat CRUD
subtest 'Stat CRUD' => sub {

    # Add stat info
    {
        ok($model->stat_set(
            address     => '127.0.0.1',
            username    => 'bob',
            dismiss     => 1,
            updated     => time,
        ), "Add stat info") or diag($model->error);
    }

    # Set stat info
    {
        ok($model->stat_set(
            address     => '127.0.0.1',
            username    => 'bob',
            dismiss     => 2,
            updated     => time,
        ), "Set stat info") or diag($model->error);
    }

    # Get stat info
    {
        my %data = $model->stat_get('127.0.0.1', 'bob');
        ok(!$model->error, "Get stat info") or diag $model->error;
        is($data{dismiss}, "2", "Get the `dismiss` attribute from `stat` data");
        #note(explain(\%data));
    }

};

# User CRUD
subtest 'User CRUD' => sub {

    # Add new user
    {
        ok($model->user_add(
            username    => "admin",
            name        => "Administrator",
            email       => 'root@localhost',
            password    => "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
            algorithm   => "SHA256",
            role        => "System administrator",
            flags       => 0,
            created     => time(),
            not_before  => time(),
            not_after   => undef,
            public_key  => "",
            private_key => "",
            attributes  => qq/{"disabled": 0}/,
            comment     => "This user added by default",
        ), "Add new user") or diag $model->error;
    }

    # Get user's data
    {
        my %data = $model->user_get("admin");
        ok(!$model->error, "Get user's data") or diag $model->error;
        #note(explain(\%data));
    }

    # Set user's data
    {
        ok($model->user_set(
            username    => "admin",
            name        => "Administrator",
            email       => 'root@localhost',
            password    => "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
            algorithm   => "SHA256",
            role        => "System administrator",
            flags       => 0,
            not_before  => time(),
            not_after   => undef,
            public_key  => "",
            private_key => "",
            attributes  => qq/{"disabled": 0}/,
            comment     => "This user was modified",
        ), "Set user's data") or diag $model->error;
    }

    # Get all records
    {
        my @all = $model->user_getall();
        ok(scalar(@all), "Get all users") or diag $model->error;
        #note(explain(\@all));
    }
};

# Group CRUD
subtest 'Group CRUD' => sub {

    # Add new groop
    {
        ok($model->group_add(
            groupname   => "wheel",
            description => "This group added by default",
        ), "Add new group") or diag $model->error;
    }

    # Get group's data
    {
        my %data = $model->group_get("wheel");
        ok(!$model->error, "Get group's data") or diag $model->error;
        #note(explain(\%data));
    }

    # Set group's data
    {
        ok($model->group_set(
            groupname   => "wheel",
            description => "This group was modified",
        ), "Set group's data") or diag $model->error;
    }

    # Get all records
    {
        my @all = $model->group_getall();
        ok(scalar(@all), "Get all groups") or diag $model->error;
        #note(explain(\@all));
    }

    # Add the user to the group
    {
        ok($model->grpusr_add(
            groupname   => "wheel",
            username    => "root",
        ), "Add the user to the group") or diag($model->error);
    }

    # Get members of group
    {
        my @data = $model->grpusr_get( groupname => "wheel" );
        ok(!$model->error, "Get members of group") or diag $model->error;
        #note(explain(\@data));
    }



( run in 2.609 seconds using v1.01-cache-2.11-cpan-437f7b0c052 )