the-city-admin 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +9 -0
- data/.gitignore +4 -0
- data/.rspec +2 -0
- data/.rvmrc +1 -0
- data/.yardoc/checksums +50 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +51 -0
- data/README +1 -0
- data/Rakefile +32 -0
- data/index.rb +123 -0
- data/lib/common.rb +163 -72
- data/lib/the_city_admin.rb +2 -2
- data/notes.txt +21 -0
- data/spec/api/address_list_spec.rb +0 -0
- data/spec/api/address_spec.rb +0 -0
- data/spec/api/group_address_list_spec.rb +93 -0
- data/spec/api/group_address_spec.rb +19 -0
- data/spec/api/group_checkin_list_spec.rb +93 -0
- data/spec/api/group_event_attendance_list_spec.rb +93 -0
- data/spec/api/group_export_spec.rb +19 -0
- data/spec/api/group_invitation_list_spec.rb +23 -0
- data/spec/api/group_invitation_spec.rb +19 -0
- data/spec/api/group_list_spec.rb +23 -0
- data/spec/api/group_role_list_spec.rb +23 -0
- data/spec/api/group_role_spec.rb +19 -0
- data/spec/api/group_spec.rb +19 -0
- data/spec/api/group_tag_list_spec.rb +23 -0
- data/spec/api/group_tag_spec.rb +19 -0
- data/spec/api/metric_list_spec.rb +22 -0
- data/spec/api/metric_measurement_list_spec.rb +23 -0
- data/spec/api/metric_measurement_spec.rb +19 -0
- data/spec/api/metric_spec.rb +19 -0
- data/spec/api/role_list_spec.rb +75 -0
- data/spec/api/role_spec.rb +19 -0
- data/spec/api/skill_list_spec.rb +76 -0
- data/spec/api/skilled_user_id_list_spec.rb +82 -0
- data/spec/api/skilled_user_list_spec.rb +82 -0
- data/spec/api/tag_group_list_spec.rb +72 -0
- data/spec/api/tag_list_spec.rb +77 -0
- data/spec/api/tag_spec.rb +19 -0
- data/spec/api/terminology_list_spec.rb +75 -0
- data/spec/api/terminology_spec.rb +19 -0
- data/spec/api/user_address_list_spec.rb +92 -0
- data/spec/api/user_address_spec.rb +19 -0
- data/spec/api/user_admin_privilege_list_spec.rb +94 -0
- data/spec/api/user_admin_privilege_spec.rb +19 -0
- data/spec/api/user_barcode_spec.rb +19 -0
- data/spec/api/user_family_list_spec.rb +91 -0
- data/spec/api/user_family_member_spec.rb +19 -0
- data/spec/api/user_invitation_list_spec.rb +91 -0
- data/spec/api/user_invitation_spec.rb +19 -0
- data/spec/api/user_list_spec.rb +76 -0
- data/spec/api/user_note_list_spec.rb +91 -0
- data/spec/api/user_note_spec.rb +19 -0
- data/spec/api/user_process_list_spec.rb +90 -0
- data/spec/api/user_process_spec.rb +19 -0
- data/spec/api/user_role_list_spec.rb +92 -0
- data/spec/api/user_role_spec.rb +18 -0
- data/spec/api/user_skill_list_spec.rb +91 -0
- data/spec/api/user_skill_spec.rb +19 -0
- data/spec/api/user_spec.rb +37 -0
- data/spec/api/web_hook_list_spec.rb +75 -0
- data/spec/api/web_hook_spec.rb +19 -0
- data/spec/factories/address.rb +21 -0
- data/spec/factories/address_list.rb +13 -0
- data/spec/factories/checkin.rb +35 -0
- data/spec/factories/checkin_list.rb +13 -0
- data/spec/factories/group.rb +30 -0
- data/spec/factories/group_address.rb +21 -0
- data/spec/factories/group_address_list.rb +13 -0
- data/spec/factories/group_checkin.rb +35 -0
- data/spec/factories/group_checkin_list.rb +13 -0
- data/spec/factories/group_event_attendance.rb +19 -0
- data/spec/factories/group_event_attendance_list.rb +13 -0
- data/spec/factories/group_export.rb +16 -0
- data/spec/factories/group_export_list.rb +13 -0
- data/spec/factories/group_role.rb +19 -0
- data/spec/factories/group_tag.rb +12 -0
- data/spec/factories/role.rb +22 -0
- data/spec/factories/role_list.rb +13 -0
- data/spec/factories/skill.rb +13 -0
- data/spec/factories/skill_list.rb +13 -0
- data/spec/factories/skilled_user_id_list.rb +13 -0
- data/spec/factories/skilled_user_list.rb +13 -0
- data/spec/factories/tag.rb +13 -0
- data/spec/factories/tag_group_list.rb +13 -0
- data/spec/factories/tag_list.rb +13 -0
- data/spec/factories/terminology.rb +10 -0
- data/spec/factories/terminology_list.rb +13 -0
- data/spec/factories/user.rb +51 -0
- data/spec/factories/user_address.rb +19 -0
- data/spec/factories/user_address_list.rb +13 -0
- data/spec/factories/user_admin_privilege.rb +11 -0
- data/spec/factories/user_admin_privilege_list.rb +13 -0
- data/spec/factories/user_barcode.rb +15 -0
- data/spec/factories/user_family_list.rb +13 -0
- data/spec/factories/user_family_member.rb +28 -0
- data/spec/factories/user_invitation.rb +16 -0
- data/spec/factories/user_invitation_list.rb +13 -0
- data/spec/factories/user_list.rb +13 -0
- data/spec/factories/user_note.rb +28 -0
- data/spec/factories/user_note_list.rb +13 -0
- data/spec/factories/user_process.rb +11 -0
- data/spec/factories/user_process_list.rb +13 -0
- data/spec/factories/user_role.rb +17 -0
- data/spec/factories/user_role_list.rb +13 -0
- data/spec/factories/user_skill.rb +10 -0
- data/spec/factories/user_skill_list.rb +13 -0
- data/spec/factories/web_hook.rb +12 -0
- data/spec/factories/web_hook_list.rb +13 -0
- data/spec/functional/the_city_admin_spec.rb +20 -0
- data/spec/readers/user_reader_spec.rb +7 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/writers/skill_writer_spec.rb +0 -0
- data/spec/writers/tag_writer_spec.rb +80 -0
- data/spec/writers/user_writer_spec.rb +80 -0
- data/status.txt +187 -0
- data/test_scripts/addresses.rb +36 -0
- data/test_scripts/barcodes_checkins.rb +45 -0
- data/test_scripts/city_keys.rb +6 -0
- data/test_scripts/familes.rb +83 -0
- data/test_scripts/groups.rb +124 -0
- data/test_scripts/metrics.rb +72 -0
- data/test_scripts/roles.rb +94 -0
- data/test_scripts/skills.rb +55 -0
- data/test_scripts/tags.rb +71 -0
- data/test_scripts/terminology.rb +62 -0
- data/test_scripts/users.rb +325 -0
- data/test_scripts/webhooks.rb +57 -0
- data/thecity_admin_api.gemspec +39 -0
- data/thecity_headers.rb +27 -0
- metadata +238 -3
data/lib/the_city_admin.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'openssl'
|
3
3
|
require 'cgi'
|
4
|
-
require '
|
4
|
+
require 'base64'
|
5
5
|
require 'openssl'
|
6
6
|
require 'net/http'
|
7
7
|
require 'net/https'
|
@@ -9,7 +9,7 @@ require 'typhoeus'
|
|
9
9
|
require 'json'
|
10
10
|
|
11
11
|
|
12
|
-
TCA_ENV = 'development'
|
12
|
+
TCA_ENV = 'development' unless defined?(TCA_ENV)
|
13
13
|
#TCA_ENV = 'staging'
|
14
14
|
|
15
15
|
# The path to the lib directory.
|
data/notes.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
UserList
|
2
|
+
- initialize
|
3
|
+
- attributes...
|
4
|
+
- Operations (ex. next_page returns the next UserList object)
|
5
|
+
- Users
|
6
|
+
- Load data
|
7
|
+
- URL
|
8
|
+
- Cache
|
9
|
+
- File (JSON)
|
10
|
+
- Database
|
11
|
+
- Memcache
|
12
|
+
|
13
|
+
User
|
14
|
+
- attributes...
|
15
|
+
- Crud operations
|
16
|
+
- Load data
|
17
|
+
- URL
|
18
|
+
- Cache
|
19
|
+
- File (JSON)
|
20
|
+
- Database
|
21
|
+
- Memcache
|
File without changes
|
File without changes
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require File.join(Dir.pwd, 'spec', 'spec_helper')
|
2
|
+
|
3
|
+
describe 'GroupAddressList' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
simulate_connection_to_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
it 'should pass if group address list attribute is not specifed' do
|
15
|
+
group_id = 123
|
16
|
+
request_data = FactoryGirl.attributes_for(:group_address_list, {
|
17
|
+
:total_entries => 1,
|
18
|
+
:total_pages => 1,
|
19
|
+
:addresses => [FactoryGirl.attributes_for(:group_address)]
|
20
|
+
}).to_json
|
21
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
22
|
+
address_list = TheCity::GroupAddressList.new({:group_id => group_id})
|
23
|
+
|
24
|
+
address = address_list[0]
|
25
|
+
address.city.should == "Sammamish"
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
it 'should pass if group address list is empty' do
|
30
|
+
group_id = 123
|
31
|
+
page = 2
|
32
|
+
request_data = FactoryGirl.attributes_for(:group_address_list, {
|
33
|
+
:total_entries => 1,
|
34
|
+
:total_pages => 1,
|
35
|
+
:addresses => []
|
36
|
+
}).to_json
|
37
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
38
|
+
address_list = TheCity::GroupAddressList.new({:group_id => group_id})
|
39
|
+
|
40
|
+
address_list.empty?.should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
it 'should return a valid list of group addresses' do
|
45
|
+
group_id = 123
|
46
|
+
page = 2
|
47
|
+
request_data = FactoryGirl.attributes_for(:group_address_list, {
|
48
|
+
:total_entries => 1,
|
49
|
+
:total_pages => 1,
|
50
|
+
:addresses => [FactoryGirl.attributes_for(:group_address)]
|
51
|
+
}).to_json
|
52
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
53
|
+
address_list = TheCity::GroupAddressList.new({:group_id => group_id, :page => 2})
|
54
|
+
|
55
|
+
address = address_list[0]
|
56
|
+
address.city.should == "Sammamish"
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
it 'should iterate using *each* method' do
|
61
|
+
group_id = 123
|
62
|
+
request_data = FactoryGirl.attributes_for(:group_address_list, {
|
63
|
+
:total_entries => 1,
|
64
|
+
:total_pages => 1,
|
65
|
+
:addresses => [FactoryGirl.attributes_for(:group_address)]
|
66
|
+
}).to_json
|
67
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
68
|
+
address_list = TheCity::GroupAddressList.new({:group_id => group_id})
|
69
|
+
|
70
|
+
addresses = []
|
71
|
+
address_list.each { |address| addresses << address.city }
|
72
|
+
addresses.should == ["Sammamish"]
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
it 'should iterate using *collect* method' do
|
77
|
+
group_id = 123
|
78
|
+
request_data = FactoryGirl.attributes_for(:group_address_list, {
|
79
|
+
:total_entries => 1,
|
80
|
+
:total_pages => 1,
|
81
|
+
:addresses => [FactoryGirl.attributes_for(:group_address)]
|
82
|
+
}).to_json
|
83
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
84
|
+
address_list = TheCity::GroupAddressList.new({:group_id => group_id})
|
85
|
+
|
86
|
+
addresses = address_list.collect { |address| address.city }
|
87
|
+
addresses.should == ["Sammamish"]
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require File.join(Dir.pwd, 'spec', 'spec_helper')
|
2
|
+
|
3
|
+
describe 'GroupCheckinList' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
simulate_connection_to_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
it 'should pass if group checkin list attribute is not specifed' do
|
15
|
+
group_id = 123
|
16
|
+
request_data = FactoryGirl.attributes_for(:group_checkin_list, {
|
17
|
+
:total_entries => 1,
|
18
|
+
:total_pages => 1,
|
19
|
+
:checkins => [FactoryGirl.attributes_for(:group_checkin)]
|
20
|
+
}).to_json
|
21
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
22
|
+
checkin_list = TheCity::GroupCheckinList.new({:group_id => group_id})
|
23
|
+
|
24
|
+
checkin = checkin_list[0]
|
25
|
+
checkin.parent_group_name.should == "Ballard Childrens ministry"
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
it 'should pass if group checkin list is empty' do
|
30
|
+
group_id = 123
|
31
|
+
page = 2
|
32
|
+
request_data = FactoryGirl.attributes_for(:group_checkin_list, {
|
33
|
+
:total_entries => 1,
|
34
|
+
:total_pages => 1,
|
35
|
+
:checkins => []
|
36
|
+
}).to_json
|
37
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
38
|
+
checkin_list = TheCity::GroupCheckinList.new({:group_id => group_id})
|
39
|
+
|
40
|
+
checkin_list.empty?.should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
it 'should return a valid list of group checkins' do
|
45
|
+
group_id = 123
|
46
|
+
page = 2
|
47
|
+
request_data = FactoryGirl.attributes_for(:group_checkin_list, {
|
48
|
+
:total_entries => 1,
|
49
|
+
:total_pages => 1,
|
50
|
+
:checkins => [FactoryGirl.attributes_for(:group_checkin)]
|
51
|
+
}).to_json
|
52
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
53
|
+
checkin_list = TheCity::GroupCheckinList.new({:group_id => group_id, :page => 2})
|
54
|
+
|
55
|
+
checkin = checkin_list[0]
|
56
|
+
checkin.parent_group_name.should == "Ballard Childrens ministry"
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
it 'should iterate using *each* method' do
|
61
|
+
group_id = 123
|
62
|
+
request_data = FactoryGirl.attributes_for(:group_checkin_list, {
|
63
|
+
:total_entries => 1,
|
64
|
+
:total_pages => 1,
|
65
|
+
:checkins => [FactoryGirl.attributes_for(:group_checkin)]
|
66
|
+
}).to_json
|
67
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
68
|
+
checkin_list = TheCity::GroupCheckinList.new({:group_id => group_id})
|
69
|
+
|
70
|
+
checkins = []
|
71
|
+
checkin_list.each { |checkin| checkins << checkin.parent_group_name }
|
72
|
+
checkins.should == ["Ballard Childrens ministry"]
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
it 'should iterate using *collect* method' do
|
77
|
+
group_id = 123
|
78
|
+
request_data = FactoryGirl.attributes_for(:group_checkin_list, {
|
79
|
+
:total_entries => 1,
|
80
|
+
:total_pages => 1,
|
81
|
+
:checkins => [FactoryGirl.attributes_for(:group_checkin)]
|
82
|
+
}).to_json
|
83
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
84
|
+
checkin_list = TheCity::GroupCheckinList.new({:group_id => group_id})
|
85
|
+
|
86
|
+
checkins = checkin_list.collect { |checkin| checkin.parent_group_name }
|
87
|
+
checkins.should == ["Ballard Childrens ministry"]
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require File.join(Dir.pwd, 'spec', 'spec_helper')
|
2
|
+
|
3
|
+
describe 'GroupEventAttendanceList' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
simulate_connection_to_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
it 'should pass if group event attendance list attribute is not specifed' do
|
15
|
+
group_id = 123
|
16
|
+
request_data = FactoryGirl.attributes_for(:group_event_attendance_list, {
|
17
|
+
:total_entries => 1,
|
18
|
+
:total_pages => 1,
|
19
|
+
:event_attendances => [FactoryGirl.attributes_for(:group_event_attendance)]
|
20
|
+
}).to_json
|
21
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
22
|
+
attendance_list = TheCity::GroupEventAttendanceList.new({:group_id => group_id})
|
23
|
+
|
24
|
+
attendance = attendance_list[0]
|
25
|
+
attendance.user.should == "Johnny Smith"
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
it 'should pass if group checkin list is empty' do
|
30
|
+
group_id = 123
|
31
|
+
page = 2
|
32
|
+
request_data = FactoryGirl.attributes_for(:group_event_attendance_list, {
|
33
|
+
:total_entries => 1,
|
34
|
+
:total_pages => 1,
|
35
|
+
:event_attendances => []
|
36
|
+
}).to_json
|
37
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
38
|
+
attendance_list = TheCity::GroupEventAttendanceList.new({:group_id => group_id})
|
39
|
+
|
40
|
+
attendance_list.empty?.should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
it 'should return a valid list of group event attendances' do
|
45
|
+
group_id = 123
|
46
|
+
page = 2
|
47
|
+
request_data = FactoryGirl.attributes_for(:group_event_attendance_list, {
|
48
|
+
:total_entries => 1,
|
49
|
+
:total_pages => 1,
|
50
|
+
:event_attendances => [FactoryGirl.attributes_for(:group_event_attendance)]
|
51
|
+
}).to_json
|
52
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
53
|
+
attendance_list = TheCity::GroupEventAttendanceList.new({:group_id => group_id, :page => 2})
|
54
|
+
|
55
|
+
attendance = attendance_list[0]
|
56
|
+
attendance.user.should == "Johnny Smith"
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
it 'should iterate using *each* method' do
|
61
|
+
group_id = 123
|
62
|
+
request_data = FactoryGirl.attributes_for(:group_event_attendance_list, {
|
63
|
+
:total_entries => 1,
|
64
|
+
:total_pages => 1,
|
65
|
+
:event_attendances => [FactoryGirl.attributes_for(:group_event_attendance)]
|
66
|
+
}).to_json
|
67
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
68
|
+
attendance_list = TheCity::GroupEventAttendanceList.new({:group_id => group_id})
|
69
|
+
|
70
|
+
attendances = []
|
71
|
+
attendance_list.each { |attendance| attendances << attendance.user }
|
72
|
+
attendances.should == ["Johnny Smith"]
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
it 'should iterate using *collect* method' do
|
77
|
+
group_id = 123
|
78
|
+
request_data = FactoryGirl.attributes_for(:group_event_attendance_list, {
|
79
|
+
:total_entries => 1,
|
80
|
+
:total_pages => 1,
|
81
|
+
:event_attendances => [FactoryGirl.attributes_for(:group_event_attendance)]
|
82
|
+
}).to_json
|
83
|
+
TheCity.stub(:admin_request).and_return( TheCityResponse.new(200, request_data) )
|
84
|
+
attendance_list = TheCity::GroupEventAttendanceList.new({:group_id => group_id})
|
85
|
+
|
86
|
+
attendances = attendance_list.collect { |attendance| attendance.user }
|
87
|
+
attendances.should == ["Johnny Smith"]
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.join(Dir.pwd, 'spec', 'spec_helper')
|
2
|
+
|
3
|
+
describe 'GroupInvitationList' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
simulate_connection_to_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
it 'should pass if group invitation list attribute is not specifed'
|
15
|
+
it 'should pass if group invitation list is empty'
|
16
|
+
it 'should return a valid list of group invitations'
|
17
|
+
it 'should iterate using *each* method'
|
18
|
+
it 'should iterate using *collect* method'
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.join(Dir.pwd, 'spec', 'spec_helper')
|
2
|
+
|
3
|
+
describe 'GroupList' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
simulate_connection_to_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
it 'should pass if group list attribute is not specifed'
|
15
|
+
it 'should pass if group list is empty'
|
16
|
+
it 'should return a valid list of groups'
|
17
|
+
it 'should iterate using *each* method'
|
18
|
+
it 'should iterate using *collect* method'
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.join(Dir.pwd, 'spec', 'spec_helper')
|
2
|
+
|
3
|
+
describe 'GroupRoleList' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
simulate_connection_to_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
it 'should pass if group role list attribute is not specifed'
|
15
|
+
it 'should pass if group role list is empty'
|
16
|
+
it 'should return a valid list of group roles'
|
17
|
+
it 'should iterate using *each* method'
|
18
|
+
it 'should iterate using *collect* method'
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
|