kibali 0.1.0

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,140 @@
1
+ require 'helper'
2
+
3
+ class TestKibali < Test::Unit::TestCase
4
+
5
+ context "a user" do
6
+
7
+ setup do
8
+ @demarcus = FactoryGirl.create( :user )
9
+ @deshaun = FactoryGirl.create( :user )
10
+ end
11
+
12
+ teardown do
13
+ User.destroy_all
14
+ Role.destroy_all
15
+ end
16
+
17
+
18
+ should "raise exception if no roles" do
19
+ assert_raise( Kibali::EmptyRoles ) do
20
+ @demarcus.get_role()
21
+ end # block
22
+ end
23
+
24
+ should "be assigned a role" do
25
+ assert_not_equal @deshaun,@demarcus
26
+ assert_difference( 'Role.count' ) do
27
+ @demarcus.has_role!( :admin )
28
+ end # do count diff
29
+ assert @demarcus.has_role?( :admin )
30
+ assert !@demarcus.has_role?( :wildblue )
31
+ end # do should
32
+
33
+ should "get role for all cases" do
34
+ @demarcus.has_role!( :admin )
35
+ admin_role_list = Role.where( :name => "admin" ).all
36
+ assert_equal 1,admin_role_list.size
37
+ assert_equal admin_role_list.first, @demarcus.get_role( :admin )
38
+ assert_equal admin_role_list.first, @demarcus.get_role( )
39
+
40
+ assert_nil @demarcus.get_role( :wildblue )
41
+
42
+ end # do should
43
+
44
+ should "not get created the same role" do
45
+ @demarcus.has_role!( :admin )
46
+ assert_no_difference( 'Role.count' ) do
47
+ @demarcus.has_role!( :admin )
48
+ end # do count diff
49
+ assert @demarcus.has_role?( :admin )
50
+ assert_equal 1,@demarcus.roles.size
51
+
52
+ end # do should
53
+
54
+ should "get same role as another user" do
55
+ @demarcus.has_role!( :admin )
56
+
57
+ assert_no_difference( 'Role.count' ) do
58
+ @deshaun.has_role!( :admin )
59
+ end # do count diff
60
+
61
+ assert @demarcus.has_role?( :admin )
62
+ assert @deshaun.has_role?( :admin )
63
+
64
+ assert_equal @demarcus.get_role(:admin),@deshaun.get_role(:admin)
65
+
66
+ end # do should
67
+
68
+ should "get different role as another user" do
69
+ @demarcus.has_role!( :admin )
70
+
71
+ assert_difference( 'Role.count' ) do
72
+ @deshaun.has_role!( :manager )
73
+ end # do count diff
74
+
75
+ assert @demarcus.has_role?( :admin )
76
+ assert !@deshaun.has_role?( :admin )
77
+ assert @deshaun.has_role?( :manager )
78
+ assert !@demarcus.has_role?( :manager )
79
+
80
+ assert_not_equal @demarcus.get_role(:admin),@deshaun.get_role(:manager)
81
+ assert_equal 1,@demarcus.roles.size
82
+ assert_equal 1,@deshaun.roles.size
83
+
84
+ end # do should
85
+
86
+
87
+ should "remove a singleton role" do
88
+ @demarcus.has_role!( :admin )
89
+ assert_no_difference( 'Role.count' ) do
90
+ @demarcus.remove_role!( :admin )
91
+ end # do count diff
92
+ assert @demarcus.roles.empty?
93
+ assert_raise( Kibali::EmptyRoles ) do
94
+ @demarcus.get_role( :admin )
95
+ end # block
96
+ end # do should
97
+
98
+
99
+ should "remove someone elses role but not mine" do
100
+ @demarcus.has_role!( :admin )
101
+ @deshaun.has_role!( :manager )
102
+ @demarcus.remove_role!( :admin )
103
+ assert @demarcus.roles.empty?
104
+ assert_equal 1,@deshaun.roles.size
105
+ assert @deshaun.has_role?( :manager )
106
+ end # do should
107
+
108
+ # _____________________________________________________________
109
+ end # context
110
+
111
+ context "a role" do
112
+
113
+ setup do
114
+ @admin = FactoryGirl.create( :role, name: "admin" )
115
+ @manager = FactoryGirl.create( :role, name: "manager")
116
+ end
117
+
118
+ teardown do
119
+ User.destroy_all
120
+ Role.destroy_all
121
+ end
122
+
123
+ should "not be same as another" do
124
+ assert_not_equal @admin,@manager
125
+ end # do should
126
+
127
+ should "find named_role" do
128
+ assert_equal 2,Role.count
129
+ assert_equal @manager,Role.named_role( :manager ).first
130
+ end # do should
131
+
132
+
133
+ should "not find named_role" do
134
+ assert_nil Role.named_role( :wildblue ).first
135
+ end # do should
136
+
137
+ # _____________________________________________________________
138
+ end # context
139
+
140
+ end
metadata ADDED
@@ -0,0 +1,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kibali
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Daudi Amani
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.8
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.8
30
+ - !ruby/object:Gem::Dependency
31
+ name: rdoc
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '3.12'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.12'
46
+ - !ruby/object:Gem::Dependency
47
+ name: jeweler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.8.4
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.8.4
62
+ - !ruby/object:Gem::Dependency
63
+ name: sqlite3
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: simple Rails role authentication
79
+ email: dsaronin@gmail.com
80
+ executables: []
81
+ extensions: []
82
+ extra_rdoc_files:
83
+ - LICENSE.txt
84
+ - README.md
85
+ files:
86
+ - .document
87
+ - Gemfile
88
+ - Gemfile.lock
89
+ - LICENSE.txt
90
+ - README.md
91
+ - Rakefile
92
+ - VERSION
93
+ - lib/kibali.rb
94
+ - lib/kibali/access_control.rb
95
+ - lib/kibali/base.rb
96
+ - lib/kibali/control.rb
97
+ - lib/kibali/railtie.rb
98
+ - lib/kibali/subject_extensions.rb
99
+ - markdown.rb
100
+ - test/app/controllers/application_controller.rb
101
+ - test/app/controllers/empty_controller.rb
102
+ - test/config.ru
103
+ - test/config/routes.rb
104
+ - test/ctlr_helper.rb
105
+ - test/factories/units_factory.rb
106
+ - test/helper.rb
107
+ - test/script/rails
108
+ - test/support/models.rb
109
+ - test/support/schema.rb
110
+ - test/test_access.rb
111
+ - test/test_kibali.rb
112
+ homepage: http://github.com/dsaronin@gmail.com/kibali
113
+ licenses:
114
+ - MIT
115
+ post_install_message:
116
+ rdoc_options: []
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ segments:
126
+ - 0
127
+ hash: -244456607
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 1.8.24
137
+ signing_key:
138
+ specification_version: 3
139
+ summary: rails role authentication
140
+ test_files: []