roles_mongo_mapper 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :admin_flag
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :admin_flag, :default
9
+ valid_roles_are :admin, :guest
10
+
11
+ key :name, String
12
+ end
13
+
14
+ describe "Roles for MongoMapper" do
15
+ after :each do
16
+ Database.teardown
17
+ end
18
+
19
+ before :each do
20
+ @user = User.create(:name => 'Kristian')
21
+ @user.roles = :guest
22
+ @user.save
23
+
24
+ @admin_user = User.create(:name => 'Admin user')
25
+ @admin_user.roles = :admin
26
+ @admin_user.save
27
+ end
28
+
29
+ describe "Admin flag strategy " do
30
+
31
+ describe '#in_role' do
32
+ it "should return first user maching role" do
33
+ puts "Guest: #{User.where(:name => "Kristian").first}"
34
+
35
+ User.in_role(:guest).first.name.should == 'Kristian'
36
+ User.in_role(:admin).first.name.should == 'Admin user'
37
+ end
38
+ end
39
+
40
+ describe 'roles API' do
41
+ it "should have admin user role to :admin" do
42
+ @admin_user.role.should == :admin
43
+ @admin_user.roles.should == [:admin]
44
+ @admin_user.admin?.should be_true
45
+
46
+ @admin_user.class.valid_roles.should == [:admin, :guest]
47
+
48
+ @admin_user.has_role?(:guest).should be_false
49
+
50
+ @admin_user.has_role?(:admin).should be_true
51
+ @admin_user.is?(:admin).should be_true
52
+ @admin_user.has_roles?(:admin).should be_true
53
+ @admin_user.has?(:admin).should be_true
54
+ end
55
+
56
+ it "should have user role to :guest" do
57
+ @user.roles.should == [:guest]
58
+ @user.admin?.should be_false
59
+
60
+ @user.has_role?(:guest).should be_true
61
+ @user.has_role?(:admin).should be_false
62
+ @user.is?(:admin).should be_false
63
+
64
+ @user.has_roles?(:guest).should be_true
65
+ @user.has?(:admin).should be_false
66
+ end
67
+
68
+ it "should set user role to :admin using =" do
69
+ @user.roles = :admin
70
+ @user.role.should == :admin
71
+ @user.has_role?(:admin).should be_true
72
+ end
73
+ end
74
+ end
75
+ end
76
+
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :many_roles
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :many_roles, :default
9
+ role_class :role
10
+
11
+ key :name, String
12
+ end
13
+
14
+ describe "Roles for MongoMapper" do
15
+ context "default setup" do
16
+
17
+ before do
18
+ User.valid_roles_are :admin, :guest
19
+
20
+ @user = User.create(:name => 'Kristian')
21
+ @user.add_roles :guest
22
+ @user.save
23
+
24
+ @admin_user = User.create(:name => 'Admin user')
25
+ @admin_user.roles = :admin
26
+ @admin_user.save
27
+ end
28
+
29
+ describe '#in_role' do
30
+ it "should return first user matching role" do
31
+ User.in_role(:guest).first.name.should == 'Kristian'
32
+ User.in_role(:admin).first.name.should == 'Admin user'
33
+ end
34
+ end
35
+
36
+ describe "Role API" do
37
+ it "should have admin user role to :admin" do
38
+ @admin_user.roles_list.first.should == :admin
39
+ @admin_user.admin?.should be_true
40
+
41
+ @admin_user.has_role?(:guest).should be_false
42
+
43
+ @admin_user.has_role?(:admin).should be_true
44
+ @admin_user.is?(:admin).should be_true
45
+ @admin_user.has_roles?(:admin).should be_true
46
+ @admin_user.has?(:admin).should be_true
47
+ end
48
+
49
+ it "should have user role to :guest" do
50
+ @user.roles_list.first.should == :guest
51
+ @user.admin?.should be_false
52
+
53
+ @user.has_role?(:guest).should be_true
54
+ @user.has_role?(:admin).should be_false
55
+ @user.is?(:admin).should be_false
56
+
57
+ @user.has_roles?(:admin).should be_false
58
+ @user.has?(:admin).should be_false
59
+ end
60
+
61
+ it "should set user role to :admin using roles=" do
62
+ @user.roles = :admin
63
+ @user.roles_list.first.should == :admin
64
+ @user.has_role?(:admin).should be_true
65
+ end
66
+ end
67
+ end
68
+ end
69
+
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :one_role
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :one_role, :default
9
+ role_class :role
10
+
11
+ key :name, String
12
+ end
13
+
14
+ describe "Roles for MongoMapper" do
15
+ before :each do
16
+ User.valid_roles_are :admin, :guest
17
+
18
+ @user = User.create(:name => 'Kristian')
19
+ @user.roles = :guest
20
+ @user.save
21
+
22
+ @admin_user = User.create(:name => 'Admin user')
23
+ @admin_user.roles = :admin
24
+ @admin_user.save
25
+ end
26
+
27
+ describe '#in_role' do
28
+ it "should return first user matching role" do
29
+ User.in_role(:guest).first.name.should == 'Kristian'
30
+ User.in_role(:admin).first.name.should == 'Admin user'
31
+ end
32
+ end
33
+
34
+ describe "Role API" do
35
+ it "should have admin user role to :admin" do
36
+ @admin_user.roles_list.first.should == :admin
37
+ @admin_user.admin?.should be_true
38
+
39
+ @admin_user.has_role?(:guest).should be_false
40
+
41
+ @admin_user.has_role?(:admin).should be_true
42
+ @admin_user.is?(:admin).should be_true
43
+ @admin_user.has_roles?(:admin).should be_true
44
+ @admin_user.has?(:admin).should be_true
45
+ end
46
+
47
+ it "should have user role to :guest" do
48
+ @user.roles_list.first.should == :guest
49
+ @user.admin?.should be_false
50
+
51
+ @user.has_role?(:guest).should be_true
52
+ @user.has_role?(:admin).should be_false
53
+ @user.is?(:admin).should be_false
54
+
55
+ @user.has_roles?(:admin).should be_false
56
+ @user.has?(:admin).should be_false
57
+ end
58
+
59
+ it "should set user role to :admin using roles=" do
60
+ @user.roles = :admin
61
+ @user.roles_list.first.should == :admin
62
+ @user.has_role?(:admin).should be_true
63
+ end
64
+ end
65
+ end
66
+
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :role_string
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :role_string, :default
9
+
10
+ valid_roles_are :admin, :guest
11
+
12
+ key :name, String
13
+ end
14
+
15
+ describe "Roles for MongoMapper" do
16
+ context "default setup" do
17
+
18
+ before do
19
+ @user = User.create(:name => 'Kristian')
20
+ @user.role = :guest
21
+ @user.save
22
+
23
+ @admin_user = User.create(:name => 'Admin user')
24
+ @admin_user.roles = :admin
25
+ @admin_user.save
26
+ end
27
+
28
+ describe '#in_role' do
29
+ it "should return first user matching role" do
30
+ User.in_role(:guest).first.name.should == 'Kristian'
31
+ User.in_role(:admin).first.name.should == 'Admin user'
32
+ end
33
+ end
34
+
35
+ describe "Role API" do
36
+ it "should have admin user role to :admin" do
37
+ @admin_user.roles_list.first.should == :admin
38
+ @admin_user.admin?.should be_true
39
+
40
+ @admin_user.has_role?(:guest).should be_false
41
+
42
+ @admin_user.has_role?(:admin).should be_true
43
+ @admin_user.is?(:admin).should be_true
44
+ @admin_user.has_roles?(:admin).should be_true
45
+ @admin_user.has?(:admin).should be_true
46
+ end
47
+
48
+ it "should have user role to :guest" do
49
+ @user.roles_list.first.should == :guest
50
+ @user.admin?.should be_false
51
+
52
+ @user.has_role?(:guest).should be_true
53
+ @user.has_role?(:admin).should be_false
54
+ @user.is?(:admin).should be_false
55
+
56
+ @user.has_roles?(:admin).should be_false
57
+ @user.has?(:admin).should be_false
58
+ end
59
+
60
+ it "should set user role to :admin using roles=" do
61
+ @user.roles = :admin
62
+ @user.roles_list.first.should == :admin
63
+ @user.has_role?(:admin).should be_true
64
+ end
65
+ end
66
+ end
67
+ end
68
+
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :role_strings
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :role_strings, :default
9
+
10
+ valid_roles_are :admin, :guest
11
+
12
+ key :name, String
13
+ end
14
+
15
+ describe "Roles for MongoMapper" do
16
+
17
+ context "default setup" do
18
+
19
+ before do
20
+ @user = User.create(:name => 'Kristian')
21
+ @user.role = :guest
22
+ @user.save
23
+
24
+ @admin_user = User.create(:name => 'Admin user')
25
+ @admin_user.roles = :admin
26
+ @admin_user.save
27
+ end
28
+
29
+ describe '#in_role' do
30
+ it "should return first user matching role" do
31
+ User.in_role(:guest).first.name.should == 'Kristian'
32
+ User.in_role(:admin).first.name.should == 'Admin user'
33
+ end
34
+ end
35
+
36
+ describe "Role API" do
37
+ it "should have admin user role to :admin" do
38
+ @admin_user.roles_list.first.should == :admin
39
+ @admin_user.admin?.should be_true
40
+
41
+ @admin_user.has_role?(:guest).should be_false
42
+
43
+ @admin_user.has_role?(:admin).should be_true
44
+ @admin_user.is?(:admin).should be_true
45
+ @admin_user.has_roles?(:admin).should be_true
46
+ @admin_user.has?(:admin).should be_true
47
+ end
48
+
49
+ it "should have user role to :guest" do
50
+ @user.roles_list.first.should == :guest
51
+ @user.admin?.should be_false
52
+
53
+ @user.has_role?(:guest).should be_true
54
+ @user.has_role?(:admin).should be_false
55
+ @user.is?(:admin).should be_false
56
+
57
+ @user.has_roles?(:admin).should be_false
58
+ @user.has?(:admin).should be_false
59
+ end
60
+
61
+ it "should set user role to :admin using roles=" do
62
+ @user.roles = :admin
63
+ @user.roles_list.first.should == :admin
64
+ @user.has_role?(:admin).should be_true
65
+ end
66
+ end
67
+ end
68
+ end
69
+
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :roles_mask
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :roles_mask, :default
9
+
10
+ valid_roles_are :admin, :guest
11
+
12
+ key :name, String
13
+ end
14
+
15
+ describe "Roles for MongoMapper" do
16
+
17
+ context "default setup" do
18
+
19
+ before do
20
+ @user = User.create(:name => 'Kristian')
21
+ @user.role = :guest
22
+ @user.save
23
+
24
+ @admin_user = User.create(:name => 'Admin user')
25
+ @admin_user.roles = :admin
26
+ @admin_user.save
27
+ end
28
+
29
+ describe '#in_role' do
30
+ it "should return first user matching role" do
31
+ User.in_role(:guest).first.name.should == 'Kristian'
32
+ User.in_role(:admin).first.name.should == 'Admin user'
33
+ end
34
+ end
35
+
36
+ describe "Role API" do
37
+ it "should have admin user role to :admin" do
38
+ @admin_user.roles_list.first.should == :admin
39
+ @admin_user.admin?.should be_true
40
+
41
+ @admin_user.has_role?(:guest).should be_false
42
+
43
+ @admin_user.has_role?(:admin).should be_true
44
+ @admin_user.is?(:admin).should be_true
45
+ @admin_user.has_roles?(:admin).should be_true
46
+ @admin_user.has?(:admin).should be_true
47
+ end
48
+
49
+ it "should have user role to :guest" do
50
+ @user.roles_list.first.should == :guest
51
+ @user.admin?.should be_false
52
+
53
+ @user.has_role?(:guest).should be_true
54
+ @user.has_role?(:admin).should be_false
55
+ @user.is?(:admin).should be_false
56
+
57
+ @user.has_roles?(:admin).should be_false
58
+ @user.has?(:admin).should be_false
59
+ end
60
+
61
+ it "should set user role to :admin using roles=" do
62
+ @user.roles = :admin
63
+ @user.roles_list.first.should == :admin
64
+ @user.has_role?(:admin).should be_true
65
+ end
66
+ end
67
+ end
68
+ end
69
+
@@ -0,0 +1,27 @@
1
+ require 'rspec/core'
2
+ require 'roles_mongo_mapper'
3
+
4
+ MongoMapper.database = 'roles_mongo_mapper'
5
+
6
+ module Database
7
+ def self.teardown
8
+ # MongoMapper.database.collections.each {|collection| collection.drop }
9
+ MongoMapper.database.collections.each do |coll|
10
+ coll.drop unless coll.name =~ /(.*\.)?system\..*/
11
+ end
12
+ end
13
+ end
14
+
15
+ RSpec.configure do |config|
16
+ config.mock_with :mocha
17
+ config.before do
18
+ Database.teardown
19
+ end
20
+
21
+ config.after do
22
+ Database.teardown
23
+ end
24
+
25
+ end
26
+
27
+