roles_mongo_mapper 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+